diff --git a/.gitmodules b/.gitmodules index 4ef81ab..6cf128a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,5 +1,5 @@ [submodule ".oh-my-zsh"] - path = zsh/.oh-my-zsh + path = _zsh/.oh-my-zsh url = https://github.com/ohmyzsh/ohmyzsh.git [submodule "term/iterm"] path = term/iterm diff --git a/_etc/.docker/config.json b/_etc/.docker/config.json new file mode 100644 index 0000000..823d8ce --- /dev/null +++ b/_etc/.docker/config.json @@ -0,0 +1,8 @@ +{ + "credsStore" : "desktop", + "experimental" : "disabled", + "auths" : { + + }, + "stackOrchestrator" : "swarm" +} diff --git a/_etc/.fasd b/_etc/.fasd new file mode 100644 index 0000000..b0045e4 --- /dev/null +++ b/_etc/.fasd @@ -0,0 +1,481 @@ +/Users/ujinyoung/dotfiles/setup.sh|4.443|1591098410 +/Users/ujinyoung/.tmux/plugins/tmux-continuum|2.349|1587742090 +/Users/ujinyoung/vimwiki/질문사항.md|2.36549|1585671485 +/Users/ujinyoung/.oh-my-zsh/custom/example.zsh|3.41951|1587838314 +/Users/ujinyoung/Dropbox/back|4.24355|1587744060 +/Users/ujinyoung/.config/karabiner/assets/complex_modifications|2.41582|1587750182 +/Users/ujinyoung/dotfiles/back.zsh|2.75901|1587833339 +/Users/ujinyoung/dotfiles/test/yabai.sh|5.3252|1586866709 +/Users/ujinyoung/Brewfile|2.49724|1587744933 +/Users/ujinyoung/blog/my-blog-starter/content/assets|2.1141|1586418642 +/Users/ujinyoung/dotfiles/yabai/test2.sh|7.35116|1584452829 +/Users/ujinyoung/testgit/a|1.458|1583673278 +/Users/ujinyoung/blog/gatsby-graphcms-tailwindcss-example|2.1141|1587394434 +/usr/local/Cellar/zsh/5.8/share/zsh/functions|1.8|1587829467 +/Users/ujinyoung/selenium/naver-aer.py|7.42348|1585183899 +/Users/ujinyoung/dotfiles/term/.terminfo/78|2.59015|1587455808 +/Users/ujinyoung/makefile|7.29546|1587551393 +/Users/ujinyoung/.tmux/plugins|5.31426|1587743037 +/usr/share/zsh|3.45101|1587829443 +/Users/ujinyoung/dotfiles/tmux|11.6498|1587846653 +/Users/ujinyoung/test/rr|4.56452|1587461534 +/usr/local/Cellar/highlight/3.55/bin|1.458|1583918410 +/Users/ujinyoung/tmux-screen-capture-4-0-0-20200409T162515.log|1.458|1586417479 +/usr/local/opt/fzf/bin/fzf|1.62|1587729613 +/Users/ujinyoung/.tmux|4.69815|1587742034 +/Users/ujinyoung/blog/my-blazing-fast-site/src|2.1141|1586904891 +/Users/ujinyoung/.oh-my-zsh/custom|6.84201|1587838572 +/Users/ujinyoung/.tmux/plugins/tmux-logging|1.62|1587742059 +/Users/ujinyoung/dotfiles/yabai/1|3.16345|1584448777 +/usr/local/Cellar/fzf/0.21.1|2.025|1587730937 +/Users/ujinyoung/dotfiles/zsh/.zshrc|4.86177|1587843640 +/Users/ujinyoung/solution.dSYM/Contents/Resources|1.458|1586001818 +/Users/ujinyoung/yarn.lock|2.41582|1587831683 +/|5.17017|1590157796 +/usr/local/bin/gdb|1.8225|1586099378 +/Users/ujinyoung/blog/my-blog-starter/src/components|1.458|1586418297 +/Users/ujinyoung/dotfiles/tags|2.54323|1587552833 +/usr/local/share/zsh/site-functions|2.61|1587835023 +/Users/ujinyoung/.local/share/karabiner|8.87169|1587834254 +/Users/ujinyoung/dotfiles/karabiner|9.11871|1587846851 +/Users/ujinyoung/dotfiles/test/test22|1.8225|1584458580 +/Users/ujinyoung/dotfiles/fzf|7.06565|1587846786 +/Users/ujinyoung/Dropbox/Brewfile|2.61|1587744230 +/Users|4.21091|1591098950 +/usr/local/Cellar/yarn/1.22.0|2.1141|1586873078 +/Users/ujinyoung/dotfiles/test/test2|4.68095|1585203927 +/Users/ujinyoung/dotfiles/py|3.9055|1587847012 +/Users/ujinyoung/term/iterm-dracula|1.8225|1587475517 +/Users/ujinyoung/.local/share/nvim|8.05042|1591149481 +/Users/ujinyoung/.docker|2.1825|1587552291 +/Users/ujinyoung/gdb.xml|2.42445|1587551384 +/usr/share/zsh/5.7.1|3.19771|1587827470 +/Users/ujinyoung/dotfiles/gdb/gdb.xml|2.1141|1586859029 +/Users/ujinyoung/.gdbinit|3.71434|1587551507 +/Users/ujinyoung/ex.c|2.1825|1587548535 +/usr/share/zsh/site-functions|1.8|1587835023 +/Users/ujinyoung/requirments.txt|2.59015|1586867418 +/Users/ujinyoung/blog/gatsby-starter-bee/src/components/head/index.jsx|2.025|1587715607 +/Users/ujinyoung/Dropbox/Mackup|2.79532|1584453243 +/Users/ujinyoung/dotfiles/test/test|5.11966|1586834924 +/Users/ujinyoung/dotfiles/dotback|5.62539|1587553724 +/Users/ujinyoung/.vim/plugged/vim-nerdtree-ignore/autoload/nerdtreeignore|2.1141|1587013861 +/Users/ujinyoung/.local/share/virtualenvs|2.1141|1587457980 +/Users/ujinyoung/.config/karabiner/automatic_backups|1.8225|1586869408 +/Users/ujinyoung/dotfiles/vim/.vim|4.20494|1587833780 +/usr/local/opt/nvm|1.458|1586875571 +/Users/ujinyoung/jupyter/tf|2.59015|1583647575 +/usr/local/Cellar/zsh-completions/0.31.0/share/zsh-completions|1.8225|1586881408 +/Users/ujinyoung/testgit/.gitconfig|4.19532|1583673671 +/Users/ujinyoung/dotfiles/test/commandEx.zsh|6.90135|1586866709 +/usr/local/Cellar/node/v12.16.2|1.458|1586890164 +/Users/ujinyoung/dotfiles/_karabiner/.config/karabiner/assets/complex_modifications|2|1591098319 +/Users/ujinyoung/.node-gyp/12.16.2|2.59015|1587476425 +/Users/ujinyoung/.viminfo|2.69507|1587741119 +/Users/ujinyoung/dotfiles/brewinstall.sh|4.51835|1587844243 +/Users/ujinyoung/dotfiles/test/test3.sh|7.12985|1584540276 +/Users/ujinyoung/dotfiles/yabai/yabai.sh|5.38507|1587835023 +/Users/ujinyoung/zsh|6.2964|1587831512 +/usr/local/etc/highlight|2.36549|1583924827 +/Users/ujinyoung/dotfiles/_karabiner/.config/karabiner|2|1591098272 +/Users/ujinyoung/.oh-my-zsh/plugins|2.98544|1586880639 +/Users/ujinyoung/.config/yarn/global/node_modules|1.458|1586873153 +/Users/ujinyoung/nvim|2.62832|1587570738 +/Users/ujinyoung/.local/share/nvim/site/autoload|2.79532|1587457911 +/Users/ujinyoung/highlightjs|4.06457|1583933641 +/bin|2.79532|1585205205 +/usr/local/share/zsh-completions|3.67218|1587835023 +/Users/ujinyoung/dotfiles/vim/.vim/.vim|2.87794|1587741034 +/Users/ujinyoung/Dropbox/notable/notes/notation.tex|1|1588694532 +/etc|1.458|1583919438 +/Users/ujinyoung/dotfiles/zsh~|1.8|1587846958 +/Users/ujinyoung/dotfiles/term/.fzf|1.8225|1583642914 +/Users/ujinyoung/.fasd|1.908|1587552325 +/Users/ujinyoung/.local/share/virtualenvs/tf-Lgo-lRSn/bin|1.458|1587457963 +/Users/ujinyoung/.zcompdump|4.77942|1587828585 +/Users/ujinyoung/term/pygments/dracula.py|1.8225|1583743851 +/Users/ujinyoung/term/iterm|2.36549|1587475502 +/usr/local/Cellar/highlight/3.55/share/highlight|1.458|1583925145 +/usr/local/opt/fzf/plugin|2.349|1587729848 +/Users/ujinyoung/a.out|2.36549|1586008991 +/Users/ujinyoung/.local/share/nvim/log|1.458|1587457942 +/Users/ujinyoung/selenium/navershopping-v2.py|1.458|1585182131 +/Users/ujinyoung/.pyenv|2.1141|1587457288 +/Users/ujinyoung/dotfiles/config/.config/nvim|4.33134|1587833946 +/Users/ujinyoung/blog/Uuritech/src/templates/blog-post.js|1.62|1587715523 +/Users/ujinyoung/.config/yarn|7.62547|1587831671 +/Users/ujinyoung/dotfiles/_tmux/.tmux/plugins|2|1591098649 +/Users/ujinyoung/dotfiles/tmux/.tmux|2.425|1587826336 +/Users/ujinyoung/dotfiles/karabiner/pid|1.62|1587546841 +/Users/ujinyoung/dotfiles/yabai/ya.sh|8.0448|1586854367 +/Users/ujinyoung/.local/share/virtualenvs/tf-Lgo-lRSn/include|1.8225|1587457971 +/Users/ujinyoung/dotfiles/karabiner/assets/complex_modifications|1.8|1587834057 +/Users/ujinyoung/dotfiles/terminal|3.51495|1587552815 +/Users/ujinyoung/t.md|2.1141|1585200547 +/Users/ujinyoung/blog/Uuritech/yarn.lock|1.62|1587657453 +/Users/ujinyoung/Dropbox/vimwiki/contents|2.36549|1585670906 +/Users/ujinyoung/dotfiles/config/.config|7.61106|1587834004 +/Users/ujinyoung/.vim/bundle|1.458|1587456699 +/Users/ujinyoung/.local/share/nvim/shada|2.48311|1587565089 +/Users/ujinyoung/dotfiles/vim/.vimrc|5.75401|1587833764 +/usr/local/opt/zsh-completions|2.1141|1586879301 +/Users/ujinyoung/blog/my-blog-starter/src/pages/about.js|1.458|1586420934 +/usr/local/Cellar/yarn|1.458|1586873061 +/Users/ujinyoung/.local/share|10.6063|1591149481 +/usr/local/opt/fzf/install|2.42445|1587729632 +/Users/ujinyoung/jupyter/tf/include|1.458|1583647571 +/Users/ujinyoung/.local/share/nvim/site/autoload/plug.vim|1.8225|1587457890 +/Users/ujinyoung/dotfiles/Brewfile|4.15821|1587835023 +/Users/ujinyoung/dotfiles/test/ya.sh|8.80478|1586849574 +/Users/ujinyoung/.tmux/plugins/tmux-continuum/scripts|1.62|1587742083 +/Users/ujinyoung/.vim/sessions|3.48718|1587740894 +/Users/ujinyoung/dotfiles/etc/.yabairc|2.25|1587833889 +/Users/ujinyoung/iterm-dracula|1.62|1587552529 +/Users/ujinyoung/dotfiles/yabai/update-yabai.sh|1.8225|1584162695 +/Users/ujinyoung/tags|2.025|1587553010 +/usr/local/Cellar|4.4493|1587829472 +/Users/ujinyoung/.local|8.33549|1587834381 +/Users/ujinyoung/selenium|37.5183|1587554988 +/Users/ujinyoung/dotfiles/term|7.8997|1591098425 +/Users/ujinyoung/dotfiles/yabai|33.205|1587846859 +/Users/ujinyoung/nvim/.vim|1.62|1587570674 +/Users/ujinyoung/.zcompdump-유진영의 MacBook Pro-5.7.1|3.73388|1587828585 +/Users/ujinyoung/dot-gitconfig|2.1141|1583667644 +/Users/ujinyoung/.fzf|1.8225|1583602597 +/Users/ujinyoung/ring.sh|9.78012|1587048490 +/Users/ujinyoung/.bashrc|1.62|1587569495 +/Users/ujinyoung/.gitconfig|8.92612|1591099903 +/Users/ujinyoung/dotfiles/test/exxx.sh|1.458|1586835181 +/Users/ujinyoung/dotfiles/vim/Brewfile|1.8225|1586857153 +/usr/local/Cellar/node/13.8.0|1.8225|1586871858 +/Users/ujinyoung/dotfiles/_py|1|1591149551 +/Users/ujinyoung/solution.cc|11.8935|1586020212 +/Users/ujinyoung/.oh-my-zsh/plugins/fzf|2.8216|1587835023 +/Users/ujinyoung/makefile.1|1.458|1586097766 +/usr/local/Cellar/nvm|1.8225|1586889710 +/Users/ujinyoung/dotfiles/vim/tmux.sh|1.8225|1586863690 +/Users/ujinyoung/selenium/login.py|1.458|1584817029 +/Users/ujinyoung/dotfiles/karabiner.|4.11289|1587834227 +/Users/ujinyoung/.tmux/resurrect/save/pane_contents|1.62|1587742025 +/Users/ujinyoung/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh|1.8225|1584465870 +/Users/ujinyoung/.oh-my-zsh/plugins/pyenv|1.8|1587835023 +/Users/ujinyoung/xterm-256color.ti|3.20521|1587552553 +/Users/ujinyoung/.gitignore_global|3.52839|1587550722 +/Users/ujinyoung/dotfiles/test2|10.1543|1586867473 +/Users/ujinyoung/dotfiles/fzf.sh|2.59015|1587473661 +/Users/ujinyoung/Dropbox/back/Brewfile|1.8|1587744032 +/Users/ujinyoung/dotfiles/test|31.7019|1586874746 +/Users/ujinyoung/dotfiles/_git|11.2159|1591147770 +/Users/ujinyoung/dotfiles/_etc|2.9|1591149557 +/Users/ujinyoung/.oh-my-zsh/plugins/fasd|1.8|1587835023 +/Users/ujinyoung/dotfiles/_nodejs|1|1591149535 +/Users/ujinyoung/.tmux/resurrect/restore|2.62832|1587742016 +/Users/ujinyoung/dotfiles/_vim|6.57679|1591149457 +/Users/ujinyoung/Music/Music/Media.localized|1.458|1583827358 +/Users/ujinyoung/package.json|2.61|1587831722 +/Users/ujinyoung/dotfiles/yabai/teset2.sh|1.8225|1584451494 +/Users/ujinyoung/.yarnrc|2.79532|1587457057 +/Users/ujinyoung/dotfiles/gdb/gdb.sh|4.19532|1586858713 +/Users/ujinyoung/selenium/getbook.py|6.97836|1584705488 +/usr|2.1141|1585205291 +/Users/ujinyoung/dotfiles/zsh/.zshenv~|2.25|1587833613 +/home|2|1590157798 +/Users/ujinyoung/tmux-4-0-0-20200409T162505.log|1.458|1586417479 +/usr/share/zsh/5.7.1/functions|3.19771|1587835023 +/Users/ujinyoung/dotfiles/zsh/.oh-my-zsh/custom/plugins/zsh-autosuggestions|2.79532|1584463833 +/usr/local/opt/llvm/bin|2.36549|1586021761 +/Users/ujinyoung/blog/my-blog-starter/src/styles/variables.scss|8.24143|1586874062 +/Users/ujinyoung/dotfiles/config|6.87853|1587834019 +/Users/ujinyoung/tmux-2-0-0-20200409T154350.log|1.458|1586417479 +/Users/ujinyoung/dotfiles/_tmux|4.56988|1591149510 +/Users/ujinyoung/Dropbox/back/.config|1.62|1587742542 +/Users/ujinyoung/blog/my-blog-starter/src/utils/storage|1.458|1586904625 +/Users/ujinyoung/.dotfiles/term/dot-fasd/.fasd|1.458|1583474462 +/usr/local/opt/zsh|1.8|1587829340 +/Users/ujinyoung/dotfiles/yabai/exx.sh|4.90532|1586802817 +/Users/ujinyoung/.nvm/versions/node/v12.14.1|1.458|1586871837 +/Users/ujinyoung/blog/gatsby-starter-try-ghost|1.8225|1587395009 +/Users/ujinyoung/chatbot|1.458|1585822129 +/Users/ujinyoung/.config|14.9876|1587831549 +/Users/ujinyoung/dotfiles/gdb|8.28329|1587831314 +/Users/ujinyoung/dotfiles/term/iterm|2.26695|1587835023 +/Users/ujinyoung/.tmux.conf|26.756|1591098539 +/Users/ujinyoung/.zplug/repos|1.62|1587570021 +/Users/ujinyoung/tmux-history-4-0-0-20200409T162523.log|1.458|1586417479 +/Users/ujinyoung/tmux-screen-capture-4-0-0-20200409T162511.log|1.458|1586417479 +/Users/ujinyoung/.vim/plugged/gdb-dashboard|1.8225|1586111372 +/Users/ujinyoung/dotfiles/_yabai|2.5|1591098384 +/usr/local/opt/fzf/bin|3.56403|1587730052 +/usr/local/Cellar/zsh/5.8/share|3.19771|1587829469 +/Users/ujinyoung/solution.o|3.49097|1586105899 +/Users/ujinyoung/dotfiles/back.sh|8.89821|1587843561 +/Users/ujinyoung/Downloads|1.8225|1584627786 +/Users/ujinyoung/save.txt|1.458|1587456275 +/Users/ujinyoung/rr|2.84345|1587548530 +/Users/ujinyoung/.config/karabiner|8.64637|1587750329 +/Users/ujinyoung/.config/karabiner/assets|3.04554|1587750183 +/usr/local/Cellar/highlight/3.55/share/doc/highlight/README.adoc|1.458|1583918834 +/Users/ujinyoung/.zcompdump.yujin-yeong-ui-MacBookPro.local.14521|1.8|1587829218 +/Users/ujinyoung/.fzf.zsh|4.98296|1587718447 +/Users/ujinyoung/tasks.json|2.1141|1587477417 +/Users/ujinyoung/.config/nvim|8.16342|1587742654 +/Users/ujinyoung/Dropbox/notable/attachments|2.5|1588694542 +/Users/ujinyoung/Library|1.8225|1583999508 +/Users/ujinyoung/dotfiles/_tmux/.tmux.conf|1|1591098539 +/Users/ujinyoung/19980207|1|1591097695 +/Users/ujinyoung/.vim/sessions/default.vim|1.908|1587740851 +/Users/ujinyoung/main.py|4.79448|1584628216 +/Users/ujinyoung/test/rr/rr|2.1141|1587461508 +/Users/ujinyoung/dotfiles/vim/.vim/.vim/.vim|1.62|1587740358 +/Users/ujinyoung/dotfiles/_tmux/.tmux|2|1591098644 +/Users/ujinyoung/blog/my-blog-starter/src/styles|10.7654|1586541382 +/usr/local/opt/zplug|2.62832|1587568062 +/Users/ujinyoung/blog/Uuritech/node_modules/sharp|2.025|1587651959 +/Users/ujinyoung/Dropbox/vimwiki/mac_setting.md|1.458|1586575543 +/Users/ujinyoung/vimwiki/할일.md|1.458|1585671444 +/Users/ujinyoung/dotfiles/_zsh/.zshenv|1|1591101807 +/Users/ujinyoung/dotfiles/_karabiner/.config/karabiner/assets|2|1591098279 +/Users/ujinyoung/blog|12.3563|1591097488 +/Users/ujinyoung/.pylint.d|1.8225|1587457270 +/Users/ujinyoung/blog/my-blog-starter/src/pages|3.49097|1586423766 +/Users/ujinyoung/dotfiles/_karabiner/.config|2|1591098263 +/Users/ujinyoung/dotfiles/zsh/.oh-my-zsh/custom/plugins/zsh-autosuggestions/src|2.1141|1584463555 +/Users/ujinyoung/blog/my-blazing-fast-site|6.4197|1587389925 +/usr/local/share|6.24403|1587828112 +/Users/ujinyoung/blog/Uuritech/src/components/head|2.349|1587714431 +/Users/ujinyoung/.vim/plugged/vim-nerdtree-ignore/autoload|1.458|1587013758 +/Users/ujinyoung/.local/shre|2.25|1587834290 +/Users/ujinyoung/blog/Uuritech|28.047|1587747353 +/Users/ujinyoung/term|5.11966|1587475548 +/Users/ujinyoung/term/pygments/dracula.css|3.33144|1583846112 +/usr/local/Cellar/yarn/1.22.0/bin|1.8225|1586873071 +/Users/ujinyoung/dotfiles/git/.gitignore_global|1.458|1587008703 +/Users/ujinyoung/solution.cpp|2.1141|1586070507 +/Users/ujinyoung/dotfiles/_vim/.vimrc|2.5|1591098476 +/Users/ujinyoung/.zshrc|26.6334|1591149394 +/Users/ujinyoung/requirements.txt|2.36549|1586867454 +/Users/ujinyoung/.oh-my-zsh|6.17883|1587838308 +/Users/ujinyoung/.vim/plugged|5.03411|1587741417 +/Users/ujinyoung/.local/shre/fzf-history|1.8|1587834276 +/Users/ujinyoung/blog/gatsby-starter-try-ghost/src|1.458|1587394939 +/Users/ujinyoung/dotfiles/.gitconfig|2.1141|1583733734 +/Users/ujinyoung/tm|2.36549|1586760434 +/Users/ujinyoung/Dropbox/vimwiki/sub|2.1141|1585670906 +/usr/local/lib/node_modules|2.79532|1586890184 +/usr/local/Cellar/highlight/3.55/share/doc/highlight|2.98544|1583919079 +/Users/ujinyoung/.vimrc|9.86482|1591098476 +/Users/ujinyoung/.npm|4.98619|1587743421 +/usr/local/opt|7.74467|1587842341 +/Users/ujinyoung/.dotfiles/term|2.36549|1583474563 +/Users/ujinyoung/dotfiles/_git/.gitconfig|5.19762|1591147748 +/Users/ujinyoung/.oh-my-zsh/custom/plugins/zsh-autosuggestions|4.00284|1587828112 +/Users/ujinyoung/dotfiles/vim/.viminfo|2.349|1587550384 +/Users/ujinyoung/dotfiles/_zsh|4.67283|1591149424 +/Users/ujinyoung/1|4.07507|1587750334 +/Users/ujinyoung/dotfiles/config/automatic_backups|1.8225|1586869235 +/Users/ujinyoung/.yabairc|5.13011|1587960858 +/Users/ujinyoung/Dropbox/vimwiki/lal.md|1.458|1586575299 +/Users/ujinyoung/dotfiles/test/1|2.36549|1586866709 +/usr/local/Cellar/zsh/5.8|2.61|1587829470 +/usr/local/share/zsh|3.83404|1587828103 +/Users/ujinyoung/.config/nvim/init.vim|2.62832|1587571918 +/Users/ujinyoung/test|6.00953|1587548572 +/Users/ujinyoung/.node-gyp/12.16.2/include|2.1141|1587476325 +/usr/bin/rsync|5.25263|1587843014 +/Users/ujinyoung/tmux-screen-capture-2-0-0-20200409T162637.log|1.458|1586417479 +/Users/ujinyoung/.dotfiles/node|2.36549|1583474846 +/Users/ujinyoung/.fzfignore|3.51495|1587551288 +/Users/ujinyoung/.zplug/repos/dracula/zsh|2.62832|1587570136 +/usr/local|7.7276|1587842306 +/Users/ujinyoung/dotfiles/nodejs/.nvm|1.62|1587551738 +/Users/ujinyoung/dotfiles/term/.autoenv_authorized|1.8225|1583645880 +/Users/ujinyoung/vimwiki|2.59015|1585671873 +/bin/date|2.1141|1586101093 +/Users/ujinyoung/Dropbox/vimwiki|10.2869|1588155243 +/Users/ujinyoung/blog/gatsby-portfolio|1.8225|1587394894 +/Users/ujinyoung/blog/gatsby-starter-blog|2.1141|1587390260 +/Users/ujinyoung/a.out.dSYM|1.458|1585990951 +/Users/ujinyoung/dotfiles/_tmux/tmux.sh|1|1591098520 +/usr/local/etc/highlight/filetypes.conf|1.458|1583924530 +/Users/ujinyoung/ppp#|1.458|1586761647 +/usr/bin|4.75469|1587843112 +/Users/ujinyoung/.vim/plugged/fzf|2.025|1587729512 +/Users/ujinyoung/dotfiles/back|9.99732|1591149406 +/usr/local/Cellar/zsh|1.8|1587829471 +/Users/ujinyoung/solution.dSYM/Contents/Resources/DWARF|1.8225|1586001896 +/Users/ujinyoung/.config/nvim/.ignore|1.8225|1583921983 +/Users/ujinyoung/Dropbox/notable/notes|2.9|1588694542 +/usr/local/Cellar/node/13.8.0/bin|2.1141|1586871997 +/Users/ujinyoung/Pictures/Photos Library.photoslibrary/private/com.apple.photolibraryd/caches|1.62|1587654416 +/Users/ujinyoung/blog/my-blog-starter/content|1.8225|1586418509 +/Users/ujinyoung/dotfiles/_karabiner|2|1591098259 +/usr/local/etc/openssl@1.1|3.64319|1586349372 +/Users/ujinyoung/t|2.59015|1586760868 +/dev/null|1.8|1587746869 +/Users/ujinyoung/.oh-my-zsh/custom/plugins/example|4.582|1587838460 +/Users/ujinyoung/.config/coc|4.86929|1587741616 +/Users/ujinyoung/dotfiles/term/.fasd|2.36549|1583645772 +/usr/local/lib|3.64319|1586890179 +/Users/ujinyoung/dotfiles/git|8.27456|1591099823 +/usr/local/bin|4.83781|1587731106 +/Users/ujinyoung/dotfiles/etc|4.11289|1587846884 +/Users/ujinyoung/.local/lib|1.458|1587457527 +/Users/ujinyoung/.local/bin|2.1141|1587457521 +/Users/ujinyoung/dotfiles/test/ex2|2.1141|1586866709 +/Users/ujinyoung/dotfiles/.git|1.8|1587745667 +/Users/ujinyoung/.nvm/versions/node/v12.14.1/bin|1.458|1586871848 +/Users/ujinyoung/dotfiles/vim|15.2426|1591099665 +/Users/ujinyoung/.ssh|1.62|1587735516 +/usr/local/etc|1.8225|1586328398 +/Users/ujinyoung/jupyter|2.79532|1583647594 +/usr/local/opt/fzf|6.44246|1587731221 +/Users/ujinyoung/dotfiles/karabiner/log|1.62|1587546830 +/Users/ujinyoung/dotfiles/zsh/.oh-my-zsh|2.90287|1587831501 +/Users/ujinyoung/.vim/plugged/vim-nerdtree-ignore/nerdtree_plugin|2.98544|1587013746 +/Users/ujinyoung/dotfiles/test/test.sh|7.84324|1586866709 +/Users/ujinyoung/zshinstall.sh|2.36549|1583647158 +/Users/ujinyoung/dotfiles/zsh/.zshenv|4.69762|1587833615 +/Users/ujinyoung/dotfiles/vim/1/lines|1.458|1586863337 +/Users/ujinyoung/Dropbox|7.07668|1588694476 +/Users/ujinyoung/.node-gyp|3.16345|1587476310 +/Users/ujinyoung/selenium/test.py|5.52296|1584719655 +/Users/ujinyoung/dotfiles/karabiner/assets|1.8|1587834053 +/Users/ujinyoung/dotfiles/git/.gitconfig|2.79532|1586859490 +/usr/local/lib/node_modules/npm|2.98544|1586890187 +/Users/ujinyoung/solution|12.6736|1586097478 +/Users/ujinyoung/.oh-my-zsh/custom/plugins/zsh-autosuggestions/spec/widgets|2.1141|1584465836 +/Users/ujinyoung/.zshenv|15.5697|1591101807 +/Users/ujinyoung/dotfiles/nodejs|4.79652|1587847017 +/Users/ujinyoung/dotfiles/yabai/ex.sh|3.92933|1586792860 +/Users/ujinyoung/.yarn|6.61684|1587831618 +/Users/ujinyoung/dotfiles|48.4258|1591149557 +/Users/ujinyoung/blog/my-blog-starter/src/utils|2.1141|1586904832 +/Users/ujinyoung/.tmux/plugins/tmuxline.vim|3.11245|1587743046 +/Users/ujinyoung/Dropbox/vimwiki/vimwiki/index.md|1.458|1585672012 +/Users/ujinyoung/dotfiles/karabiner./.config|2.25|1587834213 +/Users/ujinyoung/selenium/getbook-done.py|7.05452|1585309442 +/Users/ujinyoung/.zplug|2.69383|1587746768 +/usr/local/var/log/yabai|2.59015|1583997582 +/Users/ujinyoung/.yarn/bin|2.59015|1587456633 +/Users/ujinyoung/dotfiles/fzf~|1.8|1587745400 +/Users/ujinyoung/blog/gatsby-starter-bee|8.69596|1591097025 +/Users/ujinyoung/dotfiles/test/ex.sh|2.1141|1586866709 +/Users/ujinyoung/blog/gatsby-starter-try-ghost/src/gatsby-theme-try-ghost|1.8225|1587394937 +/Users/ujinyoung/back.zsh|5.59069|1591100680 +/Users/ujinyoung/.local/share/nvim/site|3.52839|1587549908 +/Users/ujinyoung/.local/share/karabiner/pid|3.04554|1587834256 +/Users/ujinyoung/.vim/plugged/vim-nerdtree-ignore|3.16345|1587015193 +/Users/ujinyoung/vimwiki/tf-start.md|1.458|1585671538 +/Users/ujinyoung/dotfiles/dracula.css|2.59015|1583933871 +/Users/ujinyoung/.config/gatsby|5.55968|1587742598 +/Users/ujinyoung/.tmux/resurrect/restore/pane_contents|1.62|1587742013 +/Users/ujinyoung/dotfiles/karabiner/.config/karabiner|3.25157|1587546190 +/Users/ujinyoung/.nvm|8.26807|1587653350 +/Users/ujinyoung/.nvm/alias|2.59015|1587476432 +/Users/ujinyoung/blog/my-blog-starter|8.74395|1587048709 +/Users/ujinyoung/.oh-my-zsh/plugins/nvm|1.8|1587835023 +/Users/ujinyoung/zz|1.8225|1586760438 +/Users/ujinyoung/dotfiles/zsh/.oh-my-zsh/custom/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh|1.458|1584463746 +/Users/ujinyoung/dotfiles/yabai/test1.sh|3.78906|1585203727 +/Users/ujinyoung/dotfiles/_fzf|1|1591149518 +/usr/local/Cellar/highlight/3.55/share|2.98544|1583919082 +/usr/local/opt/zsh/share/zsh|1.8|1587829343 +/usr/local/lib/node_modules/npm/node_modules|1.458|1586873214 +/usr/share/zsh/5.7.1/scripts|1.8|1587827467 +/Users/ujinyoung|11.2156|1591097504 +/Users/ujinyoung/dracula.css|2.1141|1586888274 +/Users/ujinyoung/dotfiles/karabiner/.config/karabiner~|2.87794|1587546189 +/Users/ujinyoung/.nvm/versions/node/v12.16.2|2.1141|1586890214 +/Users/ujinyoung/.tmux/plugins/tmux-resurrect|1.458|1586858544 +/Users/ujinyoung/blog/my-blog-starter/src/pages/index.js|1.8225|1586420989 +/Users/ujinyoung/back|2.025|1587739184 +/Users/ujinyoung/.local/share/nvim/session|1.908|1587549845 +/Users/ujinyoung/.project|1.8225|1587457342 +/Users/ujinyoung/Dropbox/notable|3.05679|1588694482 +/Users/ujinyoung/blog/my-blog-starter/src|4.79448|1587014673 +/Users/ujinyoung/ya.sh|2.98544|1586858185 +/Users/ujinyoung/dotfiles/zsh|13.5995|1587846955 +/Users/ujinyoung/dotfiles/karabiner/karabiner|1.62|1587546841 +/Users/ujinyoung/gitconfig.sh|1.8225|1586902625 +/Users/ujinyoung/.node-gyp/12.16.2/include/node|1.458|1587476324 +/Users/ujinyoung/dotfiles/1|1.8225|1583841125 +/Users/ujinyoung/dotfiles/vim/Users|3.05259|1587747424 +/Users/ujinyoung/.config/configstore|4.81612|1587742631 +/Users/ujinyoung/.local/share/nvim/swap|5.00859|1587740774 +/Users/ujinyoung/dotfiles/zshplugin.sh|5.4379|1587831302 +/Users/ujinyoung/.tmux/plugins/tmuxline.vim/.git|1.8|1587743044 +/Users/ujinyoung/Solution|2.59015|1585953287 +/Users/ujinyoung/dotfiles/tmux/.tmux.conf|2.64284|1587550640 +/usr/local/opt/zplug/repos/zsh-users/zsh-syntax-highlighting/zsh-syntax-highlighting.plugin.zsh|1.458|1586881583 +/usr/local/Cellar/fzf|1.62|1587730739 +/usr/local/opt/zsh-completions/share/zsh-completions|1.458|1586879146 +/Users/ujinyoung/dotfiles/gdb/.gdbinit|2.69507|1587551488 +/Users/ujinyoung/Dropbox/vimwiki/subject|3.49097|1585672834 +/Users/ujinyoung/.oh-my-zsh/plugins/git|1.8|1587835023 +/Users/ujinyoung/.vim/autoload|3.11804|1587741393 +/Users/ujinyoung/.oh-my-zsh/plugins/osx|1.8|1587835023 +/Users/ujinyoung/solution.dSYM|5.98839|1586097260 +/Users/ujinyoung/dotfiles/zsh/.zshrc~|1.8|1587833531 +/Users/ujinyoung/Dropbox/Mackup/.config|1.458|1584453239 +/Users/ujinyoung/Dropbox/vimwiki/index.md|2.1141|1585672269 +/Users/ujinyoung/.vim|9.97722|1587741392 +/Users/ujinyoung/.tmux/resurrect|3.41051|1587742029 +/Users/ujinyoung/.tmux/resurrect/save|2.349|1587742026 +/Users/ujinyoung/.vim/init.vim|1.62|1587571702 +/bin/zsh|1.8225|1586849051 +/Users/ujinyoung/.local/share/virtualenvs/tf-Lgo-lRSn|2.79532|1587457978 +/Users/ujinyoung/tetst|2.36549|1586761636 +/Users/ujinyoung/selenium/test2.py|1.458|1584663713 +/Users/ujinyoung/dotfiles/test/test2.sh|6.90135|1586866709 +/Users/ujinyoung/.notable|2.36549|1587457448 +/Users/ujinyoung/blog/Uuritech/node_modules|2.349|1587657375 +/Users/ujinyoung/Dropbox/vimwiki/vimwiki|2.79532|1585672039 +/Users/ujinyoung/dotfiles/_Git|5.19762|1591147743 +/Users/ujinyoung/.oh-my-zsh/plugins/fzf/fzf.plugin.zsh|1.458|1586880651 +/Users/ujinyoung/dm|1.8225|1586760436 +/usr/local/Cellar/node|3.33144|1586890114 +/Users/ujinyoung/selenium/naver.py|16.1777|1585271855 +/Users/ujinyoung/writing|2.9|1591097504 +/Users/ujinyoung/.tmux/plugins/tpm|2.69507|1587742043 +/Users/ujinyoung/dotfiles/config/assets|2.59015|1586869223 +/Users/ujinyoung/.oh-my-zsh/custom/plugins|6.7215|1587838463 +/Users/ujinyoung/selenium/macrotool.py|13.2083|1585137746 +/Users/ujinyoung/.zplug/repos/dracula|1.62|1587570022 +/usr/local/opt/zsh-completions/share|2.1141|1586879147 +/usr/local/Cellar/zsh/5.8/share/zsh|2.61|1587829468 +/Users/ujinyoung/VIMWIKI|2.79532|1585671800 +/usr/local/Cellar/highlight/3.55|2.36549|1583918426 +/Users/ujinyoung/dotfiles/git/gitconfig.sh|1.458|1587481208 +/Users/ujinyoung/dotfiles/_vim/.vim|2|1591098189 +/Users/ujinyoung/ee|2.8911|1587548540 +/Users/ujinyoung/dotfiles/yabai/test.sh|20.1324|1585203324 +/Users/ujinyoung/dotfiles/stowinstall.sh|1.8225|1583642225 +/Users/ujinyoung/dotfiles/yabai/yaya.sh|2.1141|1586789785 +/Users/ujinyoung/blog/gatsby-starter-bee/src/templates/blog-post.js|1.62|1587715523 +/Users/ujinyoung/.dotfiles|2.59015|1583474848 +/usr/share|2.90287|1587829367 +/Users/ujinyoung/dotfiles/karabiner/.config|7.63867|1587546874 +/Users/ujinyoung/blog/Uuritech/src/components/head/index.jsx|2.62832|1587715607 +/Users/ujinyoung/dotfiles/test2/ex3|4.90532|1586802235 +/Users/ujinyoung/dotfiles/test2/ex4|2.1141|1586802244 +/Users/ujinyoung/dotfiles/test2/ex5|2.1141|1586802156 +/Users/ujinyoung/testgit|21.4868|1583844762 +/Users/ujinyoung/test/rr/ee|1.8225|1587461485 +/Users/ujinyoung/.nvm/alias/lts|1.458|1586889585 +/usr/local/opt/gcc|2.025|1587731007 +/usr/local/Cellar/highlight/3.55/share/doc|3.16345|1583919081 +/Users/ujinyoung/selenium/getbook-easy.py|3.64319|1584708704 +/Users/ujinyoung/dotfiles/term/.terminfo|3.64319|1587455808 +/Users/ujinyoung/dotfiles/config/.config/coc|4.06457|1586870880 +/Users/ujinyoung/.config/yarn/global|5.35994|1587831679 +/Users/ujinyoung/dotfiles/config/.config/coc/coc|2.1141|1586869630 +/Users/ujinyoung/iterm|1.8225|1583741460 +/Users/ujinyoung/.config/yarn/global/yarn.lock|1.8|1587831560 +/Users/ujinyoung/dotfiles/tmux/tmux.sh|3.72299|1587835023 +/Users/ujinyoung/Dropbox/vimwiki/RGSoc.md|1|1588142425 +/Users/ujinyoung/term/pygments|4.32199|1583861129 +/Users/ujinyoung/Desktop|2.1141|1583647697 +/usr/local/opt/zsh/share|1.8|1587829342 +/Users/ujinyoung/solution.dSYM/Contents|1.458|1586001812 +/Users/ujinyoung/.ignore|1.8225|1587009445 +/Users/ujinyoung/zsh/.oh-my-zsh|1.8|1587831457 diff --git a/_etc/.notable.json b/_etc/.notable.json new file mode 100644 index 0000000..5b517c6 --- /dev/null +++ b/_etc/.notable.json @@ -0,0 +1,29 @@ +{ + "monaco": { + "editorOptions": { + "minimap": { + "enabled": false + }, + "lineNumbers": "off", + "scrollBeyondLastLine": false, + "wordWrap": "bounded" + } + }, + "sorting": { + "by": "title", + "type": "ascending" + }, + "theme": "dark", + "tutorial": false, + "cwd": "/Users/ujinyoung/Dropbox/notable", + "Options": { + "editor": { + "wordWrap": "off", + "minimap": { + "enabled": false + }, + "lineNumbers": "on", + "scrollBeyondLastLine": false + } + } +} \ No newline at end of file diff --git a/_etc/.skhdrc b/_etc/.skhdrc new file mode 100644 index 0000000..b60089b --- /dev/null +++ b/_etc/.skhdrc @@ -0,0 +1,149 @@ +# ################################################################ # +# THE FOLLOWING IS AN EXPLANATION OF THE GRAMMAR THAT SKHD PARSES. # +# FOR SIMPLE EXAMPLE MAPPINGS LOOK FURTHER DOWN THIS FILE.. # +# ################################################################ # + +# A list of all built-in modifier and literal keywords can +# be found at https://github.com/koekeishiya/skhd/issues/1 +# +# A hotkey is written according to the following rules: +# +# hotkey = '<' | +# +# mode = 'name of mode' | ',' +# +# action = '[' ']' | '->' '[' ']' +# ':' | '->' ':' +# ';' | '->' ';' +# +# keysym = '-' | +# +# mod = 'modifier keyword' | '+' +# +# key = | +# +# literal = 'single letter or built-in keyword' +# +# keycode = 'apple keyboard kVK_ values (0x3C)' +# +# proc_map_lst = * +# +# proc_map = ':' | '~' | +# '*' ':' | '*' '~' +# +# string = '"' 'sequence of characters' '"' +# +# command = command is executed through '$SHELL -c' and +# follows valid shell syntax. if the $SHELL environment +# variable is not set, it will default to '/bin/bash'. +# when bash is used, the ';' delimeter can be specified +# to chain commands. +# +# to allow a command to extend into multiple lines, +# prepend '\' at the end of the previous line. +# +# an EOL character signifies the end of the bind. +# +# -> = keypress is not consumed by skhd +# +# * = matches every application not specified in +# +# ~ = application is unbound and keypress is forwarded per usual, when specified in a +# +# A mode is declared according to the following rules: +# +# mode_decl = '::' '@' ':' | '::' ':' | +# '::' '@' | '::' +# +# name = desired name for this mode, +# +# @ = capture keypresses regardless of being bound to an action +# +# command = command is executed through '$SHELL -c' and +# follows valid shell syntax. if the $SHELL environment +# variable is not set, it will default to '/bin/bash'. +# when bash is used, the ';' delimeter can be specified +# to chain commands. +# +# to allow a command to extend into multiple lines, +# prepend '\' at the end of the previous line. +# +# an EOL character signifies the end of the bind. + +# ############################################################### # +# THE FOLLOWING SECTION CONTAIN SIMPLE MAPPINGS DEMONSTRATING HOW # +# TO INTERACT WITH THE YABAI WM. THESE ARE SUPPOSED TO BE USED AS # +# A REFERENCE ONLY, WHEN MAKING YOUR OWN CONFIGURATION.. # +# ############################################################### # + +# focus window +# alt - h : yabai -m window --focus west + +# swap managed window +# shift + alt - h : yabai -m window --swap north + +# move managed window +# shift + cmd - h : yabai -m window --warp east + +# balance size of windows +# shift + alt - 0 : yabai -m space --balance + +# make floating window fill screen +# shift + alt - up : yabai -m window --grid 1:1:0:0:1:1 + +# make floating window fill left-half of screen +# shift + alt - left : yabai -m window --grid 1:2:0:0:1:1 + +# create desktop, move window and follow focus - uses jq for parsing json (brew install jq) +# shift + cmd - n : yabai -m space --create && \ +# index="$(yabai -m query --spaces --display | jq 'map(select(."native-fullscreen" == 0))[-1].index')" && \ +# yabai -m window --space "${index}" && \ +# yabai -m space --focus "${index}" + +# fast focus desktop +# cmd + alt - x : yabai -m space --focus recent +# cmd + alt - 1 : yabai -m space --focus 1 + +# send window to desktop and follow focus +# shift + cmd - z : yabai -m window --space next; yabai -m space --focus next +# shift + cmd - 2 : yabai -m window --space 2; yabai -m space --focus 2 + +# focus monitor +# ctrl + alt - z : yabai -m display --focus prev +# ctrl + alt - 3 : yabai -m display --focus 3 + +# send window to monitor and follow focus +# ctrl + cmd - c : yabai -m window --display next; yabai -m display --focus next +# ctrl + cmd - 1 : yabai -m window --display 1; yabai -m display --focus 1 + +# move floating window +# shift + ctrl - a : yabai -m window --move rel:-20:0 +# shift + ctrl - s : yabai -m window --move rel:0:20 + +# increase window size +# shift + alt - a : yabai -m window --resize left:-20:0 +# shift + alt - w : yabai -m window --resize top:0:-20 + +# decrease window size +# shift + cmd - s : yabai -m window --resize bottom:0:-20 +# shift + cmd - w : yabai -m window --resize top:0:20 + +# set insertion point in focused container +# ctrl + alt - h : yabai -m window --insert west + +# toggle window zoom +# alt - d : yabai -m window --toggle zoom-parent +# alt - f : yabai -m window --toggle zoom-fullscreen + +# toggle window split type +# alt - e : yabai -m window --toggle split + +# float / unfloat window and center on screen +# alt - t : yabai -m window --toggle float;\ +# yabai -m window --grid 4:4:1:1:2:2 + +# toggle sticky(+float), topmost, border and picture-in-picture +# alt - p : yabai -m window --toggle sticky;\ +# yabai -m window --toggle topmost;\ +# yabai -m window --toggle border;\ +# yabai -m window --toggle pip diff --git a/_etc/.yabairc b/_etc/.yabairc new file mode 100755 index 0000000..97f6703 --- /dev/null +++ b/_etc/.yabairc @@ -0,0 +1,46 @@ +#!/usr/bin/env sh + +# bar settings +yabai -m config status_bar off +yabai -m config status_bar_text_font "Helvetica Neue:Bold:12.0" +yabai -m config status_bar_icon_font "FontAwesome:Regular:12.0" +yabai -m config status_bar_background_color 0xff202020 +yabai -m config status_bar_foreground_color 0xffa8a8a8 +yabai -m config status_bar_space_icon_strip I II III IV V VI VII VIII IX X +yabai -m config status_bar_power_icon_strip   +yabai -m config status_bar_space_icon  +yabai -m config status_bar_clock_icon  + +# global settings +yabai -m config mouse_follows_focus off +yabai -m config focus_follows_mouse off +yabai -m config window_placement first_child +yabai -m config window_topmost off +yabai -m config window_opacity on +yabai -m config window_opacity_duration 0.0 +yabai -m config window_shadow on +yabai -m config window_border off +yabai -m config window_border_placement inset +yabai -m config window_border_width 4 +yabai -m config window_border_radius -1.0 +yabai -m config active_window_border_topmost off +yabai -m config active_window_border_color 0xff775759 +yabai -m config normal_window_border_color 0xff505050 +yabai -m config insert_window_border_color 0xffd75f5f +yabai -m config active_window_opacity 1 +yabai -m config normal_window_opacity 0.9 +yabai -m config split_ratio 0.5 +yabai -m config auto_balance on +yabai -m config mouse_modifier fn +yabai -m config mouse_action1 move +yabai -m config mouse_action2 resize + +# general space settings +yabai -m config layout bsp +yabai -m config top_padding 0 +yabai -m config bottom_padding 0 +yabai -m config left_padding 0 +yabai -m config right_padding 0 +yabai -m config window_gap 0 + +echo "yabai configuration loaded.." diff --git a/_etc/.yarnrc b/_etc/.yarnrc new file mode 100644 index 0000000..1048bde --- /dev/null +++ b/_etc/.yarnrc @@ -0,0 +1,5 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +lastUpdateCheck 1591096918956 diff --git a/_fzf/.fzf.zsh b/_fzf/.fzf.zsh new file mode 100644 index 0000000..bcae1b9 --- /dev/null +++ b/_fzf/.fzf.zsh @@ -0,0 +1,13 @@ +# Setup fzf +# --------- +if [[ ! "$PATH" == */usr/local/opt/fzf/bin* ]]; then + export PATH="${PATH:+${PATH}:}/usr/local/opt/fzf/bin" +fi + +# Auto-completion +# --------------- +[[ $- == *i* ]] && source "/usr/local/opt/fzf/shell/completion.zsh" 2> /dev/null + +# Key bindings +# ------------ +source "/usr/local/opt/fzf/shell/key-bindings.zsh" diff --git a/_fzf/.fzfignore b/_fzf/.fzfignore new file mode 100644 index 0000000..5a8136b --- /dev/null +++ b/_fzf/.fzfignore @@ -0,0 +1 @@ +.yarnrc diff --git a/_fzf/fzfsetup.zsh b/_fzf/fzfsetup.zsh new file mode 100644 index 0000000..1f4a9ff --- /dev/null +++ b/_fzf/fzfsetup.zsh @@ -0,0 +1,4 @@ +#!/usr/bin/zsh env + +/usr/local/opt/fzf/install + diff --git a/_gdb/.gdbinit b/_gdb/.gdbinit new file mode 100644 index 0000000..4a838fa --- /dev/null +++ b/_gdb/.gdbinit @@ -0,0 +1,2262 @@ +python + +# GDB dashboard - Modular visual interface for GDB in Python. +# +# https://github.com/cyrus-and/gdb-dashboard + +# License ---------------------------------------------------------------------- + +# Copyright (c) 2015-2020 Andrea Cardaci +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +# Imports ---------------------------------------------------------------------- + +import ast +import math +import os +import re +import struct +import traceback + +# Common attributes ------------------------------------------------------------ + +class R(): + + @staticmethod + def attributes(): + return { + # miscellaneous + 'ansi': { + 'doc': 'Control the ANSI output of the dashboard.', + 'default': True, + 'type': bool + }, + 'syntax_highlighting': { + 'doc': '''Pygments style to use for syntax highlighting. + +Using an empty string (or a name not in the list) disables this feature. The +list of all the available styles can be obtained with (from GDB itself): + + python from pygments.styles import * + python for style in get_all_styles(): print(style)''', + 'default': 'monokai' + }, + 'discard_scrollback': { + 'doc': '''Discard the scrollback buffer at each redraw. + +This makes scrolling less confusing by discarding the previously printed +dashboards but only works with certain terminals.''', + 'default': True, + 'type': bool + }, + # values formatting + 'compact_values': { + 'doc': 'Display complex objects in a single line.', + 'default': True, + 'type': bool + }, + 'max_value_length': { + 'doc': 'Maximum length of displayed values before truncation.', + 'default': 100, + 'type': int + }, + 'value_truncation_string': { + 'doc': 'String to use to mark value truncation.', + 'default': '…', + }, + 'dereference': { + 'doc': 'Annotate pointers with the pointed value.', + 'default': True, + 'type': bool + }, + # prompt + 'prompt': { + 'doc': '''GDB prompt. + +This value is used as a Python format string where `{status}` is expanded with +the substitution of either `prompt_running` or `prompt_not_running` attributes, +according to the target program status. The resulting string must be a valid GDB +prompt, see the command `python print(gdb.prompt.prompt_help())`''', + 'default': '{status}' + }, + 'prompt_running': { + 'doc': '''Define the value of `{status}` when the target program is running. + +See the `prompt` attribute. This value is used as a Python format string where +`{pid}` is expanded with the process identifier of the target program.''', + 'default': '\[\e[1;35m\]>>>\[\e[0m\]' + }, + 'prompt_not_running': { + 'doc': '''Define the value of `{status}` when the target program is running. + +See the `prompt` attribute. This value is used as a Python format string.''', + 'default': '\[\e[1;30m\]>>>\[\e[0m\]' + }, + # divider + 'divider_fill_char_primary': { + 'doc': 'Filler around the label for primary dividers', + 'default': '─' + }, + 'divider_fill_char_secondary': { + 'doc': 'Filler around the label for secondary dividers', + 'default': '─' + }, + 'divider_fill_style_primary': { + 'doc': 'Style for `divider_fill_char_primary`', + 'default': '36' + }, + 'divider_fill_style_secondary': { + 'doc': 'Style for `divider_fill_char_secondary`', + 'default': '1;30' + }, + 'divider_label_style_on_primary': { + 'doc': 'Label style for non-empty primary dividers', + 'default': '1;33' + }, + 'divider_label_style_on_secondary': { + 'doc': 'Label style for non-empty secondary dividers', + 'default': '1;37' + }, + 'divider_label_style_off_primary': { + 'doc': 'Label style for empty primary dividers', + 'default': '33' + }, + 'divider_label_style_off_secondary': { + 'doc': 'Label style for empty secondary dividers', + 'default': '1;30' + }, + 'divider_label_skip': { + 'doc': 'Gap between the aligning border and the label.', + 'default': 3, + 'type': int, + 'check': check_ge_zero + }, + 'divider_label_margin': { + 'doc': 'Number of spaces around the label.', + 'default': 1, + 'type': int, + 'check': check_ge_zero + }, + 'divider_label_align_right': { + 'doc': 'Label alignment flag.', + 'default': False, + 'type': bool + }, + # common styles + 'style_selected_1': { + 'default': '1;32' + }, + 'style_selected_2': { + 'default': '32' + }, + 'style_low': { + 'default': '1;30' + }, + 'style_high': { + 'default': '1;37' + }, + 'style_error': { + 'default': '31' + }, + 'style_critical': { + 'default': '0;41' + } + } + +# Common ----------------------------------------------------------------------- + +class Beautifier(): + + def __init__(self, hint, tab_size=4): + self.tab_spaces = ' ' * tab_size + self.active = False + if not R.ansi or not R.syntax_highlighting: + return + # attempt to set up Pygments + try: + import pygments + from pygments.lexers import GasLexer, NasmLexer + from pygments.formatters import Terminal256Formatter + if hint == 'att': + self.lexer = GasLexer() + elif hint == 'intel': + self.lexer = NasmLexer() + else: + from pygments.lexers import get_lexer_for_filename + self.lexer = get_lexer_for_filename(hint, stripnl=False) + self.formatter = Terminal256Formatter(style=R.syntax_highlighting) + self.active = True + except ImportError: + # Pygments not available + pass + except pygments.util.ClassNotFound: + # no lexer for this file or invalid style + pass + + def process(self, source): + # convert tabs anyway + source = source.replace('\t', self.tab_spaces) + if self.active: + import pygments + source = pygments.highlight(source, self.lexer, self.formatter) + return source.rstrip('\n') + +def run(command): + return gdb.execute(command, to_string=True) + +def ansi(string, style): + if R.ansi: + return '\x1b[{}m{}\x1b[0m'.format(style, string) + else: + return string + +def divider(width, label='', primary=False, active=True): + if primary: + divider_fill_style = R.divider_fill_style_primary + divider_fill_char = R.divider_fill_char_primary + divider_label_style_on = R.divider_label_style_on_primary + divider_label_style_off = R.divider_label_style_off_primary + else: + divider_fill_style = R.divider_fill_style_secondary + divider_fill_char = R.divider_fill_char_secondary + divider_label_style_on = R.divider_label_style_on_secondary + divider_label_style_off = R.divider_label_style_off_secondary + if label: + if active: + divider_label_style = divider_label_style_on + else: + divider_label_style = divider_label_style_off + skip = R.divider_label_skip + margin = R.divider_label_margin + before = ansi(divider_fill_char * skip, divider_fill_style) + middle = ansi(label, divider_label_style) + after_length = width - len(label) - skip - 2 * margin + after = ansi(divider_fill_char * after_length, divider_fill_style) + if R.divider_label_align_right: + before, after = after, before + return ''.join([before, ' ' * margin, middle, ' ' * margin, after]) + else: + return ansi(divider_fill_char * width, divider_fill_style) + +def check_gt_zero(x): + return x > 0 + +def check_ge_zero(x): + return x >= 0 + +def to_unsigned(value, size=8): + # values from GDB can be used transparently but are not suitable for + # being printed as unsigned integers, so a conversion is needed + mask = (2 ** (size * 8)) - 1 + return int(value.cast(gdb.Value(mask).type)) & mask + +def to_string(value): + # attempt to convert an inferior value to string; OK when (Python 3 || + # simple ASCII); otherwise (Python 2.7 && not ASCII) encode the string as + # utf8 + try: + value_string = str(value) + except UnicodeEncodeError: + value_string = unicode(value).encode('utf8') + except gdb.error as e: + value_string = ansi(e, R.style_error) + return value_string + +def format_address(address): + pointer_size = gdb.parse_and_eval('$pc').type.sizeof + return ('0x{{:0{}x}}').format(pointer_size * 2).format(address) + +def format_value(value, compact=None): + # format references as referenced values + # (TYPE_CODE_RVALUE_REF is not supported by old GDB) + if value.type.code in (getattr(gdb, 'TYPE_CODE_REF', None), + getattr(gdb, 'TYPE_CODE_RVALUE_REF', None)): + try: + value = value.referenced_value() + except gdb.error as e: + return ansi(e, R.style_error) + # format the value + out = to_string(value) + # dereference up to the actual value if requested + if R.dereference and value.type.code == gdb.TYPE_CODE_PTR: + while value.type.code == gdb.TYPE_CODE_PTR: + try: + value = value.dereference() + except gdb.error as e: + break + else: + formatted = to_string(value) + out += '{} {}'.format(ansi(':', R.style_low), formatted) + # compact the value + if compact is not None and compact or R.compact_values: + out = re.sub(r'$\s*', '', out, flags=re.MULTILINE) + # truncate the value + if R.max_value_length > 0 and len(out) > R.max_value_length: + out = out[0:R.max_value_length] + ansi(R.value_truncation_string, R.style_critical) + return out + +# XXX parsing the output of `info breakpoints` is apparently the best option +# right now, see: https://sourceware.org/bugzilla/show_bug.cgi?id=18385 +# XXX GDB version 7.11 (quire recent) does not have the pending field, so +# fall back to the parsed information +def fetch_breakpoints(watchpoints=False, pending=False): + # fetch breakpoints addresses + parsed_breakpoints = dict() + for line in run('info breakpoints').split('\n'): + # just keep numbered lines + if not line or not line[0].isdigit(): + continue + # extract breakpoint number, address and pending status + fields = line.split() + number = int(fields[0].split('.')[0]) + try: + if len(fields) >= 5 and fields[1] == 'breakpoint': + # multiple breakpoints have no address yet + is_pending = fields[4] == '' + is_multiple = fields[4] == '' + address = None if is_multiple or is_pending else int(fields[4], 16) + is_enabled = fields[3] == 'y' + address_info = address, is_enabled + parsed_breakpoints[number] = [address_info], is_pending + elif len(fields) >= 3 and number in parsed_breakpoints: + # add this address to the list of multiple locations + address = int(fields[2], 16) + is_enabled = fields[1] == 'y' + address_info = address, is_enabled + parsed_breakpoints[number][0].append(address_info) + else: + # watchpoints + parsed_breakpoints[number] = [], False + except ValueError: + pass + # fetch breakpoints from the API and complement with address and source + # information + breakpoints = [] + # XXX in older versions gdb.breakpoints() returns None + for gdb_breakpoint in gdb.breakpoints() or []: + addresses, is_pending = parsed_breakpoints[gdb_breakpoint.number] + is_pending = getattr(gdb_breakpoint, 'pending', is_pending) + if not pending and is_pending: + continue + if not watchpoints and gdb_breakpoint.type != gdb.BP_BREAKPOINT: + continue + # add useful fields to the object + breakpoint = dict() + breakpoint['number'] = gdb_breakpoint.number + breakpoint['type'] = gdb_breakpoint.type + breakpoint['enabled'] = gdb_breakpoint.enabled + breakpoint['location'] = gdb_breakpoint.location + breakpoint['expression'] = gdb_breakpoint.expression + breakpoint['condition'] = gdb_breakpoint.condition + breakpoint['temporary'] = gdb_breakpoint.temporary + breakpoint['hit_count'] = gdb_breakpoint.hit_count + breakpoint['pending'] = is_pending + # add addresses and source information + breakpoint['addresses'] = [] + for address, is_enabled in addresses: + if address: + sal = gdb.find_pc_line(address) + breakpoint['addresses'].append({ + 'address': address, + 'enabled': is_enabled, + 'file_name': sal.symtab.filename if address and sal.symtab else None, + 'file_line': sal.line if address else None + }) + breakpoints.append(breakpoint) + return breakpoints + +# Dashboard -------------------------------------------------------------------- + +class Dashboard(gdb.Command): + '''Redisplay the dashboard.''' + + def __init__(self): + gdb.Command.__init__(self, 'dashboard', gdb.COMMAND_USER, gdb.COMPLETE_NONE, True) + # setup subcommands + Dashboard.ConfigurationCommand(self) + Dashboard.OutputCommand(self) + Dashboard.EnabledCommand(self) + Dashboard.LayoutCommand(self) + # setup style commands + Dashboard.StyleCommand(self, 'dashboard', R, R.attributes()) + # main terminal + self.output = None + # used to inhibit redisplays during init parsing + self.inhibited = None + # enabled by default + self.enabled = None + self.enable() + + def on_continue(self, _): + # try to contain the GDB messages in a specified area unless the + # dashboard is printed to a separate file (dashboard -output ...) + if self.is_running() and not self.output: + width, _ = Dashboard.get_term_size() + gdb.write(Dashboard.clear_screen()) + gdb.write(divider(width, 'Output/messages', True)) + gdb.write('\n') + gdb.flush() + + def on_stop(self, _): + if self.is_running(): + self.render(clear_screen=False) + + def on_exit(self, _): + if not self.is_running(): + return + # collect all the outputs + outputs = set() + outputs.add(self.output) + outputs.update(module.output for module in self.modules) + outputs.remove(None) + # reset the terminal status + for output in outputs: + try: + with open(output, 'w') as fs: + fs.write(Dashboard.reset_terminal()) + except: + # skip cleanup for invalid outputs + pass + + def enable(self): + if self.enabled: + return + self.enabled = True + # setup events + gdb.events.cont.connect(self.on_continue) + gdb.events.stop.connect(self.on_stop) + gdb.events.exited.connect(self.on_exit) + + def disable(self): + if not self.enabled: + return + self.enabled = False + # setup events + gdb.events.cont.disconnect(self.on_continue) + gdb.events.stop.disconnect(self.on_stop) + gdb.events.exited.disconnect(self.on_exit) + + def load_modules(self, modules): + self.modules = [] + for module in modules: + info = Dashboard.ModuleInfo(self, module) + self.modules.append(info) + + def redisplay(self, style_changed=False): + # manually redisplay the dashboard + if self.is_running() and not self.inhibited: + self.render(True, style_changed) + + def inferior_pid(self): + return gdb.selected_inferior().pid + + def is_running(self): + return self.inferior_pid() != 0 + + def render(self, clear_screen, style_changed=False): + # fetch module content and info + all_disabled = True + display_map = dict() + for module in self.modules: + # fall back to the global value + output = module.output or self.output + # add the instance or None if disabled + if module.enabled: + all_disabled = False + instance = module.instance + else: + instance = None + display_map.setdefault(output, []).append(instance) + # process each display info + for output, instances in display_map.items(): + try: + buf = '' + # use GDB stream by default + fs = None + if output: + fs = open(output, 'w') + fd = fs.fileno() + fs.write(Dashboard.setup_terminal()) + else: + fs = gdb + fd = 1 # stdout + # get the terminal size (default main terminal if either the + # output is not a file) + try: + width, height = Dashboard.get_term_size(fd) + except: + width, height = Dashboard.get_term_size() + # clear the "screen" if requested for the main terminal, + # auxiliary terminals are always cleared + if fs is not gdb or clear_screen: + buf += Dashboard.clear_screen() + # show message if all the modules in this output are disabled + if not any(instances): + # write the error message + buf += divider(width, 'Warning', True) + buf += '\n' + if self.modules: + buf += 'No module to display (see `dashboard -layout`)' + else: + buf += 'No module loaded' + # write the terminator only in the main terminal + buf += '\n' + if fs is gdb: + buf += divider(width, primary=True) + buf += '\n' + fs.write(buf) + continue + # process all the modules for that output + for n, instance in enumerate(instances, 1): + # skip disabled modules + if not instance: + continue + try: + # ask the module to generate the content + lines = instance.lines(width, height, style_changed) + except Exception as e: + # allow to continue on exceptions in modules + stacktrace = traceback.format_exc().strip() + lines = [ansi(stacktrace, R.style_error)] + # create the divider accordingly + div = divider(width, instance.label(), True, lines) + # write the data + buf += '\n'.join([div] + lines) + # write the newline for all but last unless main terminal + if n != len(instances) or fs is gdb: + buf += '\n' + # write the final newline and the terminator only if it is the + # main terminal to allow the prompt to display correctly (unless + # there are no modules to display) + if fs is gdb and not all_disabled: + buf += divider(width, primary=True) + buf += '\n' + fs.write(buf) + except Exception as e: + cause = traceback.format_exc().strip() + Dashboard.err('Cannot write the dashboard\n{}'.format(cause)) + finally: + # don't close gdb stream + if fs and fs is not gdb: + fs.close() + +# Utility methods -------------------------------------------------------------- + + @staticmethod + def start(): + # initialize the dashboard + dashboard = Dashboard() + Dashboard.set_custom_prompt(dashboard) + # parse Python inits, load modules then parse GDB inits + dashboard.inhibited = True + Dashboard.parse_inits(True) + modules = Dashboard.get_modules() + dashboard.load_modules(modules) + Dashboard.parse_inits(False) + dashboard.inhibited = False + # GDB overrides + run('set pagination off') + # display if possible (program running and not explicitly disabled by + # some configuration file) + if dashboard.enabled: + dashboard.redisplay() + + @staticmethod + def get_term_size(fd=1): # defaults to the main terminal + try: + if sys.platform == 'win32': + import curses + # XXX always neglects the fd parameter + height, width = curses.initscr().getmaxyx() + curses.endwin() + return int(width), int(height) + else: + import termios + import fcntl + # first 2 shorts (4 byte) of struct winsize + raw = fcntl.ioctl(fd, termios.TIOCGWINSZ, ' ' * 4) + height, width = struct.unpack('hh', raw) + return int(width), int(height) + except (ImportError, OSError): + # this happens when no curses library is found on windows or when + # the terminal is not properly configured + return 80, 24 # hardcoded fallback value + + @staticmethod + def set_custom_prompt(dashboard): + def custom_prompt(_): + # render thread status indicator + if dashboard.is_running(): + pid = dashboard.inferior_pid() + status = R.prompt_running.format(pid=pid) + else: + status = R.prompt_not_running + # build prompt + prompt = R.prompt.format(status=status) + prompt = gdb.prompt.substitute_prompt(prompt) + return prompt + ' ' # force trailing space + gdb.prompt_hook = custom_prompt + + @staticmethod + def parse_inits(python): + for root, dirs, files in os.walk(os.path.expanduser('~/.gdbinit.d/')): + dirs.sort() + for init in sorted(files): + path = os.path.join(root, init) + _, ext = os.path.splitext(path) + # either load Python files or GDB + if python == (ext == '.py'): + gdb.execute('source ' + path) + + @staticmethod + def get_modules(): + # scan the scope for modules + modules = [] + for name in globals(): + obj = globals()[name] + try: + if issubclass(obj, Dashboard.Module): + modules.append(obj) + except TypeError: + continue + # sort modules alphabetically + modules.sort(key=lambda x: x.__name__) + return modules + + @staticmethod + def create_command(name, invoke, doc, is_prefix, complete=None): + Class = type('', (gdb.Command,), {'invoke': invoke, '__doc__': doc}) + Class(name, gdb.COMMAND_USER, complete or gdb.COMPLETE_NONE, is_prefix) + + @staticmethod + def err(string): + print(ansi(string, R.style_error)) + + @staticmethod + def complete(word, candidates): + return filter(lambda candidate: candidate.startswith(word), candidates) + + @staticmethod + def parse_arg(arg): + # encode unicode GDB command arguments as utf8 in Python 2.7 + if type(arg) is not str: + arg = arg.encode('utf8') + return arg + + @staticmethod + def clear_screen(): + # ANSI: move the cursor to top-left corner and clear the screen + # (optionally also clear the scrollback buffer if supported by the + # terminal) + return '\x1b[H\x1b[J' + '\x1b[3J' if R.discard_scrollback else '' + + @staticmethod + def setup_terminal(): + # ANSI: enable alternative screen buffer and hide cursor + return '\x1b[?1049h\x1b[?25l' + + @staticmethod + def reset_terminal(): + # ANSI: disable alternative screen buffer and show cursor + return '\x1b[?1049l\x1b[?25h' + +# Module descriptor ------------------------------------------------------------ + + class ModuleInfo: + + def __init__(self, dashboard, module): + self.name = module.__name__.lower() # from class to module name + self.enabled = True + self.output = None # value from the dashboard by default + self.instance = module() + self.doc = self.instance.__doc__ or '(no documentation)' + self.prefix = 'dashboard {}'.format(self.name) + # add GDB commands + self.add_main_command(dashboard) + self.add_output_command(dashboard) + self.add_style_command(dashboard) + self.add_subcommands(dashboard) + + def add_main_command(self, dashboard): + module = self + def invoke(self, arg, from_tty, info=self): + arg = Dashboard.parse_arg(arg) + if arg == '': + info.enabled ^= True + if dashboard.is_running(): + dashboard.redisplay() + else: + status = 'enabled' if info.enabled else 'disabled' + print('{} module {}'.format(module.name, status)) + else: + Dashboard.err('Wrong argument "{}"'.format(arg)) + doc_brief = 'Configure the {} module, with no arguments toggles its visibility.'.format(self.name) + doc = '{}\n\n{}'.format(doc_brief, self.doc) + Dashboard.create_command(self.prefix, invoke, doc, True) + + def add_output_command(self, dashboard): + Dashboard.OutputCommand(dashboard, self.prefix, self) + + def add_style_command(self, dashboard): + Dashboard.StyleCommand(dashboard, self.prefix, self.instance, self.instance.attributes()) + + def add_subcommands(self, dashboard): + for name, command in self.instance.commands().items(): + self.add_subcommand(dashboard, name, command) + + def add_subcommand(self, dashboard, name, command): + action = command['action'] + doc = command['doc'] + complete = command.get('complete') + def invoke(self, arg, from_tty, info=self): + arg = Dashboard.parse_arg(arg) + if info.enabled: + try: + action(arg) + except Exception as e: + Dashboard.err(e) + return + # don't catch redisplay errors + dashboard.redisplay() + else: + Dashboard.err('Module disabled') + prefix = '{} {}'.format(self.prefix, name) + Dashboard.create_command(prefix, invoke, doc, False, complete) + +# GDB commands ----------------------------------------------------------------- + + # handler for the `dashboard` command itself + def invoke(self, arg, from_tty): + arg = Dashboard.parse_arg(arg) + # show messages for checks in redisplay + if arg != '': + Dashboard.err('Wrong argument "{}"'.format(arg)) + elif not self.is_running(): + Dashboard.err('Is the target program running?') + else: + self.redisplay() + + class ConfigurationCommand(gdb.Command): + '''Dump or save the dashboard configuration. + +With an optional argument the configuration will be written to the specified +file. + +This command allows to configure the dashboard live then make the changes +permanent, for example: + + dashboard -configuration ~/.gdbinit.d/init + +At startup the `~/.gdbinit.d/` directory tree is walked and files are evaluated +in alphabetical order but giving priority to Python files. This is where user +configuration files must be placed.''' + + def __init__(self, dashboard): + gdb.Command.__init__(self, 'dashboard -configuration', + gdb.COMMAND_USER, gdb.COMPLETE_FILENAME) + self.dashboard = dashboard + + def invoke(self, arg, from_tty): + arg = Dashboard.parse_arg(arg) + if arg: + with open(os.path.expanduser(arg), 'w') as fs: + fs.write('# auto generated by GDB dashboard\n\n') + self.dump(fs) + self.dump(gdb) + + def dump(self, fs): + # dump layout + self.dump_layout(fs) + # dump styles + self.dump_style(fs, R) + for module in self.dashboard.modules: + self.dump_style(fs, module.instance, module.prefix) + # dump outputs + self.dump_output(fs, self.dashboard) + for module in self.dashboard.modules: + self.dump_output(fs, module, module.prefix) + + def dump_layout(self, fs): + layout = ['dashboard -layout'] + for module in self.dashboard.modules: + mark = '' if module.enabled else '!' + layout.append('{}{}'.format(mark, module.name)) + fs.write(' '.join(layout)) + fs.write('\n') + + def dump_style(self, fs, obj, prefix='dashboard'): + attributes = getattr(obj, 'attributes', lambda: dict())() + for name, attribute in attributes.items(): + real_name = attribute.get('name', name) + default = attribute.get('default') + value = getattr(obj, real_name) + if value != default: + fs.write('{} -style {} {!r}\n'.format(prefix, name, value)) + + def dump_output(self, fs, obj, prefix='dashboard'): + output = getattr(obj, 'output') + if output: + fs.write('{} -output {}\n'.format(prefix, output)) + + class OutputCommand(gdb.Command): + '''Set the output file/TTY for the whole dashboard or single modules. + +The dashboard/module will be written to the specified file, which will be +created if it does not exist. If the specified file identifies a terminal then +its geometry will be used, otherwise it falls back to the geometry of the main +GDB terminal. + +When invoked without argument on the dashboard, the output/messages and modules +which do not specify an output themselves will be printed on standard output +(default). + +When invoked without argument on a module, it will be printed where the +dashboard will be printed. + +An overview of all the outputs can be obtained with the `dashboard -layout` +command.''' + + def __init__(self, dashboard, prefix=None, obj=None): + if not prefix: + prefix = 'dashboard' + if not obj: + obj = dashboard + prefix = prefix + ' -output' + gdb.Command.__init__(self, prefix, gdb.COMMAND_USER, gdb.COMPLETE_FILENAME) + self.dashboard = dashboard + self.obj = obj # None means the dashboard itself + + def invoke(self, arg, from_tty): + arg = Dashboard.parse_arg(arg) + # reset the terminal status + if self.obj.output: + try: + with open(self.obj.output, 'w') as fs: + fs.write(Dashboard.reset_terminal()) + except: + # just do nothing if the file is not writable + pass + # set or open the output file + if arg == '': + self.obj.output = None + else: + self.obj.output = arg + # redisplay the dashboard in the new output + self.dashboard.redisplay() + + class EnabledCommand(gdb.Command): + '''Enable or disable the dashboard. + +The current status is printed if no argument is present.''' + + def __init__(self, dashboard): + gdb.Command.__init__(self, 'dashboard -enabled', gdb.COMMAND_USER) + self.dashboard = dashboard + + def invoke(self, arg, from_tty): + arg = Dashboard.parse_arg(arg) + if arg == '': + status = 'enabled' if self.dashboard.enabled else 'disabled' + print('The dashboard is {}'.format(status)) + elif arg == 'on': + self.dashboard.enable() + self.dashboard.redisplay() + elif arg == 'off': + self.dashboard.disable() + else: + msg = 'Wrong argument "{}"; expecting "on" or "off"' + Dashboard.err(msg.format(arg)) + + def complete(self, text, word): + return Dashboard.complete(word, ['on', 'off']) + + class LayoutCommand(gdb.Command): + '''Set or show the dashboard layout. + +Accepts a space-separated list of directive. Each directive is in the form +"[!]". Modules in the list are placed in the dashboard in the same order +as they appear and those prefixed by "!" are disabled by default. Omitted +modules are hidden and placed at the bottom in alphabetical order. + +Without arguments the current layout is shown where the first line uses the same +form expected by the input while the remaining depict the current status of +output files. + +Passing `!` as a single argument resets the dashboard original layout.''' + + def __init__(self, dashboard): + gdb.Command.__init__(self, 'dashboard -layout', gdb.COMMAND_USER) + self.dashboard = dashboard + + def invoke(self, arg, from_tty): + arg = Dashboard.parse_arg(arg) + directives = str(arg).split() + if directives: + # apply the layout + if directives == ['!']: + self.reset() + else: + if not self.layout(directives): + return # in case of errors + # redisplay or otherwise notify + if from_tty: + if self.dashboard.is_running(): + self.dashboard.redisplay() + else: + self.show() + else: + self.show() + + def reset(self): + modules = self.dashboard.modules + modules.sort(key=lambda module: module.name) + for module in modules: + module.enabled = True + + def show(self): + global_str = 'Dashboard' + default = '(default TTY)' + max_name_len = max(len(module.name) for module in self.dashboard.modules) + max_name_len = max(max_name_len, len(global_str)) + fmt = '{{}}{{:{}s}}{{}}'.format(max_name_len + 2) + print((fmt + '\n').format(' ', global_str, self.dashboard.output or default)) + for module in self.dashboard.modules: + mark = ' ' if module.enabled else '!' + style = R.style_high if module.enabled else R.style_low + line = fmt.format(mark, module.name, module.output or default) + print(ansi(line, style)) + + def layout(self, directives): + modules = self.dashboard.modules + # parse and check directives + parsed_directives = [] + selected_modules = set() + for directive in directives: + enabled = (directive[0] != '!') + name = directive[not enabled:] + if name in selected_modules: + Dashboard.err('Module "{}" already set'.format(name)) + return False + if next((False for module in modules if module.name == name), True): + Dashboard.err('Cannot find module "{}"'.format(name)) + return False + parsed_directives.append((name, enabled)) + selected_modules.add(name) + # reset visibility + for module in modules: + module.enabled = False + # move and enable the selected modules on top + last = 0 + for name, enabled in parsed_directives: + todo = enumerate(modules[last:], start=last) + index = next(index for index, module in todo if name == module.name) + modules[index].enabled = enabled + modules.insert(last, modules.pop(index)) + last += 1 + return True + + def complete(self, text, word): + all_modules = (m.name for m in self.dashboard.modules) + return Dashboard.complete(word, all_modules) + + class StyleCommand(gdb.Command): + '''Access the stylable attributes. + +Without arguments print all the stylable attributes. + +When only the name is specified show the current value. + +With name and value set the stylable attribute. Values are parsed as Python +literals and converted to the proper type. ''' + + def __init__(self, dashboard, prefix, obj, attributes): + self.prefix = prefix + ' -style' + gdb.Command.__init__(self, self.prefix, gdb.COMMAND_USER, gdb.COMPLETE_NONE, True) + self.dashboard = dashboard + self.obj = obj + self.attributes = attributes + self.add_styles() + + def add_styles(self): + this = self + for name, attribute in self.attributes.items(): + # fetch fields + attr_name = attribute.get('name', name) + attr_type = attribute.get('type', str) + attr_check = attribute.get('check', lambda _: True) + attr_default = attribute['default'] + # set the default value (coerced to the type) + value = attr_type(attr_default) + setattr(self.obj, attr_name, value) + # create the command + def invoke(self, arg, from_tty, + name=name, + attr_name=attr_name, + attr_type=attr_type, + attr_check=attr_check): + new_value = Dashboard.parse_arg(arg) + if new_value == '': + # print the current value + value = getattr(this.obj, attr_name) + print('{} = {!r}'.format(name, value)) + else: + try: + # convert and check the new value + parsed = ast.literal_eval(new_value) + value = attr_type(parsed) + if not attr_check(value): + msg = 'Invalid value "{}" for "{}"' + raise Exception(msg.format(new_value, name)) + except Exception as e: + Dashboard.err(e) + else: + # set and redisplay + setattr(this.obj, attr_name, value) + this.dashboard.redisplay(True) + prefix = self.prefix + ' ' + name + doc = attribute.get('doc', 'This style is self-documenting') + Dashboard.create_command(prefix, invoke, doc, False) + + def invoke(self, arg, from_tty): + # an argument here means that the provided attribute is invalid + if arg: + Dashboard.err('Invalid argument "{}"'.format(arg)) + return + # print all the pairs + for name, attribute in self.attributes.items(): + attr_name = attribute.get('name', name) + value = getattr(self.obj, attr_name) + print('{} = {!r}'.format(name, value)) + +# Base module ------------------------------------------------------------------ + + # just a tag + class Module(): + '''Base class for GDB dashboard modules. + + Modules are instantiated once at initialization time and kept during the + whole the GDB session. + + The name of a module is automatically obtained by the class name. + + Optionally, a module may include a description which will appear in the + GDB help system by specifying a Python docstring for the class. By + convention the first line should contain a brief description.''' + + def label(self): + '''Return the module label which will appear in the divider.''' + pass + + def lines(self, term_width, term_height, style_changed): + '''Return a list of strings which will form the module content. + + When a module is temporarily unable to produce its content, it + should return an empty list; its divider will then use the styles + with the "off" qualifier. + + term_width and term_height are the dimension of the terminal where + this module will be displayed. If `style_changed` is `True` then + some attributes have changed since the last time so the + implementation may want to update its status.''' + pass + + def attributes(self): + '''Return the dictionary of available attributes. + + The key is the attribute name and the value is another dictionary + with items: + + - `default` is the initial value for this attribute; + + - `doc` is the optional documentation of this attribute which will + appear in the GDB help system; + + - `name` is the name of the attribute of the Python object (defaults + to the key value); + + - `type` is the Python type of this attribute defaulting to the + `str` type, it is used to coerce the value passed as an argument + to the proper type, or raise an exception; + + - `check` is an optional control callback which accept the coerced + value and returns `True` if the value satisfies the constraint and + `False` otherwise. + + Those attributes can be accessed from the implementation using + instance variables named `name`.''' + return {} + + def commands(self): + '''Return the dictionary of available commands. + + The key is the attribute name and the value is another dictionary + with items: + + - `action` is the callback to be executed which accepts the raw + input string from the GDB prompt, exceptions in these functions + will be shown automatically to the user; + + - `doc` is the documentation of this command which will appear in + the GDB help system; + + - `completion` is the optional completion policy, one of the + `gdb.COMPLETE_*` constants defined in the GDB reference manual + (https://sourceware.org/gdb/onlinedocs/gdb/Commands-In-Python.html).''' + return {} + +# Default modules -------------------------------------------------------------- + +class Source(Dashboard.Module): + '''Show the program source code, if available.''' + + def __init__(self): + self.file_name = None + self.source_lines = [] + self.ts = None + self.highlighted = False + self.offset = 0 + + def label(self): + return 'Source' + + def lines(self, term_width, term_height, style_changed): + # skip if the current thread is not stopped + if not gdb.selected_thread().is_stopped(): + return [] + # try to fetch the current line (skip if no line information) + sal = gdb.selected_frame().find_sal() + current_line = sal.line + if current_line == 0: + return [] + # try to lookup the source file + candidates = [ + sal.symtab.fullname(), + sal.symtab.filename, + # XXX GDB also uses absolute filename but it is harder to implement + # properly and IMHO useless + os.path.basename(sal.symtab.filename)] + for candidate in candidates: + file_name = candidate + ts = None + try: + ts = os.path.getmtime(file_name) + break + except: + # try another or delay error check to open() + continue + # style changed, different file name or file modified in the meanwhile + if style_changed or file_name != self.file_name or ts and ts > self.ts: + try: + # reload the source file if changed + with open(file_name) as source_file: + highlighter = Beautifier(file_name, self.tab_size) + self.highlighted = highlighter.active + source = highlighter.process(source_file.read()) + self.source_lines = source.split('\n') + # store file name and timestamp only if success to have + # persistent errors + self.file_name = file_name + self.ts = ts + except IOError as e: + msg = 'Cannot display "{}"'.format(file_name) + return [ansi(msg, R.style_error)] + # compute the line range + height = self.height or (term_height - 1) + start = current_line - 1 - int(height / 2) + self.offset + end = start + height + # extra at start + extra_start = 0 + if start < 0: + extra_start = min(-start, height) + start = 0 + # extra at end + extra_end = 0 + if end > len(self.source_lines): + extra_end = min(end - len(self.source_lines), height) + end = len(self.source_lines) + else: + end = max(end, 0) + # return the source code listing + breakpoints = fetch_breakpoints() + out = [] + number_format = '{{:>{}}}'.format(len(str(end))) + for number, line in enumerate(self.source_lines[start:end], start + 1): + # properly handle UTF-8 source files + line = to_string(line) + if int(number) == current_line: + # the current line has a different style without ANSI + if R.ansi: + if self.highlighted: + line_format = '{}' + ansi(number_format, R.style_selected_1) + ' {}' + else: + line_format = '{}' + ansi(number_format + ' {}', R.style_selected_1) + else: + # just show a plain text indicator + line_format = '{}' + number_format + '> {}' + else: + line_format = '{}' + ansi(number_format, R.style_low) + ' {}' + # check for breakpoint presence + enabled = None + for breakpoint in breakpoints: + addresses = breakpoint['addresses'] + is_root_enabled = addresses[0]['enabled'] + for address in addresses: + # note, despite the lookup path always use the relative + # (sal.symtab.filename) file name to match source files with + # breakpoints + if address['file_line'] == number and address['file_name'] == sal.symtab.filename: + enabled = enabled or (address['enabled'] and is_root_enabled) + if enabled is None: + breakpoint = ' ' + else: + breakpoint = ansi('!', R.style_critical) if enabled else ansi('-', R.style_low) + out.append(line_format.format(breakpoint, number, line.rstrip('\n'))) + # return the output along with scroll indicators + if len(out) <= height: + extra = [ansi('~', R.style_low)] + return extra_start * extra + out + extra_end * extra + else: + return out + + def commands(self): + return { + 'scroll': { + 'action': self.scroll, + 'doc': 'Scroll by relative steps or reset if invoked without argument.' + } + } + + def attributes(self): + return { + 'height': { + 'doc': '''Height of the module. + +A value of 0 uses the whole height.''', + 'default': 10, + 'type': int, + 'check': check_ge_zero + }, + 'tab-size': { + 'doc': 'Number of spaces used to display the tab character.', + 'default': 4, + 'name': 'tab_size', + 'type': int, + 'check': check_gt_zero + } + } + + def scroll(self, arg): + if arg: + self.offset += int(arg) + else: + self.offset = 0 + +class Assembly(Dashboard.Module): + '''Show the disassembled code surrounding the program counter. + +The instructions constituting the current statement are marked, if available.''' + + def __init__(self): + self.offset = 0 + self.cache_key = None + self.cache_asm = None + + def label(self): + return 'Assembly' + + def lines(self, term_width, term_height, style_changed): + # skip if the current thread is not stopped + if not gdb.selected_thread().is_stopped(): + return [] + # flush the cache if the style is changed + if style_changed: + self.cache_key = None + # prepare the highlighter + try: + flavor = gdb.parameter('disassembly-flavor') + except: + flavor = 'att' # not always defined (see #36) + highlighter = Beautifier(flavor) + # fetch the assembly code + line_info = None + frame = gdb.selected_frame() # PC is here + height = self.height or (term_height - 1) + try: + # disassemble the current block (if function information is + # available then try to obtain the boundaries by looking at the + # superblocks) + block = frame.block() + if frame.function(): + while block and (not block.function or block.function.name != frame.function().name): + block = block.superblock + block = block or frame.block() + asm_start = block.start + asm_end = block.end - 1 + asm = self.fetch_asm(asm_start, asm_end, False, highlighter) + # find the location of the PC + pc_index = next(index for index, instr in enumerate(asm) + if instr['addr'] == frame.pc()) + # compute the instruction range + start = pc_index - int(height / 2) + self.offset + end = start + height + # extra at start + extra_start = 0 + if start < 0: + extra_start = min(-start, height) + start = 0 + # extra at end + extra_end = 0 + if end > len(asm): + extra_end = min(end - len(asm), height) + end = len(asm) + else: + end = max(end, 0) + # fetch actual interval + asm = asm[start:end] + # if there are line information then use it, it may be that + # line_info is not None but line_info.last is None + line_info = gdb.find_pc_line(frame.pc()) + line_info = line_info if line_info.last else None + except (gdb.error, RuntimeError, StopIteration): + # if it is not possible (stripped binary or the PC is not present in + # the output of `disassemble` as per issue #31) start from PC + try: + extra_start = 0 + extra_end = 0 + # allow to scroll down nevertheless + clamped_offset = min(self.offset, 0) + asm = self.fetch_asm(frame.pc(), height - clamped_offset, True, highlighter) + asm = asm[-clamped_offset:] + except gdb.error as e: + msg = '{}'.format(e) + return [ansi(msg, R.style_error)] + # fetch function start if available (e.g., not with @plt) + func_start = None + if self.show_function and frame.function(): + func_start = to_unsigned(frame.function().value()) + # compute the maximum offset size + if asm and func_start: + max_offset = max(len(str(abs(asm[0]['addr'] - func_start))), + len(str(abs(asm[-1]['addr'] - func_start)))) + # return the machine code + breakpoints = fetch_breakpoints() + max_length = max(instr['length'] for instr in asm) if asm else 0 + inferior = gdb.selected_inferior() + out = [] + for index, instr in enumerate(asm): + addr = instr['addr'] + length = instr['length'] + text = instr['asm'] + addr_str = format_address(addr) + if self.show_opcodes: + # fetch and format opcode + region = inferior.read_memory(addr, length) + opcodes = (' '.join('{:02x}'.format(ord(byte)) for byte in region)) + opcodes += (max_length - len(region)) * 3 * ' ' + ' ' + else: + opcodes = '' + # compute the offset if available + if self.show_function: + if func_start: + offset = '{:+d}'.format(addr - func_start) + offset = offset.ljust(max_offset + 1) # sign + func_info = '{}{}'.format(frame.function(), offset) + else: + func_info = '?' + else: + func_info = '' + format_string = '{}{}{}{}{}{}' + indicator = ' ' + text = ' ' + text + if addr == frame.pc(): + if not R.ansi: + indicator = '> ' + addr_str = ansi(addr_str, R.style_selected_1) + indicator = ansi(indicator, R.style_selected_1) + opcodes = ansi(opcodes, R.style_selected_1) + func_info = ansi(func_info, R.style_selected_1) + if not highlighter.active: + text = ansi(text, R.style_selected_1) + elif line_info and line_info.pc <= addr < line_info.last: + if not R.ansi: + indicator = ': ' + addr_str = ansi(addr_str, R.style_selected_2) + indicator = ansi(indicator, R.style_selected_2) + opcodes = ansi(opcodes, R.style_selected_2) + func_info = ansi(func_info, R.style_selected_2) + if not highlighter.active: + text = ansi(text, R.style_selected_2) + else: + addr_str = ansi(addr_str, R.style_low) + func_info = ansi(func_info, R.style_low) + # check for breakpoint presence + enabled = None + for breakpoint in breakpoints: + addresses = breakpoint['addresses'] + is_root_enabled = addresses[0]['enabled'] + for address in addresses: + if address['address'] == addr: + enabled = enabled or (address['enabled'] and is_root_enabled) + if enabled is None: + breakpoint = ' ' + else: + breakpoint = ansi('!', R.style_critical) if enabled else ansi('-', R.style_low) + out.append(format_string.format(breakpoint, addr_str, indicator, opcodes, func_info, text)) + # return the output along with scroll indicators + if len(out) <= height: + extra = [ansi('~', R.style_low)] + return extra_start * extra + out + extra_end * extra + else: + return out + + def commands(self): + return { + 'scroll': { + 'action': self.scroll, + 'doc': 'Scroll by relative steps or reset if invoked without argument.' + } + } + + def attributes(self): + return { + 'height': { + 'doc': '''Height of the module. + +A value of 0 uses the whole height.''', + 'default': 10, + 'type': int, + 'check': check_ge_zero + }, + 'opcodes': { + 'doc': 'Opcodes visibility flag.', + 'default': False, + 'name': 'show_opcodes', + 'type': bool + }, + 'function': { + 'doc': 'Function information visibility flag.', + 'default': True, + 'name': 'show_function', + 'type': bool + } + } + + def scroll(self, arg): + if arg: + self.offset += int(arg) + else: + self.offset = 0 + + def fetch_asm(self, start, end_or_count, relative, highlighter): + # fetch asm from cache or disassemble + if self.cache_key == (start, end_or_count): + asm = self.cache_asm + else: + kwargs = { + 'start_pc': start, + 'count' if relative else 'end_pc': end_or_count + } + asm = gdb.selected_frame().architecture().disassemble(**kwargs) + self.cache_key = (start, end_or_count) + self.cache_asm = asm + # syntax highlight the cached entry + for instr in asm: + instr['asm'] = highlighter.process(instr['asm']) + return asm + +class Variables(Dashboard.Module): + '''Show arguments and locals of the selected frame.''' + + def label(self): + return 'Variables' + + def lines(self, term_width, term_height, style_changed): + return Variables.format_frame( + gdb.selected_frame(), self.show_arguments, self.show_locals, self.compact, self.align, self.sort) + + def attributes(self): + return { + 'arguments': { + 'doc': 'Frame arguments visibility flag.', + 'default': True, + 'name': 'show_arguments', + 'type': bool + }, + 'locals': { + 'doc': 'Frame locals visibility flag.', + 'default': True, + 'name': 'show_locals', + 'type': bool + }, + 'compact': { + 'doc': 'Single-line display flag.', + 'default': True, + 'type': bool + }, + 'align': { + 'doc': 'Align variables in column flag (only if not compact).', + 'default': False, + 'type': bool + }, + 'sort': { + 'doc': 'Sort variables by name.', + 'default': False, + 'type': bool + } + } + + @staticmethod + def format_frame(frame, show_arguments, show_locals, compact, align, sort): + out = [] + # fetch frame arguments and locals + decorator = gdb.FrameDecorator.FrameDecorator(frame) + separator = ansi(', ', R.style_low) + if show_arguments: + def prefix(line): + return Stack.format_line('arg', line) + frame_args = decorator.frame_args() + args_lines = Variables.fetch(frame, frame_args, compact, align, sort) + if args_lines: + if compact: + args_line = separator.join(args_lines) + single_line = prefix(args_line) + out.append(single_line) + else: + out.extend(map(prefix, args_lines)) + if show_locals: + def prefix(line): + return Stack.format_line('loc', line) + frame_locals = decorator.frame_locals() + locals_lines = Variables.fetch(frame, frame_locals, compact, align, sort) + if locals_lines: + if compact: + locals_line = separator.join(locals_lines) + single_line = prefix(locals_line) + out.append(single_line) + else: + out.extend(map(prefix, locals_lines)) + return out + + @staticmethod + def fetch(frame, data, compact, align, sort): + lines = [] + name_width = 0 + if align and not compact: + name_width = max(len(str(elem.sym)) for elem in data) if data else 0 + for elem in data or []: + name = ansi(elem.sym, R.style_high) + ' ' * (name_width - len(str(elem.sym))) + equal = ansi('=', R.style_low) + value = format_value(elem.sym.value(frame), compact) + lines.append('{} {} {}'.format(name, equal, value)) + if sort: + lines.sort() + return lines + +class Stack(Dashboard.Module): + '''Show the current stack trace including the function name and the file location, if available. + +Optionally list the frame arguments and locals too.''' + + def label(self): + return 'Stack' + + def lines(self, term_width, term_height, style_changed): + # skip if the current thread is not stopped + if not gdb.selected_thread().is_stopped(): + return [] + # find the selected frame (i.e., the first to display) + selected_index = 0 + frame = gdb.newest_frame() + while frame: + if frame == gdb.selected_frame(): + break + frame = frame.older() + selected_index += 1 + # format up to "limit" frames + frames = [] + number = selected_index + more = False + while frame: + # the first is the selected one + selected = (len(frames) == 0) + # fetch frame info + style = R.style_selected_1 if selected else R.style_selected_2 + frame_id = ansi(str(number), style) + info = Stack.get_pc_line(frame, style) + frame_lines = [] + frame_lines.append('[{}] {}'.format(frame_id, info)) + # add frame arguments and locals + variables = Variables.format_frame( + frame, self.show_arguments, self.show_locals, self.compact, self.align, self.sort) + frame_lines.extend(variables) + # add frame + frames.append(frame_lines) + # next + frame = frame.older() + number += 1 + # check finished according to the limit + if self.limit and len(frames) == self.limit: + # more frames to show but limited + if frame: + more = True + break + # format the output + lines = [] + for frame_lines in frames: + lines.extend(frame_lines) + # add the placeholder + if more: + lines.append('[{}]'.format(ansi('+', R.style_selected_2))) + return lines + + def attributes(self): + return { + 'limit': { + 'doc': 'Maximum number of displayed frames (0 means no limit).', + 'default': 10, + 'type': int, + 'check': check_ge_zero + }, + 'arguments': { + 'doc': 'Frame arguments visibility flag.', + 'default': False, + 'name': 'show_arguments', + 'type': bool + }, + 'locals': { + 'doc': 'Frame locals visibility flag.', + 'default': False, + 'name': 'show_locals', + 'type': bool + }, + 'compact': { + 'doc': 'Single-line display flag.', + 'default': False, + 'type': bool + }, + 'align': { + 'doc': 'Align variables in column flag (only if not compact).', + 'default': False, + 'type': bool + }, + 'sort': { + 'doc': 'Sort variables by name.', + 'default': False, + 'type': bool + } + } + + @staticmethod + def format_line(prefix, line): + prefix = ansi(prefix, R.style_low) + return '{} {}'.format(prefix, line) + + @staticmethod + def get_pc_line(frame, style): + frame_pc = ansi(format_address(frame.pc()), style) + info = 'from {}'.format(frame_pc) + # if a frame function symbol is available then use it to fetch the + # current function name and address, otherwise fall back relying on the + # frame name + if frame.function(): + name = ansi(frame.function(), style) + func_start = to_unsigned(frame.function().value()) + offset = ansi(str(frame.pc() - func_start), style) + info += ' in {}+{}'.format(name, offset) + elif frame.name(): + name = ansi(frame.name(), style) + info += ' in {}'.format(name) + sal = frame.find_sal() + if sal and sal.symtab: + file_name = ansi(sal.symtab.filename, style) + file_line = ansi(str(sal.line), style) + info += ' at {}:{}'.format(file_name, file_line) + return info + +class History(Dashboard.Module): + '''List the last entries of the value history.''' + + def label(self): + return 'History' + + def lines(self, term_width, term_height, style_changed): + out = [] + # fetch last entries + for i in range(-self.limit + 1, 1): + try: + value = format_value(gdb.history(i)) + value_id = ansi('$${}', R.style_high).format(abs(i)) + equal = ansi('=', R.style_low) + line = '{} {} {}'.format(value_id, equal, value) + out.append(line) + except gdb.error: + continue + return out + + def attributes(self): + return { + 'limit': { + 'doc': 'Maximum number of values to show.', + 'default': 3, + 'type': int, + 'check': check_gt_zero + } + } + +class Memory(Dashboard.Module): + '''Allow to inspect memory regions.''' + + DEFAULT_LENGTH = 16 + + class Region(): + def __init__(self, expression, length, module): + self.expression = expression + self.length = length + self.module = module + self.original = None + self.latest = None + + def reset(self): + self.original = None + self.latest = None + + def format(self, per_line): + # fetch the memory content + try: + address = Memory.parse_as_address(self.expression) + inferior = gdb.selected_inferior() + memory = inferior.read_memory(address, self.length) + # set the original memory snapshot if needed + if not self.original: + self.original = memory + except gdb.error as e: + msg = 'Cannot access {} bytes starting at {}: {}' + msg = msg.format(self.length, self.expression, e) + return [ansi(msg, R.style_error)] + # format the memory content + out = [] + for i in range(0, len(memory), per_line): + region = memory[i:i + per_line] + pad = per_line - len(region) + address_str = format_address(address + i) + # compute changes + hexa = [] + text = [] + for j in range(len(region)): + rel = i + j + byte = memory[rel] + hexa_byte = '{:02x}'.format(ord(byte)) + text_byte = self.module.format_byte(byte) + # differences against the latest have the highest priority + if self.latest and memory[rel] != self.latest[rel]: + hexa_byte = ansi(hexa_byte, R.style_selected_1) + text_byte = ansi(text_byte, R.style_selected_1) + # cumulative changes if enabled + elif self.module.cumulative and memory[rel] != self.original[rel]: + hexa_byte = ansi(hexa_byte, R.style_selected_2) + text_byte = ansi(text_byte, R.style_selected_2) + # format the text differently for clarity + else: + text_byte = ansi(text_byte, R.style_high) + hexa.append(hexa_byte) + text.append(text_byte) + # output the formatted line + hexa_placeholder = ' {}'.format(self.module.placeholder[0] * 2) + text_placeholder = self.module.placeholder[0] + out.append('{} {}{} {}{}'.format( + ansi(address_str, R.style_low), + ' '.join(hexa), ansi(pad * hexa_placeholder, R.style_low), + ''.join(text), ansi(pad * text_placeholder, R.style_low))) + # update the latest memory snapshot + self.latest = memory + return out + + def __init__(self): + self.table = {} + + def label(self): + return 'Memory' + + def lines(self, term_width, term_height, style_changed): + out = [] + for expression, region in self.table.items(): + out.append(divider(term_width, expression)) + out.extend(region.format(self.get_per_line(term_width))) + return out + + def commands(self): + return { + 'watch': { + 'action': self.watch, + 'doc': '''Watch a memory region by expression and length. + +The length defaults to 16 bytes.''', + 'complete': gdb.COMPLETE_EXPRESSION + }, + 'unwatch': { + 'action': self.unwatch, + 'doc': 'Stop watching a memory region by expression.', + 'complete': gdb.COMPLETE_EXPRESSION + }, + 'clear': { + 'action': self.clear, + 'doc': 'Clear all the watched regions.' + } + } + + def attributes(self): + return { + 'cumulative': { + 'doc': 'Highlight changes cumulatively, watch again to reset.', + 'default': False, + 'type': bool + }, + 'full': { + 'doc': 'Take the whole horizontal space.', + 'default': False, + 'type': bool + }, + 'placeholder': { + 'doc': 'Placeholder used for missing items and unprintable characters.', + 'default': '·' + } + } + + def watch(self, arg): + if arg: + expression, _, length_str = arg.partition(' ') + length = Memory.parse_as_address(length_str) if length_str else Memory.DEFAULT_LENGTH + # keep the length when the memory is watched to reset the changes + region = self.table.get(expression) + if region and not length_str: + region.reset() + else: + self.table[expression] = Memory.Region(expression, length, self) + else: + raise Exception('Specify a memory location') + + def unwatch(self, arg): + if arg: + try: + del self.table[arg] + except KeyError: + raise Exception('Memory expression not watched') + else: + raise Exception('Specify a matched memory expression') + + def clear(self, arg): + self.table.clear() + + def format_byte(self, byte): + # `type(byte) is bytes` in Python 3 + if 0x20 < ord(byte) < 0x7f: + return chr(ord(byte)) + else: + return self.placeholder[0] + + def get_per_line(self, term_width): + if self.full: + padding = 3 # two double spaces separator (one is part of below) + elem_size = 4 # HH + 1 space + T + address_length = gdb.parse_and_eval('$pc').type.sizeof * 2 + 2 # 0x + return max(int((term_width - address_length - padding) / elem_size), 1) + else: + return Memory.DEFAULT_LENGTH + + @staticmethod + def parse_as_address(expression): + value = gdb.parse_and_eval(expression) + return to_unsigned(value) + +class Registers(Dashboard.Module): + '''Show the CPU registers and their values.''' + + def __init__(self): + self.table = {} + + def label(self): + return 'Registers' + + def lines(self, term_width, term_height, style_changed): + # skip if the current thread is not stopped + if not gdb.selected_thread().is_stopped(): + return [] + # obtain the registers to display + if style_changed: + self.table = {} + if self.register_list: + register_list = self.register_list.split() + else: + register_list = Registers.fetch_register_list() + # fetch registers status + registers = [] + for name in register_list: + # Exclude registers with a dot '.' or parse_and_eval() will fail + if '.' in name: + continue + value = gdb.parse_and_eval('${}'.format(name)) + string_value = Registers.format_value(value) + changed = self.table and (self.table.get(name, '') != string_value) + self.table[name] = string_value + registers.append((name, string_value, changed)) + # compute lengths considering an extra space between and around the + # entries (hence the +2 and term_width - 1) + max_name = max(len(name) for name, _, _ in registers) + max_value = max(len(value) for _, value, _ in registers) + max_width = max_name + max_value + 2 + columns = min(int((term_width - 1) / max_width) or 1, len(registers)) + rows = int(math.ceil(float(len(registers)) / columns)) + # build the registers matrix + if self.column_major: + matrix = list(registers[i:i + rows] for i in range(0, len(registers), rows)) + else: + matrix = list(registers[i::columns] for i in range(columns)) + # compute the lengths column wise + max_names_column = list(max(len(name) for name, _, _ in column) for column in matrix) + max_values_column = list(max(len(value) for _, value, _ in column) for column in matrix) + line_length = sum(max_names_column) + columns + sum(max_values_column) + extra = term_width - line_length + # compute padding as if there were one more column + base_padding = int(extra / (columns + 1)) + padding_column = [base_padding] * columns + # distribute the remainder among columns giving the precedence to + # internal padding + rest = extra % (columns + 1) + while rest: + padding_column[rest % columns] += 1 + rest -= 1 + # format the registers + out = [''] * rows + for i, column in enumerate(matrix): + max_name = max_names_column[i] + max_value = max_values_column[i] + for j, (name, value, changed) in enumerate(column): + name = ' ' * (max_name - len(name)) + ansi(name, R.style_low) + style = R.style_selected_1 if changed else '' + value = ansi(value, style) + ' ' * (max_value - len(value)) + padding = ' ' * padding_column[i] + item = '{}{} {}'.format(padding, name, value) + out[j] += item + return out + + def attributes(self): + return { + 'column-major': { + 'doc': 'Show registers in columns instead of rows.', + 'default': False, + 'name': 'column_major', + 'type': bool + }, + 'list': { + 'doc': '''String of space-separated register names to display. + +The empty list (default) causes to show all the available registers.''', + 'default': '', + 'name': 'register_list', + } + } + + @staticmethod + def format_value(value): + try: + if value.type.code in [gdb.TYPE_CODE_INT, gdb.TYPE_CODE_PTR]: + int_value = to_unsigned(value, value.type.sizeof) + value_format = '0x{{:0{}x}}'.format(2 * value.type.sizeof) + return value_format.format(int_value) + except (gdb.error, ValueError): + # convert to unsigned but preserve code and flags information + pass + return str(value) + + @staticmethod + def fetch_register_list(*match_groups): + names = [] + for line in run('maintenance print register-groups').split('\n'): + fields = line.split() + if len(fields) != 7: + continue + name, _, _, _, _, _, groups = fields + if not re.match('\w', name): + continue + for group in groups.split(','): + if group in (match_groups or ('general',)): + names.append(name) + break + return names + +class Threads(Dashboard.Module): + '''List the currently available threads.''' + + def label(self): + return 'Threads' + + def lines(self, term_width, term_height, style_changed): + out = [] + selected_thread = gdb.selected_thread() + # do not restore the selected frame if the thread is not stopped + restore_frame = gdb.selected_thread().is_stopped() + if restore_frame: + selected_frame = gdb.selected_frame() + # fetch the thread list + threads = [] + for inferior in gdb.inferiors(): + if self.all_inferiors or inferior == gdb.selected_inferior(): + threads += gdb.Inferior.threads(inferior) + for thread in threads: + # skip running threads if requested + if self.skip_running and thread.is_running(): + continue + is_selected = (thread.ptid == selected_thread.ptid) + style = R.style_selected_1 if is_selected else R.style_selected_2 + if self.all_inferiors: + number = '{}.{}'.format(thread.inferior.num, thread.num) + else: + number = str(thread.num) + number = ansi(number, style) + tid = ansi(str(thread.ptid[1] or thread.ptid[2]), style) + info = '[{}] id {}'.format(number, tid) + if thread.name: + info += ' name {}'.format(ansi(thread.name, style)) + # switch thread to fetch info (unless is running in non-stop mode) + try: + thread.switch() + frame = gdb.newest_frame() + info += ' ' + Stack.get_pc_line(frame, style) + except gdb.error: + info += ' (running)' + out.append(info) + # restore thread and frame + selected_thread.switch() + if restore_frame: + selected_frame.select() + return out + + def attributes(self): + return { + 'skip-running': { + 'doc': 'Skip running threads.', + 'default': False, + 'name': 'skip_running', + 'type': bool + }, + 'all-inferiors': { + 'doc': 'Show threads from all inferiors.', + 'default': False, + 'name': 'all_inferiors', + 'type': bool + }, + } + +class Expressions(Dashboard.Module): + '''Watch user expressions.''' + + def __init__(self): + self.table = set() + + def label(self): + return 'Expressions' + + def lines(self, term_width, term_height, style_changed): + out = [] + label_width = 0 + if self.align: + label_width = max(len(expression) for expression in self.table) if self.table else 0 + default_radix = Expressions.get_default_radix() + for expression in self.table: + label = expression + match = re.match('^/(\d+) +(.+)$', expression) + try: + if match: + radix, expression = match.groups() + run('set output-radix {}'.format(radix)) + value = format_value(gdb.parse_and_eval(expression)) + except gdb.error as e: + value = ansi(e, R.style_error) + finally: + if match: + run('set output-radix {}'.format(default_radix)) + label = ansi(expression, R.style_high) + ' ' * (label_width - len(expression)) + equal = ansi('=', R.style_low) + out.append('{} {} {}'.format(label, equal, value)) + return out + + def commands(self): + return { + 'watch': { + 'action': self.watch, + 'doc': 'Watch an expression using the format `[/] `.', + 'complete': gdb.COMPLETE_EXPRESSION + }, + 'unwatch': { + 'action': self.unwatch, + 'doc': 'Stop watching an expression.', + 'complete': gdb.COMPLETE_EXPRESSION + }, + 'clear': { + 'action': self.clear, + 'doc': 'Clear all the watched expressions.' + } + } + + def attributes(self): + return { + 'align': { + 'doc': 'Align variables in column flag.', + 'default': False, + 'type': bool + } + } + + def watch(self, arg): + if arg: + self.table.add(arg) + else: + raise Exception('Specify an expression') + + def unwatch(self, arg): + if arg: + try: + self.table.remove(arg) + except: + raise Exception('Expression not watched') + else: + raise Exception('Specify an expression') + + def clear(self, arg): + self.table.clear() + + @staticmethod + def get_default_radix(): + try: + return gdb.parameter('output-radix') + except RuntimeError: + # XXX this is a fix for GDB <8.1.x see #161 + message = run('show output-radix') + match = re.match('^Default output radix for printing of values is (\d+)\.$', message) + return match.groups()[0] if match else 10 # fallback + +class Breakpoints(Dashboard.Module): + '''Display the breakpoints list.''' + + NAMES = { + gdb.BP_BREAKPOINT: 'break', + gdb.BP_WATCHPOINT: 'watch', + gdb.BP_HARDWARE_WATCHPOINT: 'write watch', + gdb.BP_READ_WATCHPOINT: 'read watch', + gdb.BP_ACCESS_WATCHPOINT: 'access watch' + } + + def label(self): + return 'Breakpoints' + + def lines(self, term_width, term_height, style_changed): + out = [] + breakpoints = fetch_breakpoints(watchpoints=True, pending=self.show_pending) + for breakpoint in breakpoints: + sub_lines = [] + # format common information + style = R.style_selected_1 if breakpoint['enabled'] else R.style_selected_2 + number = ansi(breakpoint['number'], style) + bp_type = ansi(Breakpoints.NAMES[breakpoint['type']], style) + if breakpoint['temporary']: + bp_type = bp_type + ' {}'.format(ansi('once', style)) + if not R.ansi and breakpoint['enabled']: + bp_type = 'disabled ' + bp_type + line = '[{}] {}'.format(number, bp_type) + if breakpoint['type'] == gdb.BP_BREAKPOINT: + for i, address in enumerate(breakpoint['addresses']): + addr = address['address'] + if i == 0 and addr: + # this is a regular breakpoint + line += ' at {}'.format(ansi(format_address(addr), style)) + # format source information + file_name = address.get('file_name') + file_line = address.get('file_line') + if file_name and file_line: + file_name = ansi(file_name, style) + file_line = ansi(file_line, style) + line += ' in {}:{}'.format(file_name, file_line) + elif i > 0: + # this is a sub breakpoint + sub_style = R.style_selected_1 if address['enabled'] else R.style_selected_2 + sub_number = ansi('{}.{}'.format(breakpoint['number'], i), sub_style) + sub_line = '[{}]'.format(sub_number) + sub_line += ' at {}'.format(ansi(format_address(addr), sub_style)) + # format source information + file_name = address.get('file_name') + file_line = address.get('file_line') + if file_name and file_line: + file_name = ansi(file_name, sub_style) + file_line = ansi(file_line, sub_style) + sub_line += ' in {}:{}'.format(file_name, file_line) + sub_lines += [sub_line] + # format user location + location = breakpoint['location'] + line += ' for {}'.format(ansi(location, style)) + else: + # format user expression + expression = breakpoint['expression'] + line += ' for {}'.format(ansi(expression, style)) + # format condition + condition = breakpoint['condition'] + if condition: + line += ' if {}'.format(ansi(condition, style)) + # format hit count + hit_count = breakpoint['hit_count'] + if hit_count: + word = 'time{}'.format('s' if hit_count > 1 else '') + line += ' hit {} {}'.format(ansi(breakpoint['hit_count'], style), word) + # append the main line and possibly sub breakpoints + out.append(line) + out.extend(sub_lines) + return out + + def attributes(self): + return { + 'pending': { + 'doc': 'Also show pending breakpoints.', + 'default': True, + 'name': 'show_pending', + 'type': bool + } + } + +# XXX traceback line numbers in this Python block must be increased by 1 +end + +# Better GDB defaults ---------------------------------------------------------- + +set history save +set verbose off +set print pretty on +set print array off +set print array-indexes on +set python print-stack full + +# Start ------------------------------------------------------------------------ + +python Dashboard.start() + +# File variables --------------------------------------------------------------- + +# vim: filetype=python +# Local Variables: +# mode: python +# End: diff --git a/git/.gitconfig b/_git/.gitconfig similarity index 97% rename from git/.gitconfig rename to _git/.gitconfig index 8c30844..828f3cb 100644 --- a/git/.gitconfig +++ b/_git/.gitconfig @@ -1,7 +1,7 @@ [user] name = Jinyoung Yoo email = ujinyng@gmail.com - username = ujinyoung + username = ujinyng [core] excludesfile = /Users/ujinyoung/.gitignore_global editor=/usr/local/bin/nvim @@ -9,8 +9,11 @@ precomposeunicode = true quotepath = false [alias] - cm = commit - st = status -s + cm = commit + ad = "!# Select files and Add them.\n\ + git diff-select | xargs git add" + s = status -s + st = status br = branch ck = checkout pl = pull @@ -62,9 +65,7 @@ git checkout $(git bselect)" ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat lg = log --color --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr)%C(bold blue)<%an>%Creset' --abbrev-commit - l=lg - ad = "!# Select files and Add them.\n\ - git diff-select | xargs git add" + l=lg branch-list = "!# List the branches.;\n\ git for-each-ref --sort=-committerdate refs/heads --format='%(HEAD) %(refname:short)|%(committerdate:relative)|%(authorname)' \ | column -ts'|' \ @@ -80,7 +81,7 @@ stash-un-select = "!# Select the stash and Recursively apply \n\ git stash-op apply -R" shun = stash-unapply - shre = stash-un-select + shuns = stash-un-select stash-drop = "!# Select the stash items and Drop them.\n\ for sid in $(git stash-select -m) ; do \ git stash drop $sid; \ @@ -107,13 +108,13 @@ | fzf -m --header \"$(git diff --shortstat)\" --preview \ \"if [[ {1} == '??' ]]; then cat {3}; else git diff {3}; fi \ | head -n $_height \ - | pymentize\" \ + | pygmentize\" \ | awk '{print $3}'; \ }; f" diff-info = "!# Get diff info.\n\ fileA=/tmp/git-s-$(uuidgen); \ fileB=/tmp/git-diff-$(uuidgen); \ - git st | awk '{print $2,$1}' > $fileA; \ + git status -s | awk '{print $2,$1}' > $fileA; \ git diff --numstat | awk '{print $3,$1,$2}' > $fileB; \ join -t' ' -a 1 $fileA $fileB | awk '{print $2, \"(+\"$3 \",-\"$4\")\", $1}' | sed 's/(+,-)/./; s/^\\([^?]\\) *\\./\\1 STAGED/' | column -t -s' ' ; \ rm -f $fileA $fileB; \ diff --git a/git/.gitignore_global b/_git/.gitignore_global similarity index 100% rename from git/.gitignore_global rename to _git/.gitignore_global diff --git a/config/.config/karabiner/assets/complex_modifications/KorEng&Hanja+(rev+1.13d).json b/_karabiner/.config/karabiner/assets/complex_modifications/KorEng&Hanja+(rev+1.13d).json similarity index 100% rename from config/.config/karabiner/assets/complex_modifications/KorEng&Hanja+(rev+1.13d).json rename to _karabiner/.config/karabiner/assets/complex_modifications/KorEng&Hanja+(rev+1.13d).json diff --git a/config/.config/karabiner/assets/complex_modifications/escape_to_eng.json b/_karabiner/.config/karabiner/assets/complex_modifications/escape_to_eng.json similarity index 100% rename from config/.config/karabiner/assets/complex_modifications/escape_to_eng.json rename to _karabiner/.config/karabiner/assets/complex_modifications/escape_to_eng.json diff --git a/config/.config/karabiner/assets/complex_modifications/escape_to_eng2.json b/_karabiner/.config/karabiner/assets/complex_modifications/escape_to_eng2.json similarity index 100% rename from config/.config/karabiner/assets/complex_modifications/escape_to_eng2.json rename to _karabiner/.config/karabiner/assets/complex_modifications/escape_to_eng2.json diff --git a/config/.config/karabiner/automatic_backups/karabiner_20200212.json b/_karabiner/.config/karabiner/automatic_backups/karabiner_20200212.json similarity index 100% rename from config/.config/karabiner/automatic_backups/karabiner_20200212.json rename to _karabiner/.config/karabiner/automatic_backups/karabiner_20200212.json diff --git a/config/.config/karabiner/automatic_backups/karabiner_20200216.json b/_karabiner/.config/karabiner/automatic_backups/karabiner_20200216.json similarity index 100% rename from config/.config/karabiner/automatic_backups/karabiner_20200216.json rename to _karabiner/.config/karabiner/automatic_backups/karabiner_20200216.json diff --git a/config/.config/karabiner/automatic_backups/karabiner_20200217.json b/_karabiner/.config/karabiner/automatic_backups/karabiner_20200217.json similarity index 100% rename from config/.config/karabiner/automatic_backups/karabiner_20200217.json rename to _karabiner/.config/karabiner/automatic_backups/karabiner_20200217.json diff --git a/config/.config/karabiner/automatic_backups/karabiner_20200218.json b/_karabiner/.config/karabiner/automatic_backups/karabiner_20200218.json similarity index 100% rename from config/.config/karabiner/automatic_backups/karabiner_20200218.json rename to _karabiner/.config/karabiner/automatic_backups/karabiner_20200218.json diff --git a/config/.config/karabiner/karabiner.json b/_karabiner/.config/karabiner/karabiner.json similarity index 100% rename from config/.config/karabiner/karabiner.json rename to _karabiner/.config/karabiner/karabiner.json diff --git a/_nodejs/.config/configstore/update-notifier-gatsby-cli.json b/_nodejs/.config/configstore/update-notifier-gatsby-cli.json new file mode 100644 index 0000000..0e0ba5b --- /dev/null +++ b/_nodejs/.config/configstore/update-notifier-gatsby-cli.json @@ -0,0 +1,4 @@ +{ + "optOut": false, + "lastUpdateCheck": 1591096899788 +} \ No newline at end of file diff --git a/_nodejs/.config/configstore/update-notifier-npm.json b/_nodejs/.config/configstore/update-notifier-npm.json new file mode 100644 index 0000000..25b66b5 --- /dev/null +++ b/_nodejs/.config/configstore/update-notifier-npm.json @@ -0,0 +1,4 @@ +{ + "optOut": false, + "lastUpdateCheck": 1591096797215 +} \ No newline at end of file diff --git a/_nodejs/.config/gatsby/config.json b/_nodejs/.config/gatsby/config.json new file mode 100644 index 0000000..4199447 --- /dev/null +++ b/_nodejs/.config/gatsby/config.json @@ -0,0 +1,6 @@ +{ + "telemetry": { + "enabled": true, + "machineId": "3a638ade-137d-48d2-a366-448bc5bb4e1b" + } +} \ No newline at end of file diff --git a/_nodejs/.config/gatsby/events.json b/_nodejs/.config/gatsby/events.json new file mode 100644 index 0000000..e69de29 diff --git a/_nodejs/.config/yarn/global/package.json b/_nodejs/.config/yarn/global/package.json new file mode 100644 index 0000000..afb4c68 --- /dev/null +++ b/_nodejs/.config/yarn/global/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "gatsby": "^2.20.29" + } +} diff --git a/_nodejs/.config/yarn/global/yarn.lock b/_nodejs/.config/yarn/global/yarn.lock new file mode 100644 index 0000000..665aa78 --- /dev/null +++ b/_nodejs/.config/yarn/global/yarn.lock @@ -0,0 +1,11645 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@babel/code-frame@7.5.5": + version "7.5.5" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.5.5.tgz#bc0782f6d69f7b7d49531219699b988f669a8f9d" + integrity sha512-27d4lZoomVyo51VegxI20xZPuSHusqbQag/ztrBC7wegWoQ1nLREPVSKSW8byhTlzTKyNE4ifaTA6lCp7JjpFw== + dependencies: + "@babel/highlight" "^7.0.0" + +"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.8.3.tgz#33e25903d7481181534e12ec0a25f16b6fcf419e" + integrity sha512-a9gxpmdXtZEInkCSHUJDLHZVBgb1QS0jhss4cPP93EW7s+uC5bikET2twEF3KV+7rDblJcmNvTR7VJejqd2C2g== + dependencies: + "@babel/highlight" "^7.8.3" + +"@babel/compat-data@^7.8.6", "@babel/compat-data@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.9.0.tgz#04815556fc90b0c174abd2c0c1bb966faa036a6c" + integrity sha512-zeFQrr+284Ekvd9e7KAX954LkapWiOmQtsfHirhxqfdlX6MEC32iRE+pqUGlYIBchdevaCwvzxWGSy/YBNI85g== + dependencies: + browserslist "^4.9.1" + invariant "^2.2.4" + semver "^5.5.0" + +"@babel/core@7.9.0", "@babel/core@^7.5.5", "@babel/core@^7.8.7": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.9.0.tgz#ac977b538b77e132ff706f3b8a4dbad09c03c56e" + integrity sha512-kWc7L0fw1xwvI0zi8OKVBuxRVefwGOrKSQMvrQ3dW+bIIavBY3/NpXmpjMy7bQnLgwgzWQZ8TlM57YHpHNHz4w== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.0" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helpers" "^7.9.0" + "@babel/parser" "^7.9.0" + "@babel/template" "^7.8.6" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + convert-source-map "^1.7.0" + debug "^4.1.0" + gensync "^1.0.0-beta.1" + json5 "^2.1.2" + lodash "^4.17.13" + resolve "^1.3.2" + semver "^5.4.1" + source-map "^0.5.0" + +"@babel/generator@^7.9.0", "@babel/generator@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.9.5.tgz#27f0917741acc41e6eaaced6d68f96c3fa9afaf9" + integrity sha512-GbNIxVB3ZJe3tLeDm1HSn2AhuD/mVcyLDpgtLXa5tplmWrJdF/elxB56XNqCuD6szyNkDi6wuoKXln3QeBmCHQ== + dependencies: + "@babel/types" "^7.9.5" + jsesc "^2.5.1" + lodash "^4.17.13" + source-map "^0.5.0" + +"@babel/helper-annotate-as-pure@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.8.3.tgz#60bc0bc657f63a0924ff9a4b4a0b24a13cf4deee" + integrity sha512-6o+mJrZBxOoEX77Ezv9zwW7WV8DdluouRKNY/IR5u/YTMuKHgugHOzYWlYvYLpLA9nPsQCAAASpCIbjI9Mv+Uw== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-builder-binary-assignment-operator-visitor@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.8.3.tgz#c84097a427a061ac56a1c30ebf54b7b22d241503" + integrity sha512-5eFOm2SyFPK4Rh3XMMRDjN7lBH0orh3ss0g3rTYZnBQ+r6YPj7lgDyCvPphynHvUrobJmeMignBr6Acw9mAPlw== + dependencies: + "@babel/helper-explode-assignable-expression" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-builder-react-jsx-experimental@^7.9.0": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.9.5.tgz#0b4b3e04e6123f03b404ca4dfd6528fe6bb92fe3" + integrity sha512-HAagjAC93tk748jcXpZ7oYRZH485RCq/+yEv9SIWezHRPv9moZArTnkUNciUNzvwHUABmiWKlcxJvMcu59UwTg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-module-imports" "^7.8.3" + "@babel/types" "^7.9.5" + +"@babel/helper-builder-react-jsx@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.9.0.tgz#16bf391990b57732700a3278d4d9a81231ea8d32" + integrity sha512-weiIo4gaoGgnhff54GQ3P5wsUQmnSwpkvU0r6ZHq6TzoSzKy4JxHEgnxNytaKbov2a9z/CVNyzliuCOUPEX3Jw== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/types" "^7.9.0" + +"@babel/helper-compilation-targets@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.8.7.tgz#dac1eea159c0e4bd46e309b5a1b04a66b53c1dde" + integrity sha512-4mWm8DCK2LugIS+p1yArqvG1Pf162upsIsjE7cNBjez+NjliQpVhj20obE520nao0o14DaTnFJv+Fw5a0JpoUw== + dependencies: + "@babel/compat-data" "^7.8.6" + browserslist "^4.9.1" + invariant "^2.2.4" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/helper-create-class-features-plugin@^7.8.3": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.9.5.tgz#79753d44017806b481017f24b02fd4113c7106ea" + integrity sha512-IipaxGaQmW4TfWoXdqjY0TzoXQ1HRS0kPpEgvjosb3u7Uedcq297xFqDQiCcQtRRwzIMif+N1MLVI8C5a4/PAA== + dependencies: + "@babel/helper-function-name" "^7.9.5" + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-split-export-declaration" "^7.8.3" + +"@babel/helper-create-regexp-features-plugin@^7.8.3", "@babel/helper-create-regexp-features-plugin@^7.8.8": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.8.8.tgz#5d84180b588f560b7864efaeea89243e58312087" + integrity sha512-LYVPdwkrQEiX9+1R29Ld/wTrmQu1SSKYnuOk3g0CkcZMA1p0gsNxJFj/3gBdaJ7Cg0Fnek5z0DsMULePP7Lrqg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + regexpu-core "^4.7.0" + +"@babel/helper-define-map@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-define-map/-/helper-define-map-7.8.3.tgz#a0655cad5451c3760b726eba875f1cd8faa02c15" + integrity sha512-PoeBYtxoZGtct3md6xZOCWPcKuMuk3IHhgxsRRNtnNShebf4C8YonTSblsK4tvDbm+eJAw2HAPOfCr+Q/YRG/g== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/types" "^7.8.3" + lodash "^4.17.13" + +"@babel/helper-explode-assignable-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.8.3.tgz#a728dc5b4e89e30fc2dfc7d04fa28a930653f982" + integrity sha512-N+8eW86/Kj147bO9G2uclsg5pwfs/fqqY5rwgIL7eTBklgXjcOJ3btzS5iM6AitJcftnY7pm2lGsrJVYLGjzIw== + dependencies: + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-function-name@^7.8.3", "@babel/helper-function-name@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.9.5.tgz#2b53820d35275120e1874a82e5aabe1376920a5c" + integrity sha512-JVcQZeXM59Cd1qanDUxv9fgJpt3NeKUaqBqUEvfmQ+BCOKq2xUgaWZW2hr0dkbyJgezYuplEoh5knmrnS68efw== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/types" "^7.9.5" + +"@babel/helper-get-function-arity@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.8.3.tgz#b894b947bd004381ce63ea1db9f08547e920abd5" + integrity sha512-FVDR+Gd9iLjUMY1fzE2SR0IuaJToR4RkCDARVfsBBPSP53GEqSFjD8gNyxg246VUyc/ALRxFaAK8rVG7UT7xRA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-hoist-variables@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.8.3.tgz#1dbe9b6b55d78c9b4183fc8cdc6e30ceb83b7134" + integrity sha512-ky1JLOjcDUtSc+xkt0xhYff7Z6ILTAHKmZLHPxAhOP0Nd77O+3nCsd6uSVYur6nJnCI029CrNbYlc0LoPfAPQg== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-member-expression-to-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.8.3.tgz#659b710498ea6c1d9907e0c73f206eee7dadc24c" + integrity sha512-fO4Egq88utkQFjbPrSHGmGLFqmrshs11d46WI+WZDESt7Wu7wN2G2Iu+NMMZJFDOVRHAMIkB5SNh30NtwCA7RA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-imports@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.8.3.tgz#7fe39589b39c016331b6b8c3f441e8f0b1419498" + integrity sha512-R0Bx3jippsbAEtzkpZ/6FIiuzOURPcMjHp+Z6xPe6DtApDJx+w7UYyOLanZqO8+wKR9G10s/FmHXvxaMd9s6Kg== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-module-transforms@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.9.0.tgz#43b34dfe15961918707d247327431388e9fe96e5" + integrity sha512-0FvKyu0gpPfIQ8EkxlrAydOWROdHpBmiCiRwLkUiBGhCUPRRbVD2/tm3sFr/c/GWFrQ/ffutGUAnx7V0FzT2wA== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-simple-access" "^7.8.3" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/template" "^7.8.6" + "@babel/types" "^7.9.0" + lodash "^4.17.13" + +"@babel/helper-optimise-call-expression@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.8.3.tgz#7ed071813d09c75298ef4f208956006b6111ecb9" + integrity sha512-Kag20n86cbO2AvHca6EJsvqAd82gc6VMGule4HwebwMlwkpXuVqrNRj6CkCV2sKxgi9MyAUnZVnZ6lJ1/vKhHQ== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-plugin-utils@7.8.3", "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.8.3.tgz#9ea293be19babc0f52ff8ca88b34c3611b208670" + integrity sha512-j+fq49Xds2smCUNYmEHF9kGNkhbet6yVIBp4e6oeQpH1RUs/Ir06xUKzDjDkGcaaokPiTNs2JBWHjaE4csUkZQ== + +"@babel/helper-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-regex/-/helper-regex-7.8.3.tgz#139772607d51b93f23effe72105b319d2a4c6965" + integrity sha512-BWt0QtYv/cg/NecOAZMdcn/waj/5P26DR4mVLXfFtDokSR6fyuG0Pj+e2FqtSME+MqED1khnSMulkmGl8qWiUQ== + dependencies: + lodash "^4.17.13" + +"@babel/helper-remap-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.8.3.tgz#273c600d8b9bf5006142c1e35887d555c12edd86" + integrity sha512-kgwDmw4fCg7AVgS4DukQR/roGp+jP+XluJE5hsRZwxCYGg+Rv9wSGErDWhlI90FODdYfd4xG4AQRiMDjjN0GzA== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-wrap-function" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-replace-supers@^7.8.3", "@babel/helper-replace-supers@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.8.6.tgz#5ada744fd5ad73203bf1d67459a27dcba67effc8" + integrity sha512-PeMArdA4Sv/Wf4zXwBKPqVj7n9UF/xg6slNRtZW84FM7JpE1CbG8B612FyM4cxrf4fMAMGO0kR7voy1ForHHFA== + dependencies: + "@babel/helper-member-expression-to-functions" "^7.8.3" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/traverse" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/helper-simple-access@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.8.3.tgz#7f8109928b4dab4654076986af575231deb639ae" + integrity sha512-VNGUDjx5cCWg4vvCTR8qQ7YJYZ+HBjxOgXEl7ounz+4Sn7+LMD3CFrCTEU6/qXKbA2nKg21CwhhBzO0RpRbdCw== + dependencies: + "@babel/template" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helper-split-export-declaration@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.8.3.tgz#31a9f30070f91368a7182cf05f831781065fc7a9" + integrity sha512-3x3yOeyBhW851hroze7ElzdkeRXQYQbFIb7gLK1WQYsw2GWDay5gAJNw1sWJ0VFP6z5J1whqeXH/WCdCjZv6dA== + dependencies: + "@babel/types" "^7.8.3" + +"@babel/helper-validator-identifier@^7.9.0", "@babel/helper-validator-identifier@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.9.5.tgz#90977a8e6fbf6b431a7dc31752eee233bf052d80" + integrity sha512-/8arLKUFq882w4tWGj9JYzRpAlZgiWUJ+dtteNTDqrRBz9Iguck9Rn3ykuBDoUwh2TO4tSAJlrxDUOXWklJe4g== + +"@babel/helper-wrap-function@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.8.3.tgz#9dbdb2bb55ef14aaa01fe8c99b629bd5352d8610" + integrity sha512-LACJrbUET9cQDzb6kG7EeD7+7doC3JNvUgTEQOx2qaO1fKlzE/Bf05qs9w1oXQMmXlPO65lC3Tq9S6gZpTErEQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.8.3" + "@babel/types" "^7.8.3" + +"@babel/helpers@^7.9.0": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.9.2.tgz#b42a81a811f1e7313b88cba8adc66b3d9ae6c09f" + integrity sha512-JwLvzlXVPjO8eU9c/wF9/zOIN7X6h8DYf7mG4CiFRZRvZNKEF5dQ3H3V+ASkHoIB3mWhatgl5ONhyqHRI6MppA== + dependencies: + "@babel/template" "^7.8.3" + "@babel/traverse" "^7.9.0" + "@babel/types" "^7.9.0" + +"@babel/highlight@^7.0.0", "@babel/highlight@^7.8.3": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.9.0.tgz#4e9b45ccb82b79607271b2979ad82c7b68163079" + integrity sha512-lJZPilxX7Op3Nv/2cvFdnlepPXDxi29wxteT57Q965oc5R9v86ztx0jfxVrTcBk8C2kcPkkDa2Z4T3ZsPPVWsQ== + dependencies: + "@babel/helper-validator-identifier" "^7.9.0" + chalk "^2.0.0" + js-tokens "^4.0.0" + +"@babel/parser@^7.7.0", "@babel/parser@^7.8.6", "@babel/parser@^7.8.8", "@babel/parser@^7.9.0": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.9.4.tgz#68a35e6b0319bbc014465be43828300113f2f2e8" + integrity sha512-bC49otXX6N0/VYhgOMh4gnP26E9xnDZK3TmbNpxYzzz9BQLBosQwfyOe9/cXUU3txYhTzLCbcqd5c8y/OmCjHA== + +"@babel/plugin-proposal-async-generator-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.8.3.tgz#bad329c670b382589721b27540c7d288601c6e6f" + integrity sha512-NZ9zLv848JsV3hs8ryEh7Uaz/0KsmPLqv0+PdkDJL1cJy0K4kOCFa8zc1E3mp+RHPQcpdfb/6GovEsW4VDrOMw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + +"@babel/plugin-proposal-class-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.8.3.tgz#5e06654af5cd04b608915aada9b2a6788004464e" + integrity sha512-EqFhbo7IosdgPgZggHaNObkmO1kNUe3slaKu54d5OWvy+p9QIKOzK1GAEpAIsZtWVtPXUHSMcT4smvDrCfY4AA== + dependencies: + "@babel/helper-create-class-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-proposal-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.8.3.tgz#38c4fe555744826e97e2ae930b0fb4cc07e66054" + integrity sha512-NyaBbyLFXFLT9FP+zk0kYlUlA8XtCUbehs67F0nnEg7KICgMc2mNkIeu9TYhKzyXMkrapZFwAhXLdnt4IYHy1w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + +"@babel/plugin-proposal-json-strings@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.8.3.tgz#da5216b238a98b58a1e05d6852104b10f9a70d6b" + integrity sha512-KGhQNZ3TVCQG/MjRbAUwuH+14y9q0tpxs1nWWs3pbSleRdDro9SAMMDyye8HhY1gqZ7/NqIc8SKhya0wRDgP1Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-json-strings" "^7.8.0" + +"@babel/plugin-proposal-nullish-coalescing-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.8.3.tgz#e4572253fdeed65cddeecfdab3f928afeb2fd5d2" + integrity sha512-TS9MlfzXpXKt6YYomudb/KU7nQI6/xnapG6in1uZxoxDghuSMZsPb6D2fyUwNYSAp4l1iR7QtFOjkqcRYcUsfw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + +"@babel/plugin-proposal-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.8.3.tgz#5d6769409699ec9b3b68684cd8116cedff93bad8" + integrity sha512-jWioO1s6R/R+wEHizfaScNsAx+xKgwTLNXSh7tTC4Usj3ItsPEhYkEpU4h+lpnBwq7NBVOJXfO6cRFYcX69JUQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.8.3" + +"@babel/plugin-proposal-object-rest-spread@7.9.5", "@babel/plugin-proposal-object-rest-spread@^7.5.5", "@babel/plugin-proposal-object-rest-spread@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.9.5.tgz#3fd65911306d8746014ec0d0cf78f0e39a149116" + integrity sha512-VP2oXvAf7KCYTthbUHwBlewbl1Iq059f6seJGsxMizaCdgHIeczOr7FBqELhSqfkIl04Fi8okzWzl63UKbQmmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-transform-parameters" "^7.9.5" + +"@babel/plugin-proposal-optional-catch-binding@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.8.3.tgz#9dee96ab1650eed88646ae9734ca167ac4a9c5c9" + integrity sha512-0gkX7J7E+AtAw9fcwlVQj8peP61qhdg/89D5swOkjYbkboA2CVckn3kiyum1DE0wskGb7KJJxBdyEBApDLLVdw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + +"@babel/plugin-proposal-optional-chaining@^7.8.3", "@babel/plugin-proposal-optional-chaining@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.9.0.tgz#31db16b154c39d6b8a645292472b98394c292a58" + integrity sha512-NDn5tu3tcv4W30jNhmc2hyD5c56G6cXx4TesJubhxrJeCvuuMpttxr0OnNCqbZGhFjLrg+NIhxxC+BK5F6yS3w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + +"@babel/plugin-proposal-unicode-property-regex@^7.4.4", "@babel/plugin-proposal-unicode-property-regex@^7.8.3": + version "7.8.8" + resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.8.8.tgz#ee3a95e90cdc04fe8cd92ec3279fa017d68a0d1d" + integrity sha512-EVhjVsMpbhLw9ZfHWSx2iy13Q8Z/eg8e8ccVWt23sWQK5l1UdkoLJPN5w69UA4uITGBnEZD2JOe4QOHycYKv8A== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.8" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-async-generators@^7.8.0": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" + integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-dynamic-import@^7.8.0", "@babel/plugin-syntax-dynamic-import@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" + integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-json-strings@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" + integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-jsx@7.8.3", "@babel/plugin-syntax-jsx@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.8.3.tgz#521b06c83c40480f1e58b4fd33b92eceb1d6ea94" + integrity sha512-WxdW9xyLgBdefoo0Ynn3MRSkhe5tFVxxKNVdnZSh318WrG2e2jH+E9wd/++JsqcLJZPfz87njQJ8j2Upjm0M0A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" + integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-numeric-separator@^7.8.0", "@babel/plugin-syntax-numeric-separator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.8.3.tgz#0e3fb63e09bea1b11e96467271c8308007e7c41f" + integrity sha512-H7dCMAdN83PcCmqmkHB5dtp+Xa9a6LKSvA2hiFBC/5alSHxM5VgWZXFqDi0YFe8XNGT6iCa+z4V4zSt/PdZ7Dw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-syntax-object-rest-spread@7.8.3", "@babel/plugin-syntax-object-rest-spread@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" + integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-catch-binding@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" + integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-optional-chaining@^7.8.0": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" + integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.0" + +"@babel/plugin-syntax-top-level-await@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.8.3.tgz#3acdece695e6b13aaf57fc291d1a800950c71391" + integrity sha512-kwj1j9lL/6Wd0hROD3b/OZZ7MSrZLqqn9RAZ5+cYYsflQ9HZBIKCUkr3+uL1MEJ1NePiUbf98jjiMQSv0NMR9g== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-arrow-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.8.3.tgz#82776c2ed0cd9e1a49956daeb896024c9473b8b6" + integrity sha512-0MRF+KC8EqH4dbuITCWwPSzsyO3HIWWlm30v8BbbpOrS1B++isGxPnnuq/IZvOX5J2D/p7DQalQm+/2PnlKGxg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-async-to-generator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.8.3.tgz#4308fad0d9409d71eafb9b1a6ee35f9d64b64086" + integrity sha512-imt9tFLD9ogt56Dd5CI/6XgpukMwd/fLGSrix2httihVe7LOGVPhyhMh1BU5kDM7iHD08i8uUtmV2sWaBFlHVQ== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-remap-async-to-generator" "^7.8.3" + +"@babel/plugin-transform-block-scoped-functions@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.8.3.tgz#437eec5b799b5852072084b3ae5ef66e8349e8a3" + integrity sha512-vo4F2OewqjbB1+yaJ7k2EJFHlTP3jR634Z9Cj9itpqNjuLXvhlVxgnjsHsdRgASR8xYDrx6onw4vW5H6We0Jmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-block-scoping@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.8.3.tgz#97d35dab66857a437c166358b91d09050c868f3a" + integrity sha512-pGnYfm7RNRgYRi7bids5bHluENHqJhrV4bCZRwc5GamaWIIs07N4rZECcmJL6ZClwjDz1GbdMZFtPs27hTB06w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + lodash "^4.17.13" + +"@babel/plugin-transform-classes@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.9.5.tgz#800597ddb8aefc2c293ed27459c1fcc935a26c2c" + integrity sha512-x2kZoIuLC//O5iA7PEvecB105o7TLzZo8ofBVhP79N+DO3jaX+KYfww9TQcfBEZD0nikNyYcGB1IKtRq36rdmg== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-define-map" "^7.8.3" + "@babel/helper-function-name" "^7.9.5" + "@babel/helper-optimise-call-expression" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.6" + "@babel/helper-split-export-declaration" "^7.8.3" + globals "^11.1.0" + +"@babel/plugin-transform-computed-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.8.3.tgz#96d0d28b7f7ce4eb5b120bb2e0e943343c86f81b" + integrity sha512-O5hiIpSyOGdrQZRQ2ccwtTVkgUDBBiCuK//4RJ6UfePllUTCENOzKxfh6ulckXKc0DixTFLCfb2HVkNA7aDpzA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-destructuring@^7.5.0", "@babel/plugin-transform-destructuring@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.9.5.tgz#72c97cf5f38604aea3abf3b935b0e17b1db76a50" + integrity sha512-j3OEsGel8nHL/iusv/mRd5fYZ3DrOxWC82x0ogmdN/vHfAP4MYw+AFKYanzWlktNwikKvlzUV//afBW5FTp17Q== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-dotall-regex@^7.4.4", "@babel/plugin-transform-dotall-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.8.3.tgz#c3c6ec5ee6125c6993c5cbca20dc8621a9ea7a6e" + integrity sha512-kLs1j9Nn4MQoBYdRXH6AeaXMbEJFaFu/v1nQkvib6QzTj8MZI5OQzqmD83/2jEM1z0DLilra5aWO5YpyC0ALIw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-duplicate-keys@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.8.3.tgz#8d12df309aa537f272899c565ea1768e286e21f1" + integrity sha512-s8dHiBUbcbSgipS4SMFuWGqCvyge5V2ZeAWzR6INTVC3Ltjig/Vw1G2Gztv0vU/hRG9X8IvKvYdoksnUfgXOEQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-exponentiation-operator@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.8.3.tgz#581a6d7f56970e06bf51560cd64f5e947b70d7b7" + integrity sha512-zwIpuIymb3ACcInbksHaNcR12S++0MDLKkiqXHl3AzpgdKlFNhog+z/K0+TGW+b0w5pgTq4H6IwV/WhxbGYSjQ== + dependencies: + "@babel/helper-builder-binary-assignment-operator-visitor" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-for-of@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.9.0.tgz#0f260e27d3e29cd1bb3128da5e76c761aa6c108e" + integrity sha512-lTAnWOpMwOXpyDx06N+ywmF3jNbafZEqZ96CGYabxHrxNX8l5ny7dt4bK/rGwAh9utyP2b2Hv7PlZh1AAS54FQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-function-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.8.3.tgz#279373cb27322aaad67c2683e776dfc47196ed8b" + integrity sha512-rO/OnDS78Eifbjn5Py9v8y0aR+aSYhDhqAwVfsTl0ERuMZyr05L1aFSCJnbv2mmsLkit/4ReeQ9N2BgLnOcPCQ== + dependencies: + "@babel/helper-function-name" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.8.3.tgz#aef239823d91994ec7b68e55193525d76dbd5dc1" + integrity sha512-3Tqf8JJ/qB7TeldGl+TT55+uQei9JfYaregDcEAyBZ7akutriFrt6C/wLYIer6OYhleVQvH/ntEhjE/xMmy10A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-member-expression-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.8.3.tgz#963fed4b620ac7cbf6029c755424029fa3a40410" + integrity sha512-3Wk2EXhnw+rP+IDkK6BdtPKsUE5IeZ6QOGrPYvw52NwBStw9V1ZVzxgK6fSKSxqUvH9eQPR3tm3cOq79HlsKYA== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-modules-amd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.9.0.tgz#19755ee721912cf5bb04c07d50280af3484efef4" + integrity sha512-vZgDDF003B14O8zJy0XXLnPH4sg+9X5hFBBGN1V+B2rgrB+J2xIypSN6Rk9imB2hSTHQi5OHLrFWsZab1GMk+Q== + dependencies: + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-commonjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.9.0.tgz#e3e72f4cbc9b4a260e30be0ea59bdf5a39748940" + integrity sha512-qzlCrLnKqio4SlgJ6FMMLBe4bySNis8DFn1VkGmOcxG9gqEyPIOzeQrA//u0HAKrWpJlpZbZMPB1n/OPa4+n8g== + dependencies: + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-simple-access" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-systemjs@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.9.0.tgz#e9fd46a296fc91e009b64e07ddaa86d6f0edeb90" + integrity sha512-FsiAv/nao/ud2ZWy4wFacoLOm5uxl0ExSQ7ErvP7jpoihLR6Cq90ilOFyX9UXct3rbtKsAiZ9kFt5XGfPe/5SQ== + dependencies: + "@babel/helper-hoist-variables" "^7.8.3" + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + babel-plugin-dynamic-import-node "^2.3.0" + +"@babel/plugin-transform-modules-umd@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.9.0.tgz#e909acae276fec280f9b821a5f38e1f08b480697" + integrity sha512-uTWkXkIVtg/JGRSIABdBoMsoIeoHQHPTL0Y2E7xf5Oj7sLqwVsNXOkNk0VJc7vF0IMBsPeikHxFjGe+qmwPtTQ== + dependencies: + "@babel/helper-module-transforms" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-named-capturing-groups-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.8.3.tgz#a2a72bffa202ac0e2d0506afd0939c5ecbc48c6c" + integrity sha512-f+tF/8UVPU86TrCb06JoPWIdDpTNSGGcAtaD9mLP0aYGA0OS0j7j7DHJR0GTFrUZPUU6loZhbsVZgTh0N+Qdnw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + +"@babel/plugin-transform-new-target@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.8.3.tgz#60cc2ae66d85c95ab540eb34babb6434d4c70c43" + integrity sha512-QuSGysibQpyxexRyui2vca+Cmbljo8bcRckgzYV4kRIsHpVeyeC3JDO63pY+xFZ6bWOBn7pfKZTqV4o/ix9sFw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-object-super@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.8.3.tgz#ebb6a1e7a86ffa96858bd6ac0102d65944261725" + integrity sha512-57FXk+gItG/GejofIyLIgBKTas4+pEU47IXKDBWFTxdPd7F80H8zybyAY7UoblVfBhBGs2EKM+bJUu2+iUYPDQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-replace-supers" "^7.8.3" + +"@babel/plugin-transform-parameters@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.9.5.tgz#173b265746f5e15b2afe527eeda65b73623a0795" + integrity sha512-0+1FhHnMfj6lIIhVvS4KGQJeuhe1GI//h5uptK4PvLt+BGBxsoUJbd3/IW002yk//6sZPlFgsG1hY6OHLcy6kA== + dependencies: + "@babel/helper-get-function-arity" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-property-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.8.3.tgz#33194300d8539c1ed28c62ad5087ba3807b98263" + integrity sha512-uGiiXAZMqEoQhRWMK17VospMZh5sXWg+dlh2soffpkAl96KAm+WZuJfa6lcELotSRmooLqg0MWdH6UUq85nmmg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-react-display-name@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.8.3.tgz#70ded987c91609f78353dd76d2fb2a0bb991e8e5" + integrity sha512-3Jy/PCw8Fe6uBKtEgz3M82ljt+lTg+xJaM4og+eyu83qLT87ZUSckn0wy7r31jflURWLO83TW6Ylf7lyXj3m5A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-react-jsx-development@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.9.0.tgz#3c2a130727caf00c2a293f0aed24520825dbf754" + integrity sha512-tK8hWKrQncVvrhvtOiPpKrQjfNX3DtkNLSX4ObuGcpS9p0QrGetKmlySIGR07y48Zft8WVgPakqd/bk46JrMSw== + dependencies: + "@babel/helper-builder-react-jsx-experimental" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-react-jsx-self@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-self/-/plugin-transform-react-jsx-self-7.9.0.tgz#f4f26a325820205239bb915bad8e06fcadabb49b" + integrity sha512-K2ObbWPKT7KUTAoyjCsFilOkEgMvFG+y0FqOl6Lezd0/13kMkkjHskVsZvblRPj1PHA44PrToaZANrryppzTvQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-react-jsx-source@^7.9.0": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-source/-/plugin-transform-react-jsx-source-7.9.0.tgz#89ef93025240dd5d17d3122294a093e5e0183de0" + integrity sha512-K6m3LlSnTSfRkM6FcRk8saNEeaeyG5k7AVkBU2bZK3+1zdkSED3qNdsWrUgQBeTVD2Tp3VMmerxVO2yM5iITmw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-react-jsx@^7.3.0", "@babel/plugin-transform-react-jsx@^7.9.4": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.9.4.tgz#86f576c8540bd06d0e95e0b61ea76d55f6cbd03f" + integrity sha512-Mjqf3pZBNLt854CK0C/kRuXAnE6H/bo7xYojP+WGtX8glDGSibcwnsWwhwoSuRg0+EBnxPC1ouVnuetUIlPSAw== + dependencies: + "@babel/helper-builder-react-jsx" "^7.9.0" + "@babel/helper-builder-react-jsx-experimental" "^7.9.0" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-syntax-jsx" "^7.8.3" + +"@babel/plugin-transform-regenerator@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.8.7.tgz#5e46a0dca2bee1ad8285eb0527e6abc9c37672f8" + integrity sha512-TIg+gAl4Z0a3WmD3mbYSk+J9ZUH6n/Yc57rtKRnlA/7rcCvpekHXe0CMZHP1gYp7/KLe9GHTuIba0vXmls6drA== + dependencies: + regenerator-transform "^0.14.2" + +"@babel/plugin-transform-reserved-words@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.8.3.tgz#9a0635ac4e665d29b162837dd3cc50745dfdf1f5" + integrity sha512-mwMxcycN3omKFDjDQUl+8zyMsBfjRFr0Zn/64I41pmjv4NJuqcYlEtezwYtw9TFd9WR1vN5kiM+O0gMZzO6L0A== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-runtime@^7.8.3": + version "7.9.0" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.9.0.tgz#45468c0ae74cc13204e1d3b1f4ce6ee83258af0b" + integrity sha512-pUu9VSf3kI1OqbWINQ7MaugnitRss1z533436waNXp+0N3ur3zfut37sXiQMxkuCF4VUjwZucen/quskCh7NHw== + dependencies: + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + resolve "^1.8.1" + semver "^5.5.1" + +"@babel/plugin-transform-shorthand-properties@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.8.3.tgz#28545216e023a832d4d3a1185ed492bcfeac08c8" + integrity sha512-I9DI6Odg0JJwxCHzbzW08ggMdCezoWcuQRz3ptdudgwaHxTjxw5HgdFJmZIkIMlRymL6YiZcped4TTCB0JcC8w== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-spread@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.8.3.tgz#9c8ffe8170fdfb88b114ecb920b82fb6e95fe5e8" + integrity sha512-CkuTU9mbmAoFOI1tklFWYYbzX5qCIZVXPVy0jpXgGwkplCndQAa58s2jr66fTeQnA64bDox0HL4U56CFYoyC7g== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-sticky-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.8.3.tgz#be7a1290f81dae767475452199e1f76d6175b100" + integrity sha512-9Spq0vGCD5Bb4Z/ZXXSK5wbbLFMG085qd2vhL1JYu1WcQ5bXqZBAYRzU1d+p79GcHs2szYv5pVQCX13QgldaWw== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/helper-regex" "^7.8.3" + +"@babel/plugin-transform-template-literals@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.8.3.tgz#7bfa4732b455ea6a43130adc0ba767ec0e402a80" + integrity sha512-820QBtykIQOLFT8NZOcTRJ1UNuztIELe4p9DCgvj4NK+PwluSJ49we7s9FB1HIGNIYT7wFUJ0ar2QpCDj0escQ== + dependencies: + "@babel/helper-annotate-as-pure" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-typeof-symbol@^7.8.4": + version "7.8.4" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.8.4.tgz#ede4062315ce0aaf8a657a920858f1a2f35fc412" + integrity sha512-2QKyfjGdvuNfHsb7qnBBlKclbD4CfshH2KvDabiijLMGXPHJXGxtDzwIF7bQP+T0ysw8fYTtxPafgfs/c1Lrqg== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/plugin-transform-unicode-regex@^7.8.3": + version "7.8.3" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.8.3.tgz#0cef36e3ba73e5c57273effb182f46b91a1ecaad" + integrity sha512-+ufgJjYdmWfSQ+6NS9VGUR2ns8cjJjYbrbi11mZBTaWm+Fui/ncTLFF28Ei1okavY+xkojGr1eJxNsWYeA5aZw== + dependencies: + "@babel/helper-create-regexp-features-plugin" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + +"@babel/polyfill@^7.8.7": + version "7.8.7" + resolved "https://registry.yarnpkg.com/@babel/polyfill/-/polyfill-7.8.7.tgz#151ec24c7135481336168c3bd8b8bf0cf91c032f" + integrity sha512-LeSfP9bNZH2UOZgcGcZ0PIHUt1ZuHub1L3CVmEyqLxCeDLm4C5Gi8jRH8ZX2PNpDhQCo0z6y/+DIs2JlliXW8w== + dependencies: + core-js "^2.6.5" + regenerator-runtime "^0.13.4" + +"@babel/preset-env@^7.8.7": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.9.5.tgz#8ddc76039bc45b774b19e2fc548f6807d8a8919f" + integrity sha512-eWGYeADTlPJH+wq1F0wNfPbVS1w1wtmMJiYk55Td5Yu28AsdR9AsC97sZ0Qq8fHqQuslVSIYSGJMcblr345GfQ== + dependencies: + "@babel/compat-data" "^7.9.0" + "@babel/helper-compilation-targets" "^7.8.7" + "@babel/helper-module-imports" "^7.8.3" + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-proposal-async-generator-functions" "^7.8.3" + "@babel/plugin-proposal-dynamic-import" "^7.8.3" + "@babel/plugin-proposal-json-strings" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-numeric-separator" "^7.8.3" + "@babel/plugin-proposal-object-rest-spread" "^7.9.5" + "@babel/plugin-proposal-optional-catch-binding" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.9.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.8.3" + "@babel/plugin-syntax-async-generators" "^7.8.0" + "@babel/plugin-syntax-dynamic-import" "^7.8.0" + "@babel/plugin-syntax-json-strings" "^7.8.0" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.0" + "@babel/plugin-syntax-numeric-separator" "^7.8.0" + "@babel/plugin-syntax-object-rest-spread" "^7.8.0" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.0" + "@babel/plugin-syntax-optional-chaining" "^7.8.0" + "@babel/plugin-syntax-top-level-await" "^7.8.3" + "@babel/plugin-transform-arrow-functions" "^7.8.3" + "@babel/plugin-transform-async-to-generator" "^7.8.3" + "@babel/plugin-transform-block-scoped-functions" "^7.8.3" + "@babel/plugin-transform-block-scoping" "^7.8.3" + "@babel/plugin-transform-classes" "^7.9.5" + "@babel/plugin-transform-computed-properties" "^7.8.3" + "@babel/plugin-transform-destructuring" "^7.9.5" + "@babel/plugin-transform-dotall-regex" "^7.8.3" + "@babel/plugin-transform-duplicate-keys" "^7.8.3" + "@babel/plugin-transform-exponentiation-operator" "^7.8.3" + "@babel/plugin-transform-for-of" "^7.9.0" + "@babel/plugin-transform-function-name" "^7.8.3" + "@babel/plugin-transform-literals" "^7.8.3" + "@babel/plugin-transform-member-expression-literals" "^7.8.3" + "@babel/plugin-transform-modules-amd" "^7.9.0" + "@babel/plugin-transform-modules-commonjs" "^7.9.0" + "@babel/plugin-transform-modules-systemjs" "^7.9.0" + "@babel/plugin-transform-modules-umd" "^7.9.0" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.8.3" + "@babel/plugin-transform-new-target" "^7.8.3" + "@babel/plugin-transform-object-super" "^7.8.3" + "@babel/plugin-transform-parameters" "^7.9.5" + "@babel/plugin-transform-property-literals" "^7.8.3" + "@babel/plugin-transform-regenerator" "^7.8.7" + "@babel/plugin-transform-reserved-words" "^7.8.3" + "@babel/plugin-transform-shorthand-properties" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/plugin-transform-sticky-regex" "^7.8.3" + "@babel/plugin-transform-template-literals" "^7.8.3" + "@babel/plugin-transform-typeof-symbol" "^7.8.4" + "@babel/plugin-transform-unicode-regex" "^7.8.3" + "@babel/preset-modules" "^0.1.3" + "@babel/types" "^7.9.5" + browserslist "^4.9.1" + core-js-compat "^3.6.2" + invariant "^2.2.2" + levenary "^1.1.1" + semver "^5.5.0" + +"@babel/preset-modules@^0.1.3": + version "0.1.3" + resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.3.tgz#13242b53b5ef8c883c3cf7dddd55b36ce80fbc72" + integrity sha512-Ra3JXOHBq2xd56xSF7lMKXdjBn3T772Y1Wet3yWnkDly9zHvJki029tAFzvAAK5cf4YV3yoxuP61crYRol6SVg== + dependencies: + "@babel/helper-plugin-utils" "^7.0.0" + "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" + "@babel/plugin-transform-dotall-regex" "^7.4.4" + "@babel/types" "^7.4.4" + esutils "^2.0.2" + +"@babel/preset-react@^7.8.3": + version "7.9.4" + resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.9.4.tgz#c6c97693ac65b6b9c0b4f25b948a8f665463014d" + integrity sha512-AxylVB3FXeOTQXNXyiuAQJSvss62FEotbX2Pzx3K/7c+MKJMdSg6Ose6QYllkdCFA8EInCJVw7M/o5QbLuA4ZQ== + dependencies: + "@babel/helper-plugin-utils" "^7.8.3" + "@babel/plugin-transform-react-display-name" "^7.8.3" + "@babel/plugin-transform-react-jsx" "^7.9.4" + "@babel/plugin-transform-react-jsx-development" "^7.9.0" + "@babel/plugin-transform-react-jsx-self" "^7.9.0" + "@babel/plugin-transform-react-jsx-source" "^7.9.0" + +"@babel/runtime-corejs3@^7.8.3": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/runtime-corejs3/-/runtime-corejs3-7.9.2.tgz#26fe4aa77e9f1ecef9b776559bbb8e84d34284b7" + integrity sha512-HHxmgxbIzOfFlZ+tdeRKtaxWOMUoCG5Mu3wKeUmOxjYrwb3AAHgnmtCUbPPK11/raIWLIBK250t8E2BPO0p7jA== + dependencies: + core-js-pure "^3.0.0" + regenerator-runtime "^0.13.4" + +"@babel/runtime@^7.1.2", "@babel/runtime@^7.4.5", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.8.7", "@babel/runtime@^7.9.2": + version "7.9.2" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.9.2.tgz#d90df0583a3a252f09aaa619665367bae518db06" + integrity sha512-NE2DtOdufG7R5vnfQUTehdTfNycfUANEtCa9PssN9O/xmTzP4E08UI797ixaei6hBEVL9BI/PsdJS5x7mWoB9Q== + dependencies: + regenerator-runtime "^0.13.4" + +"@babel/standalone@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/standalone/-/standalone-7.9.5.tgz#aba82195a39a8ed8ae56eacff72cf2bda551a7c3" + integrity sha512-J6mHRjRUh4pKCd1uz5ghF2LpUwMuGwxy4z+TM+jbvt0dM6NiXd8Z2UOD1ftmGfkuAuDYlgcz4fm62MIjt8iUlg== + +"@babel/template@^7.8.3", "@babel/template@^7.8.6": + version "7.8.6" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.8.6.tgz#86b22af15f828dfb086474f964dcc3e39c43ce2b" + integrity sha512-zbMsPMy/v0PWFZEhQJ66bqjhH+z0JgMoBWuikXybgG3Gkd/3t5oQ1Rw2WQhnSrsOmsKXnZOx15tkC4qON/+JPg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/parser" "^7.8.6" + "@babel/types" "^7.8.6" + +"@babel/traverse@^7.7.0", "@babel/traverse@^7.8.3", "@babel/traverse@^7.8.6", "@babel/traverse@^7.9.0": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.9.5.tgz#6e7c56b44e2ac7011a948c21e283ddd9d9db97a2" + integrity sha512-c4gH3jsvSuGUezlP6rzSJ6jf8fYjLj3hsMZRx/nX0h+fmHN0w+ekubRrHPqnMec0meycA2nwCsJ7dC8IPem2FQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/generator" "^7.9.5" + "@babel/helper-function-name" "^7.9.5" + "@babel/helper-split-export-declaration" "^7.8.3" + "@babel/parser" "^7.9.0" + "@babel/types" "^7.9.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.13" + +"@babel/types@^7.4.4", "@babel/types@^7.7.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6", "@babel/types@^7.9.0", "@babel/types@^7.9.5": + version "7.9.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.5.tgz#89231f82915a8a566a703b3b20133f73da6b9444" + integrity sha512-XjnvNqenk818r5zMaba+sLQjnbda31UfUURv3ei0qPQw4u+j2jMyJ5b11y8ZHYTRSI3NnInQkkkRT4fLqqPdHg== + dependencies: + "@babel/helper-validator-identifier" "^7.9.5" + lodash "^4.17.13" + to-fast-properties "^2.0.0" + +"@hapi/address@2.x.x": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@hapi/address/-/address-2.1.4.tgz#5d67ed43f3fd41a69d4b9ff7b56e7c0d1d0a81e5" + integrity sha512-QD1PhQk+s31P1ixsX0H0Suoupp3VMXzIVMSwobR3F3MSUO2YCV0B7xqLcUw/Bh8yuvd3LhpyqLQWTNcRmp6IdQ== + +"@hapi/bourne@1.x.x": + version "1.3.2" + resolved "https://registry.yarnpkg.com/@hapi/bourne/-/bourne-1.3.2.tgz#0a7095adea067243ce3283e1b56b8a8f453b242a" + integrity sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA== + +"@hapi/hoek@8.x.x", "@hapi/hoek@^8.3.0": + version "8.5.1" + resolved "https://registry.yarnpkg.com/@hapi/hoek/-/hoek-8.5.1.tgz#fde96064ca446dec8c55a8c2f130957b070c6e06" + integrity sha512-yN7kbciD87WzLGc5539Tn0sApjyiGHAJgKvG9W8C7O+6c7qmoQMfVs0W4bX17eqz6C78QJqqFrtgdK5EWf6Qow== + +"@hapi/joi@^15.1.1": + version "15.1.1" + resolved "https://registry.yarnpkg.com/@hapi/joi/-/joi-15.1.1.tgz#c675b8a71296f02833f8d6d243b34c57b8ce19d7" + integrity sha512-entf8ZMOK8sc+8YfeOlM8pCfg3b5+WZIKBfUaaJT8UsjAAPjartzxIYm3TIbjvA4u+u++KbcXD38k682nVHDAQ== + dependencies: + "@hapi/address" "2.x.x" + "@hapi/bourne" "1.x.x" + "@hapi/hoek" "8.x.x" + "@hapi/topo" "3.x.x" + +"@hapi/topo@3.x.x": + version "3.1.6" + resolved "https://registry.yarnpkg.com/@hapi/topo/-/topo-3.1.6.tgz#68d935fa3eae7fdd5ab0d7f953f3205d8b2bfc29" + integrity sha512-tAag0jEcjwH+P2quUfipd7liWCNX2F8NvYjQp2wtInsZxnMlypdw0FtAOLxtvvkO+GSRRbmNi8m/5y42PQJYCQ== + dependencies: + "@hapi/hoek" "^8.3.0" + +"@jest/types@^25.4.0": + version "25.4.0" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-25.4.0.tgz#5afeb8f7e1cba153a28e5ac3c9fe3eede7206d59" + integrity sha512-XBeaWNzw2PPnGW5aXvZt3+VO60M+34RY3XDsCK5tW7kyj3RK0XClRutCfjqcBuaR2aBQTbluEDME9b5MB9UAPw== + dependencies: + "@types/istanbul-lib-coverage" "^2.0.0" + "@types/istanbul-reports" "^1.1.1" + "@types/yargs" "^15.0.0" + chalk "^3.0.0" + +"@mdx-js/mdx@^1.5.8", "@mdx-js/mdx@^1.5.9": + version "1.5.9" + resolved "https://registry.yarnpkg.com/@mdx-js/mdx/-/mdx-1.5.9.tgz#16078e1660a0f5d88b7d8e73bf09b989a755fcb9" + integrity sha512-K/qYIWwV5+V1ChVHga3ZzXlXtEuNsBOt/QI54K+DvD4ayu9WdbBv/953JdC2ZPrHQek48WIbKBH27omZPA6ZPA== + dependencies: + "@babel/core" "7.9.0" + "@babel/plugin-syntax-jsx" "7.8.3" + "@babel/plugin-syntax-object-rest-spread" "7.8.3" + "@mdx-js/util" "^1.5.9" + babel-plugin-apply-mdx-type-prop "^1.5.9" + babel-plugin-extract-import-names "^1.5.9" + camelcase-css "2.0.1" + detab "2.0.3" + hast-util-raw "5.0.2" + lodash.uniq "4.5.0" + mdast-util-to-hast "8.2.0" + remark-footnotes "1.0.0" + remark-mdx "^1.5.9" + remark-parse "8.0.1" + remark-squeeze-paragraphs "4.0.0" + style-to-object "0.3.0" + unified "9.0.0" + unist-builder "2.0.3" + unist-util-visit "2.0.2" + +"@mdx-js/react@^1.5.8", "@mdx-js/react@^1.5.9": + version "1.5.9" + resolved "https://registry.yarnpkg.com/@mdx-js/react/-/react-1.5.9.tgz#31873ab097fbe58c61c7585fc0be64e83182b6df" + integrity sha512-rengdUSedIdIQbXPSeafItCacTYocARAjUA51b6R1KNHmz+59efz7UmyTKr73viJQZ98ouu7iRGmOTtjRrbbWA== + +"@mdx-js/runtime@^1.5.8": + version "1.5.9" + resolved "https://registry.yarnpkg.com/@mdx-js/runtime/-/runtime-1.5.9.tgz#77d961c2aebc18d77899ea4722e3918cfa34775f" + integrity sha512-h6nkjaRPXe9uNnXBObxxqHguOcXacpWqoBke5NJDPiDdaBlSl5RYG0JziKbgmJFRNEn2RkQlk/YPT46BghB7Fw== + dependencies: + "@mdx-js/mdx" "^1.5.9" + "@mdx-js/react" "^1.5.9" + buble-jsx-only "^0.19.8" + +"@mdx-js/util@^1.5.9": + version "1.5.9" + resolved "https://registry.yarnpkg.com/@mdx-js/util/-/util-1.5.9.tgz#9cf5c3517301daf60f07961ce190f9f92d8da37d" + integrity sha512-hty9ftw/RENS+6pEXTy4vi46CO7cDRdhcELxCaklcGTuxeqi9OROJ+oi03RJd2O2V+3wY5geGAdXKlPQCOTE/Q== + +"@mikaelkristiansson/domready@^1.0.10": + version "1.0.10" + resolved "https://registry.yarnpkg.com/@mikaelkristiansson/domready/-/domready-1.0.10.tgz#f6d69866c0857664e70690d7a0bfedb72143adb5" + integrity sha512-6cDuZeKSCSJ1KvfEQ25Y8OXUjqDJZ+HgUs6dhASWbAX8fxVraTfPsSeRe2bN+4QJDsgUaXaMWBYfRomCr04GGg== + +"@mrmlnc/readdir-enhanced@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" + integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== + dependencies: + call-me-maybe "^1.0.1" + glob-to-regexp "^0.3.0" + +"@nodelib/fs.scandir@2.1.3": + version "2.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz#3a582bdb53804c6ba6d146579c46e52130cf4a3b" + integrity sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw== + dependencies: + "@nodelib/fs.stat" "2.0.3" + run-parallel "^1.1.9" + +"@nodelib/fs.stat@2.0.3", "@nodelib/fs.stat@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz#34dc5f4cabbc720f4e60f75a747e7ecd6c175bd3" + integrity sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA== + +"@nodelib/fs.stat@^1.1.2": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" + integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== + +"@nodelib/fs.walk@^1.2.3": + version "1.2.4" + resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz#011b9202a70a6366e436ca5c065844528ab04976" + integrity sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ== + dependencies: + "@nodelib/fs.scandir" "2.1.3" + fastq "^1.6.0" + +"@pieh/friendly-errors-webpack-plugin@1.7.0-chalk-2": + version "1.7.0-chalk-2" + resolved "https://registry.yarnpkg.com/@pieh/friendly-errors-webpack-plugin/-/friendly-errors-webpack-plugin-1.7.0-chalk-2.tgz#2e9da9d3ade9d18d013333eb408c457d04eabac0" + integrity sha512-65+vYGuDkHBCWWjqzzR/Ck318+d6yTI00EqII9qe3aPD1J3Olhvw0X38uM5moQb1PK/ksDXwSoPGt/5QhCiotw== + dependencies: + chalk "^2.4.2" + error-stack-parser "^2.0.0" + string-width "^2.0.0" + strip-ansi "^3" + +"@pmmmwh/react-refresh-webpack-plugin@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@pmmmwh/react-refresh-webpack-plugin/-/react-refresh-webpack-plugin-0.2.0.tgz#e2a684d430f74ad6465680d9a5869f52f307ec1e" + integrity sha512-rjdNzcWroULJeD/Y0+eETy9LhM7c5tbPF+wqT5G680rwDkh3iothIPEqGAuEE2WJlXEaAq293aO6ySzsIU518Q== + dependencies: + ansi-html "^0.0.7" + error-stack-parser "^2.0.4" + html-entities "^1.2.1" + lodash.debounce "^4.0.8" + react-dev-utils "^9.1.0" + +"@reach/router@^1.3.3": + version "1.3.3" + resolved "https://registry.yarnpkg.com/@reach/router/-/router-1.3.3.tgz#58162860dce6c9449d49be86b0561b5ef46d80db" + integrity sha512-gOIAiFhWdiVGSVjukKeNKkCRBLmnORoTPyBihI/jLunICPgxdP30DroAvPQuf1eVfQbfGJQDJkwhJXsNPMnVWw== + dependencies: + create-react-context "0.3.0" + invariant "^2.2.3" + prop-types "^15.6.1" + react-lifecycles-compat "^3.0.4" + +"@sindresorhus/is@^0.14.0": + version "0.14.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" + integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== + +"@sindresorhus/is@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.7.0.tgz#9a06f4f137ee84d7df0460c1fdb1135ffa6c50fd" + integrity sha512-ONhaKPIufzzrlNbqtWFFd+jlnemX6lJAgq9ZeiZtS7I1PIf/la7CW4m83rTXRnVnsMbW2k56pGYu7AUFJD9Pow== + +"@szmarczak/http-timer@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" + integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== + dependencies: + defer-to-connect "^1.0.1" + +"@types/color-name@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" + integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ== + +"@types/configstore@^2.1.1": + version "2.1.1" + resolved "https://registry.yarnpkg.com/@types/configstore/-/configstore-2.1.1.tgz#cd1e8553633ad3185c3f2f239ecff5d2643e92b6" + integrity sha1-zR6FU2M60xhcPy8jns/10mQ+krY= + +"@types/debug@^0.0.30": + version "0.0.30" + resolved "https://registry.yarnpkg.com/@types/debug/-/debug-0.0.30.tgz#dc1e40f7af3b9c815013a7860e6252f6352a84df" + integrity sha512-orGL5LXERPYsLov6CWs3Fh6203+dXzJkR7OnddIr2514Hsecwc8xRpzCapshBbKFImCsvS/mk6+FWiN5LyZJAQ== + +"@types/eslint-visitor-keys@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz#1ee30d79544ca84d68d4b3cdb0af4f205663dd2d" + integrity sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag== + +"@types/events@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7" + integrity sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g== + +"@types/get-port@^3.2.0": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@types/get-port/-/get-port-3.2.0.tgz#f9e0a11443cc21336470185eae3dfba4495d29bc" + integrity sha512-TiNg8R1kjDde5Pub9F9vCwZA/BNW9HeXP5b9j7Qucqncy/McfPZ6xze/EyBdXS5FhMIGN6Fx3vg75l5KHy3V1Q== + +"@types/glob@*", "@types/glob@^7.1.1": + version "7.1.1" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.1.1.tgz#aa59a1c6e3fbc421e07ccd31a944c30eba521575" + integrity sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/glob@^5.0.34": + version "5.0.36" + resolved "https://registry.yarnpkg.com/@types/glob/-/glob-5.0.36.tgz#0c80a9c8664fc7d19781de229f287077fd622cb2" + integrity sha512-KEzSKuP2+3oOjYYjujue6Z3Yqis5HKA1BsIC+jZ1v3lrRNdsqyNNtX0rQf6LSuI4DJJ2z5UV//zBZCcvM0xikg== + dependencies: + "@types/events" "*" + "@types/minimatch" "*" + "@types/node" "*" + +"@types/history@*": + version "4.7.5" + resolved "https://registry.yarnpkg.com/@types/history/-/history-4.7.5.tgz#527d20ef68571a4af02ed74350164e7a67544860" + integrity sha512-wLD/Aq2VggCJXSjxEwrMafIP51Z+13H78nXIX0ABEuIGhmB5sNGbR113MOKo+yfw+RDo1ZU3DM6yfnnRF/+ouw== + +"@types/istanbul-lib-coverage@*", "@types/istanbul-lib-coverage@^2.0.0": + version "2.0.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.1.tgz#42995b446db9a48a11a07ec083499a860e9138ff" + integrity sha512-hRJD2ahnnpLgsj6KWMYSrmXkM3rm2Dl1qkx6IOFD5FnuNPXJIG5L0dhgKXCYTRMGzU4n0wImQ/xfmRc4POUFlg== + +"@types/istanbul-lib-report@*": + version "3.0.0" + resolved "https://registry.yarnpkg.com/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz#c14c24f18ea8190c118ee7562b7ff99a36552686" + integrity sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg== + dependencies: + "@types/istanbul-lib-coverage" "*" + +"@types/istanbul-reports@^1.1.1": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@types/istanbul-reports/-/istanbul-reports-1.1.1.tgz#7a8cbf6a406f36c8add871625b278eaf0b0d255a" + integrity sha512-UpYjBi8xefVChsCoBpKShdxTllC9pwISirfoZsUa2AAdQg/Jd2KQGtSbw+ya7GPo7x/wAPlH6JBhKhAsXUEZNA== + dependencies: + "@types/istanbul-lib-coverage" "*" + "@types/istanbul-lib-report" "*" + +"@types/json-schema@^7.0.3": + version "7.0.4" + resolved "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.4.tgz#38fd73ddfd9b55abb1e1b2ed578cb55bd7b7d339" + integrity sha512-8+KAKzEvSUdeo+kmqnKrqgeE+LcA0tjYWFY7RPProVYwnqDjukzO+3b6dLD56rYX5TdWejnEOLJYOIeh4CXKuA== + +"@types/lodash@^4.14.92": + version "4.14.150" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.150.tgz#649fe44684c3f1fcb6164d943c5a61977e8cf0bd" + integrity sha512-kMNLM5JBcasgYscD9x/Gvr6lTAv2NVgsKtet/hm93qMyf/D1pt+7jeEZklKJKxMVmXjxbRVQQGfqDSfipYCO6w== + +"@types/minimatch@*": + version "3.0.3" + resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-3.0.3.tgz#3dca0e3f33b200fc7d1139c0cd96c1268cadfd9d" + integrity sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA== + +"@types/mkdirp@^0.5.2": + version "0.5.2" + resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.5.2.tgz#503aacfe5cc2703d5484326b1b27efa67a339c1f" + integrity sha512-U5icWpv7YnZYGsN4/cmh3WD2onMY0aJIiTE6+51TwJCttdHvtCYmkBNOobHlXwrJRL0nkH9jH4kD+1FAdMN4Tg== + dependencies: + "@types/node" "*" + +"@types/node@*": + version "13.13.2" + resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.2.tgz#160d82623610db590a64e8ca81784e11117e5a54" + integrity sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A== + +"@types/node@^8.5.7": + version "8.10.60" + resolved "https://registry.yarnpkg.com/@types/node/-/node-8.10.60.tgz#73eb4d1e1c8aa5dc724363b57db019cf28863ef7" + integrity sha512-YjPbypHFuiOV0bTgeF07HpEEqhmHaZqYNSdCKeBJa+yFoQ/7BC+FpJcwmi34xUIIRVFktnUyP1dPU8U0612GOg== + +"@types/parse-json@^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0" + integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA== + +"@types/prop-types@*": + version "15.7.3" + resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" + integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== + +"@types/q@^1.5.1": + version "1.5.2" + resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.2.tgz#690a1475b84f2a884fd07cd797c00f5f31356ea8" + integrity sha512-ce5d3q03Ex0sy4R14722Rmt6MT07Ua+k4FwDfdcToYJcMKNtRVQvJ6JCAPdAmAnbRb6CsX6aYb9m96NGod9uTw== + +"@types/reach__router@^1.3.3": + version "1.3.4" + resolved "https://registry.yarnpkg.com/@types/reach__router/-/reach__router-1.3.4.tgz#98ef393d06f59d296b5c021ba94b94e5fc463245" + integrity sha512-DZgYfxUIlVSjvf0AvBbYNbpXLrTFNNpU1HrvCRbnMtx3nvGUUWC1/zlAe4dD4FCPFtc+LQuIPEsDiTb0zQkthg== + dependencies: + "@types/history" "*" + "@types/react" "*" + +"@types/react@*": + version "16.9.34" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.34.tgz#f7d5e331c468f53affed17a8a4d488cd44ea9349" + integrity sha512-8AJlYMOfPe1KGLKyHpflCg5z46n0b5DbRfqDksxBLBTUpB75ypDBAO9eCUcjNwE6LCUslwTz00yyG/X9gaVtow== + dependencies: + "@types/prop-types" "*" + csstype "^2.2.0" + +"@types/rimraf@^2.0.2": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@types/rimraf/-/rimraf-2.0.4.tgz#403887b0b53c6100a6c35d2ab24f6ccc042fec46" + integrity sha512-8gBudvllD2A/c0CcEX/BivIDorHFt5UI5m46TsNj8DjWCCTTZT74kEe4g+QsY7P/B9WdO98d82zZgXO/RQzu2Q== + dependencies: + "@types/glob" "*" + "@types/node" "*" + +"@types/tmp@^0.0.33": + version "0.0.33" + resolved "https://registry.yarnpkg.com/@types/tmp/-/tmp-0.0.33.tgz#1073c4bc824754ae3d10cfab88ab0237ba964e4d" + integrity sha1-EHPEvIJHVK49EM+riKsCN7qWTk0= + +"@types/unist@^2.0.0", "@types/unist@^2.0.2": + version "2.0.3" + resolved "https://registry.yarnpkg.com/@types/unist/-/unist-2.0.3.tgz#9c088679876f374eb5983f150d4787aa6fb32d7e" + integrity sha512-FvUupuM3rlRsRtCN+fDudtmytGO6iHJuuRKS1Ss0pG5z8oX0diNEw94UEL7hgDbpN94rgaK5R7sWm6RrSkZuAQ== + +"@types/yargs-parser@*": + version "15.0.0" + resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d" + integrity sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw== + +"@types/yargs@^15.0.0": + version "15.0.4" + resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.4.tgz#7e5d0f8ca25e9d5849f2ea443cf7c402decd8299" + integrity sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg== + dependencies: + "@types/yargs-parser" "*" + +"@types/yoga-layout@1.9.1": + version "1.9.1" + resolved "https://registry.yarnpkg.com/@types/yoga-layout/-/yoga-layout-1.9.1.tgz#6c00e4a151a9a529397d580e2cf6f3947a42a928" + integrity sha512-OpfgQXWLZn5Dl7mOd8dBNcV8NywXbYYoHjUpa64vJ/RQABaxMzJ5bVicKLGIvIiMnQPtPgKNgXb5jkv9fkOQtw== + +"@typescript-eslint/eslint-plugin@^2.24.0": + version "2.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.29.0.tgz#c9efab7624e3dd6d144a0e4577a541d1bd42c2ac" + integrity sha512-X/YAY7azKirENm4QRpT7OVmzok02cSkqeIcLmdz6gXUQG4Hk0Fi9oBAynSAyNXeGdMRuZvjBa0c1Lu0dn/u6VA== + dependencies: + "@typescript-eslint/experimental-utils" "2.29.0" + functional-red-black-tree "^1.0.1" + regexpp "^3.0.0" + tsutils "^3.17.1" + +"@typescript-eslint/experimental-utils@2.29.0": + version "2.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-2.29.0.tgz#3cb8060de9265ba131625a96bbfec31ba6d4a0fe" + integrity sha512-H/6VJr6eWYstyqjWXBP2Nn1hQJyvJoFdDtsHxGiD+lEP7piGnGpb/ZQd+z1ZSB1F7dN+WsxUDh8+S4LwI+f3jw== + dependencies: + "@types/json-schema" "^7.0.3" + "@typescript-eslint/typescript-estree" "2.29.0" + eslint-scope "^5.0.0" + eslint-utils "^2.0.0" + +"@typescript-eslint/parser@^2.24.0": + version "2.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-2.29.0.tgz#6e3c4e21ed6393dc05b9d8b47f0b7e731ef21c9c" + integrity sha512-H78M+jcu5Tf6m/5N8iiFblUUv+HJDguMSdFfzwa6vSg9lKR8Mk9BsgeSjO8l2EshKnJKcbv0e8IDDOvSNjl0EA== + dependencies: + "@types/eslint-visitor-keys" "^1.0.0" + "@typescript-eslint/experimental-utils" "2.29.0" + "@typescript-eslint/typescript-estree" "2.29.0" + eslint-visitor-keys "^1.1.0" + +"@typescript-eslint/typescript-estree@2.29.0": + version "2.29.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-2.29.0.tgz#1be6612bb02fc37ac9f466521c1459a4744e8d3a" + integrity sha512-3YGbtnWy4az16Egy5Fj5CckkVlpIh0MADtAQza+jiMADRSKkjdpzZp/5WuvwK/Qib3Z0HtzrDFeWanS99dNhnA== + dependencies: + debug "^4.1.1" + eslint-visitor-keys "^1.1.0" + glob "^7.1.6" + is-glob "^4.0.1" + lodash "^4.17.15" + semver "^6.3.0" + tsutils "^3.17.1" + +"@urql/core@^1.11.0": + version "1.11.5" + resolved "https://registry.yarnpkg.com/@urql/core/-/core-1.11.5.tgz#bfd4f7cb5d5475aa12e973d4540c0a057472de68" + integrity sha512-id341sUsA5NQqftKFMV2d8AtV1h+cX68+QVZOfueZPCLyLTt8JlZQOn8/uFJQ2vlg3swNMvqtWAGytqMZNutSg== + dependencies: + wonka "^4.0.9" + +"@webassemblyjs/ast@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964" + integrity sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA== + dependencies: + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + +"@webassemblyjs/floating-point-hex-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz#3c3d3b271bddfc84deb00f71344438311d52ffb4" + integrity sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA== + +"@webassemblyjs/helper-api-error@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz#203f676e333b96c9da2eeab3ccef33c45928b6a2" + integrity sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw== + +"@webassemblyjs/helper-buffer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz#a1442d269c5feb23fcbc9ef759dac3547f29de00" + integrity sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA== + +"@webassemblyjs/helper-code-frame@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz#647f8892cd2043a82ac0c8c5e75c36f1d9159f27" + integrity sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA== + dependencies: + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/helper-fsm@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz#c05256b71244214671f4b08ec108ad63b70eddb8" + integrity sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw== + +"@webassemblyjs/helper-module-context@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz#25d8884b76839871a08a6c6f806c3979ef712f07" + integrity sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g== + dependencies: + "@webassemblyjs/ast" "1.9.0" + +"@webassemblyjs/helper-wasm-bytecode@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz#4fed8beac9b8c14f8c58b70d124d549dd1fe5790" + integrity sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw== + +"@webassemblyjs/helper-wasm-section@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz#5a4138d5a6292ba18b04c5ae49717e4167965346" + integrity sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + +"@webassemblyjs/ieee754@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz#15c7a0fbaae83fb26143bbacf6d6df1702ad39e4" + integrity sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg== + dependencies: + "@xtuc/ieee754" "^1.2.0" + +"@webassemblyjs/leb128@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/leb128/-/leb128-1.9.0.tgz#f19ca0b76a6dc55623a09cffa769e838fa1e1c95" + integrity sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw== + dependencies: + "@xtuc/long" "4.2.2" + +"@webassemblyjs/utf8@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/utf8/-/utf8-1.9.0.tgz#04d33b636f78e6a6813227e82402f7637b6229ab" + integrity sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w== + +"@webassemblyjs/wasm-edit@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz#3fe6d79d3f0f922183aa86002c42dd256cfee9cf" + integrity sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/helper-wasm-section" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-opt" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + "@webassemblyjs/wast-printer" "1.9.0" + +"@webassemblyjs/wasm-gen@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz#50bc70ec68ded8e2763b01a1418bf43491a7a49c" + integrity sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wasm-opt@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz#2211181e5b31326443cc8112eb9f0b9028721a61" + integrity sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-buffer" "1.9.0" + "@webassemblyjs/wasm-gen" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + +"@webassemblyjs/wasm-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz#9d48e44826df4a6598294aa6c87469d642fff65e" + integrity sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-wasm-bytecode" "1.9.0" + "@webassemblyjs/ieee754" "1.9.0" + "@webassemblyjs/leb128" "1.9.0" + "@webassemblyjs/utf8" "1.9.0" + +"@webassemblyjs/wast-parser@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz#3031115d79ac5bd261556cecc3fa90a3ef451914" + integrity sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/floating-point-hex-parser" "1.9.0" + "@webassemblyjs/helper-api-error" "1.9.0" + "@webassemblyjs/helper-code-frame" "1.9.0" + "@webassemblyjs/helper-fsm" "1.9.0" + "@xtuc/long" "4.2.2" + +"@webassemblyjs/wast-printer@1.9.0": + version "1.9.0" + resolved "https://registry.yarnpkg.com/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz#4935d54c85fef637b00ce9f52377451d00d47899" + integrity sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/wast-parser" "1.9.0" + "@xtuc/long" "4.2.2" + +"@xtuc/ieee754@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@xtuc/ieee754/-/ieee754-1.2.0.tgz#eef014a3145ae477a1cbc00cd1e552336dceb790" + integrity sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA== + +"@xtuc/long@4.2.2": + version "4.2.2" + resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d" + integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ== + +abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== + +accepts@^1.3.7, accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.7: + version "1.3.7" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.7.tgz#531bc726517a3b2b41f850021c6cc15eaab507cd" + integrity sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA== + dependencies: + mime-types "~2.1.24" + negotiator "0.6.2" + +acorn-dynamic-import@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-4.0.0.tgz#482210140582a36b83c3e342e1cfebcaa9240948" + integrity sha512-d3OEjQV4ROpoflsnUA8HozoIR504TFxNivYEUi6uwz0IYhBkTDXGuWlNdMtybRt3nqVx/L6XqMt0FxkXuWKZhw== + +acorn-jsx@^5.0.1, acorn-jsx@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz#4c66069173d6fdd68ed85239fc256226182b2ebe" + integrity sha512-HiUX/+K2YpkpJ+SzBffkM/AQ2YE03S0U1kjTLVpoJdhZMOWy8qvXVN9JdLqv2QsaQ6MPYQIuNmwD8zOiYUofLQ== + +acorn@^6.1.1, acorn@^6.2.1: + version "6.4.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474" + integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA== + +acorn@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + +address@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/address/-/address-1.0.3.tgz#b5f50631f8d6cec8bd20c963963afb55e06cbce9" + integrity sha512-z55ocwKBRLryBs394Sm3ushTtBeg6VAeuku7utSoSnsJKvKcnXFIyC6vh27n3rXyxSgkJBBCAvyOn7gSUcTYjg== + +address@1.1.2, address@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/address/-/address-1.1.2.tgz#bf1116c9c758c51b7a933d296b72c221ed9428b6" + integrity sha512-aT6camzM4xEA54YVJYSqxz1kv4IHnQZRtThJJHhUMRExaU5spC7jX5ugSwTaTgJliIgs4VhZOk7htClvQ/LmRA== + +after@0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" + integrity sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8= + +aggregate-error@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/aggregate-error/-/aggregate-error-3.0.1.tgz#db2fe7246e536f40d9b5442a39e117d7dd6a24e0" + integrity sha512-quoaXsZ9/BLNae5yiNoUz+Nhkwz83GhWwtYFglcjEQB2NDHCIpApbqXxIFnm4Pq/Nvhrsq5sYJFyohrrxnTGAA== + dependencies: + clean-stack "^2.0.0" + indent-string "^4.0.0" + +ajv-errors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" + integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== + +ajv-keywords@^3.1.0, ajv-keywords@^3.4.1: + version "3.4.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.4.1.tgz#ef916e271c64ac12171fd8384eaae6b2345854da" + integrity sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ== + +ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.0: + version "6.12.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.2.tgz#c629c5eced17baf314437918d2da88c99d5958cd" + integrity sha512-k+V+hzjm5q/Mr8ef/1Y9goCmlsK4I6Sm74teeyGvFk1XrOsbsKLjEdrvny42CZ+a8sXbk8KWpY/bDwS+FLL2UQ== + dependencies: + fast-deep-equal "^3.1.1" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.4.1" + uri-js "^4.2.2" + +alphanum-sort@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= + +ansi-align@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" + integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== + dependencies: + string-width "^3.0.0" + +ansi-colors@^3.0.0: + version "3.2.4" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-3.2.4.tgz#e3a3da4bfbae6c86a9c285625de124a234026fbf" + integrity sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA== + +ansi-escapes@^3.0.0, ansi-escapes@^3.1.0, ansi-escapes@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" + integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== + +ansi-escapes@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz#a5c47cc43181f1f38ffd7076837700d395522a61" + integrity sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA== + dependencies: + type-fest "^0.11.0" + +ansi-html@0.0.7, ansi-html@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + integrity sha1-gTWEAhliqenm/QOflA0S9WynhZ4= + +ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= + +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= + +ansi-regex@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" + integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== + +ansi-regex@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" + integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== + +ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= + +ansi-styles@^3.2.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.2.1.tgz#90ae75c424d008d2624c5bf29ead3177ebfcf359" + integrity sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA== + dependencies: + "@types/color-name" "^1.1.1" + color-convert "^2.0.1" + +anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + +anymatch@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.1.tgz#c55ecf02185e2469259399310c173ce31233b142" + integrity sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +application-config-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/application-config-path/-/application-config-path-0.1.0.tgz#193c5f0a86541a4c66fba1e2dc38583362ea5e8f" + integrity sha1-GTxfCoZUGkxm+6Hi3DhYM2LqXo8= + +aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw== + +arch@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/arch/-/arch-2.1.1.tgz#8f5c2731aa35a30929221bb0640eed65175ec84e" + integrity sha512-BLM56aPo9vLLFVa8+/+pJLnrZ7QGGTVHWsCwieAWT9o9K8UeGaQbzZbGoabWLOo2ksBCztoXdqBZBplqLDDCSg== + +are-we-there-yet@~1.1.2: + version "1.1.5" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz#4b35c2944f062a8bfcda66410760350fe9ddfc21" + integrity sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w== + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + +argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== + dependencies: + sprintf-js "~1.0.2" + +aria-query@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aria-query/-/aria-query-3.0.0.tgz#65b3fcc1ca1155a8c9ae64d6eee297f15d5133cc" + integrity sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w= + dependencies: + ast-types-flow "0.0.7" + commander "^2.11.0" + +arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= + +arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== + +arr-rotate@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/arr-rotate/-/arr-rotate-1.0.0.tgz#c11877d06a0a42beb39ab8956a06779d9b71d248" + integrity sha512-yOzOZcR9Tn7enTF66bqKorGGH0F36vcPaSWg8fO0c0UYb3LX3VMXj5ZxEqQLNOecAhlRJ7wYZja5i4jTlnbIfQ== + +arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= + +array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + integrity sha1-fajPLiZijtcygDWB/SH2fKzS7uw= + +array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + integrity sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E= + +array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + integrity sha1-ml9pkFGx5wczKPKgCJaLZOopVdI= + +array-flatten@^2.1.0: + version "2.1.2" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" + integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== + +array-includes@^3.0.3, array-includes@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz#cdd67e6852bdf9c1215460786732255ed2459348" + integrity sha512-c2VXaCHl7zPsvpkFsw4nxvFie4fh1ur9bpcgsVkIjqn0H/Xwdg+7fv3n2r/isyS8EBj5b06M9kHyZuIr4El6WQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + is-string "^1.0.5" + +array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + integrity sha1-iKK6tz0c97zVwbEYoAP2b2ZfpmI= + +array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + integrity sha1-FziZ0//Rx9k4PkR5Ul2+J4yrXys= + +array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + integrity sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk= + dependencies: + array-uniq "^1.0.1" + +array-union@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" + integrity sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw== + +array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + integrity sha1-r2rId6Jcx/dOBYiUdThY39sk/bY= + +array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= + +array.prototype.flat@^1.2.1: + version "1.2.3" + resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz#0de82b426b0318dbfdb940089e38b043d37f6c7b" + integrity sha512-gBlRZV0VSmfPIeWfuuy56XZMvbVfbEUnOXUvt3F/eUUUSyzlgLxhEX4YAEpxNAogRGehPSnfXyPtYyKAhkzQhQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +arraybuffer.slice@~0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz#3bbc4275dd584cc1b10809b89d4e8b63a69e7675" + integrity sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog== + +arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0= + +arrify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-2.0.1.tgz#c9655e9331e0abcd588d2a7cad7e9956f66701fa" + integrity sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug== + +asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + integrity sha512-p32cOF5q0Zqs9uBiONKYLm6BClCoBCM5O9JfeUSlnQLBTxYdTK+pW+nXflm8UkKd2UYlEbYz5qEi0JuZR9ckSw== + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +assert@^1.1.1: + version "1.5.0" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" + integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== + dependencies: + object-assign "^4.1.1" + util "0.10.3" + +assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= + +ast-types-flow@0.0.7, ast-types-flow@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" + integrity sha1-9wtzXGvKGlycItmCw+Oef+ujva0= + +astral-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" + integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== + +astral-regex@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-2.0.0.tgz#483143c567aeed4785759c0865786dc77d7d2e31" + integrity sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ== + +async-each@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" + integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== + +async-limiter@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" + integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== + +async@1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + integrity sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo= + +async@^2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" + integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== + dependencies: + lodash "^4.17.14" + +atob@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" + integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== + +auto-bind@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/auto-bind/-/auto-bind-4.0.0.tgz#e3589fc6c2da8f7ca43ba9f84fa52a744fc997fb" + integrity sha512-Hdw8qdNiqdJ8LqT0iK0sVzkFbzg6fhnQqqfWhBDxcHZvU75+B+ayzTy8x+k5Ix0Y92XOhOUlx74ps+bA6BeYMQ== + +autoprefixer@^9.7.4: + version "9.7.6" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-9.7.6.tgz#63ac5bbc0ce7934e6997207d5bb00d68fa8293a4" + integrity sha512-F7cYpbN7uVVhACZTeeIeealwdGM6wMtfWARVLTy5xmKtgVdBNJvbDRoCK3YO1orcs7gv/KwYlb3iXwu9Ug9BkQ== + dependencies: + browserslist "^4.11.1" + caniuse-lite "^1.0.30001039" + chalk "^2.4.2" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^7.0.27" + postcss-value-parser "^4.0.3" + +axios@^0.19.2: + version "0.19.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" + integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA== + dependencies: + follow-redirects "1.5.10" + +axobject-query@^2.0.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.1.2.tgz#2bdffc0371e643e5f03ba99065d5179b9ca79799" + integrity sha512-ICt34ZmrVt8UQnvPl6TVyDTkmhXmAyAT4Jh5ugfGUX4MOrZ+U/ZY6/sdylRw3qGNr9Ub5AJsaHeDMzNLehRdOQ== + +babel-code-frame@6.26.0, babel-code-frame@^6.22.0, babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + integrity sha1-Y/1D99weO7fONZR9uP42mj9Yx0s= + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + +babel-core@7.0.0-bridge.0: + version "7.0.0-bridge.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-7.0.0-bridge.0.tgz#95a492ddd90f9b4e9a4a1da14eb335b87b634ece" + integrity sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg== + +babel-eslint@^10.1.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz#6968e568a910b78fb3779cdd8b6ac2f479943232" + integrity sha512-ifWaTHQ0ce+448CYop8AdrQiBsGrnC+bMgfyKFdi6EsPLTAWG+QfyDeM6OH+FmWnKvEq5NnBMLvlBUPKQZoDSg== + dependencies: + "@babel/code-frame" "^7.0.0" + "@babel/parser" "^7.7.0" + "@babel/traverse" "^7.7.0" + "@babel/types" "^7.7.0" + eslint-visitor-keys "^1.0.0" + resolve "^1.12.0" + +babel-loader@^8.0.6: + version "8.1.0" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-8.1.0.tgz#c611d5112bd5209abe8b9fa84c3e4da25275f1c3" + integrity sha512-7q7nC1tYOrqvUrN3LQK4GwSk/TQorZSOlO9C+RZDZpODgyN4ZlCqE5q9cDsyWOliN+aU9B4JX01xK9eJXowJLw== + dependencies: + find-cache-dir "^2.1.0" + loader-utils "^1.4.0" + mkdirp "^0.5.3" + pify "^4.0.1" + schema-utils "^2.6.5" + +babel-plugin-add-module-exports@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-add-module-exports/-/babel-plugin-add-module-exports-0.3.3.tgz#b9f7c0a93b989170dce07c3e97071a905a13fc29" + integrity sha512-hC37mm7aAdEb1n8SgggG8a1QuhZapsY/XLCi4ETSH6AVjXBCWEa50CXlOsAMPPWLnSx5Ns6mzz39uvuseh0Xjg== + optionalDependencies: + chokidar "^2.0.4" + +babel-plugin-apply-mdx-type-prop@^1.5.9: + version "1.5.9" + resolved "https://registry.yarnpkg.com/babel-plugin-apply-mdx-type-prop/-/babel-plugin-apply-mdx-type-prop-1.5.9.tgz#85d888c875fa7bc33e4695da11c9ece068cc6b98" + integrity sha512-3uNQ4Zo/TjOaB0E98m6ez2Xfrb7IYAs5BB4b8zQXggPCCppg5kjQEe8AglH6F6b94+q7Qv/cNTnoNqGXs6RBEA== + dependencies: + "@babel/helper-plugin-utils" "7.8.3" + "@mdx-js/util" "^1.5.9" + +babel-plugin-dynamic-import-node@^2.3.0: + version "2.3.3" + resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" + integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== + dependencies: + object.assign "^4.1.0" + +babel-plugin-extract-import-names@^1.5.9: + version "1.5.9" + resolved "https://registry.yarnpkg.com/babel-plugin-extract-import-names/-/babel-plugin-extract-import-names-1.5.9.tgz#3f450a8952b2fb97ba7676d4e1e67eade45d1988" + integrity sha512-0V3/VJClG/pUn7wnlmWByJdhJklZWD4XvR9P+Q7wDWs9kS48lmmB5Pp6+zvbTBBQGlqJB5/bBtwMRm4zdoPNzg== + dependencies: + "@babel/helper-plugin-utils" "7.8.3" + +babel-plugin-macros@^2.8.0: + version "2.8.0" + resolved "https://registry.yarnpkg.com/babel-plugin-macros/-/babel-plugin-macros-2.8.0.tgz#0f958a7cc6556b1e65344465d99111a1e5e10138" + integrity sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg== + dependencies: + "@babel/runtime" "^7.7.2" + cosmiconfig "^6.0.0" + resolve "^1.12.0" + +babel-plugin-remove-graphql-queries@^2.8.3: + version "2.8.3" + resolved "https://registry.yarnpkg.com/babel-plugin-remove-graphql-queries/-/babel-plugin-remove-graphql-queries-2.8.3.tgz#90bd811e5912348e9c158113e2c0774a8d5ac8fb" + integrity sha512-BVux5WSXstiZzZuff7hD7F3WjBPq4V/sDgsT7EosXUNAoShht3msg1pFhJx+Id4jq/VNGEy+lfUzmAvBklIYeA== + +babel-plugin-transform-react-remove-prop-types@^0.4.24: + version "0.4.24" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-react-remove-prop-types/-/babel-plugin-transform-react-remove-prop-types-0.4.24.tgz#f2edaf9b4c6a5fbe5c1d678bfb531078c1555f3a" + integrity sha512-eqj0hVcJUR57/Ug2zE1Yswsw4LhuqqHhD+8v120T1cl3kjg76QwtyBrdIk4WVwK+lAhBJVYCd/v+4nc4y+8JsA== + +babel-preset-gatsby@^0.3.4: + version "0.3.4" + resolved "https://registry.yarnpkg.com/babel-preset-gatsby/-/babel-preset-gatsby-0.3.4.tgz#85cec0075bf6bfd8271036d99f5db195ea1c050e" + integrity sha512-ifDMkFf7VZOc7vT8LF5GQXl9EadBZTMaBbCRXH6YvkczwGbm6Alfg+8FFPv0pP7EFPXxrLw99CmnmncALWJeSA== + dependencies: + "@babel/plugin-proposal-class-properties" "^7.8.3" + "@babel/plugin-proposal-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-proposal-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-transform-runtime" "^7.8.3" + "@babel/plugin-transform-spread" "^7.8.3" + "@babel/preset-env" "^7.8.7" + "@babel/preset-react" "^7.8.3" + "@babel/runtime" "^7.8.7" + babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-macros "^2.8.0" + babel-plugin-transform-react-remove-prop-types "^0.4.24" + gatsby-core-utils "^1.1.3" + +babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + +backo2@1.0.2, backo2@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" + integrity sha1-MasayLEpNjRj41s+u2n038+6eUc= + +bail@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/bail/-/bail-1.0.5.tgz#b6fa133404a392cbc1f8c4bf63f5953351e7a776" + integrity sha512-xFbRxM1tahm08yHBP16MMjVUAvDaBMD38zsM9EMAUN61omwLmKlOpB/Zku5QkjZ8TZ4vn53pj+t518cH0S03RQ== + +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= + +base64-arraybuffer@0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" + integrity sha1-c5JncZI7Whl0etZmqlzUv5xunOg= + +base64-js@^1.0.2: + version "1.3.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1" + integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g== + +base64id@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" + integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== + +base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + +batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY= + +better-assert@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" + integrity sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI= + dependencies: + callsite "1.0.0" + +better-opn@1.0.0, better-opn@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/better-opn/-/better-opn-1.0.0.tgz#0454e4bb9115c6a9e4e5744417dd9c97fb9fce41" + integrity sha512-q3eO2se4sFbTERB1dFBDdjTiIIpRohMErpwBX21lhPvmgmQNNrcQj0zbWRhMREDesJvyod9kxBS3kOtdAvkB/A== + dependencies: + open "^6.4.0" + +better-queue-memory@^1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/better-queue-memory/-/better-queue-memory-1.0.4.tgz#f390d6b30bb3b36aaf2ce52b37a483e8a7a81a22" + integrity sha512-SWg5wFIShYffEmJpI6LgbL8/3Dqhku7xI1oEiy6FroP9DbcZlG0ZDjxvPdP9t7hTGW40IpIcC6zVoGT1oxjOuA== + +better-queue@^3.8.10: + version "3.8.10" + resolved "https://registry.yarnpkg.com/better-queue/-/better-queue-3.8.10.tgz#1c93b9ec4cb3d1b72eb91d0efcb84fc80e8c6835" + integrity sha512-e3gwNZgDCnNWl0An0Tz6sUjKDV9m6aB+K9Xg//vYeo8+KiH8pWhLFxkawcXhm6FpM//GfD9IQv/kmvWCAVVpKA== + dependencies: + better-queue-memory "^1.0.1" + node-eta "^0.9.0" + uuid "^3.0.0" + +big.js@^5.2.2: + version "5.2.2" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328" + integrity sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ== + +binary-extensions@^1.0.0: + version "1.13.1" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" + integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== + +binary-extensions@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.0.0.tgz#23c0df14f6a88077f5f986c0d167ec03c3d5537c" + integrity sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow== + +bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +blob@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.5.tgz#d680eeef25f8cd91ad533f5b01eed48e64caf683" + integrity sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig== + +bluebird@^3.5.5, bluebird@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" + integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== + +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + integrity sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA== + +body-parser@1.19.0: + version "1.19.0" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.0.tgz#96b2709e57c9c4e09a6fd66a8fd979844f69f08a" + integrity sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw== + dependencies: + bytes "3.1.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.2" + http-errors "1.7.2" + iconv-lite "0.4.24" + on-finished "~2.3.0" + qs "6.7.0" + raw-body "2.4.0" + type-is "~1.6.17" + +bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + integrity sha1-jokKGD2O6aI5OzhExpGkK897yfU= + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + +boolbase@^1.0.0, boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= + +boxen@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-3.2.0.tgz#fbdff0de93636ab4450886b6ff45b92d098f45eb" + integrity sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^2.4.2" + cli-boxes "^2.2.0" + string-width "^3.0.0" + term-size "^1.2.0" + type-fest "^0.3.0" + widest-line "^2.0.0" + +boxen@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" + integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== + dependencies: + ansi-align "^3.0.0" + camelcase "^5.3.1" + chalk "^3.0.0" + cli-boxes "^2.2.0" + string-width "^4.1.0" + term-size "^2.1.0" + type-fest "^0.8.1" + widest-line "^3.1.0" + +brace-expansion@^1.0.0, brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +braces@^2.3.1, braces@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + +braces@^3.0.1, braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= + +browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" + integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + integrity sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ= + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + integrity sha1-qk62jl17ZYuqa/alfmMMvXqT0pg= + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== + dependencies: + pako "~1.0.5" + +browserslist@4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.7.0.tgz#9ee89225ffc07db03409f2fee524dc8227458a17" + integrity sha512-9rGNDtnj+HaahxiVV38Gn8n8Lr8REKsel68v1sPFfIGEK6uSXTY3h9acgiT1dZVtOOUtifo/Dn8daDQ5dUgVsA== + dependencies: + caniuse-lite "^1.0.30000989" + electron-to-chromium "^1.3.247" + node-releases "^1.1.29" + +browserslist@^4.0.0, browserslist@^4.11.1, browserslist@^4.8.5, browserslist@^4.9.1: + version "4.12.0" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.12.0.tgz#06c6d5715a1ede6c51fc39ff67fd647f740b656d" + integrity sha512-UH2GkcEDSI0k/lRkuDSzFl9ZZ87skSy9w2XAn1MsZnL+4c4rqbBd3e82UWHbYDpztABrPBhZsTEeuxVfHppqDg== + dependencies: + caniuse-lite "^1.0.30001043" + electron-to-chromium "^1.3.413" + node-releases "^1.1.53" + pkg-up "^2.0.0" + +buble-jsx-only@^0.19.8: + version "0.19.8" + resolved "https://registry.yarnpkg.com/buble-jsx-only/-/buble-jsx-only-0.19.8.tgz#6e3524aa0f1c523de32496ac9aceb9cc2b493867" + integrity sha512-7AW19pf7PrKFnGTEDzs6u9+JZqQwM1VnLS19OlqYDhXomtFFknnoQJAPHeg84RMFWAvOhYrG7harizJNwUKJsA== + dependencies: + acorn "^6.1.1" + acorn-dynamic-import "^4.0.0" + acorn-jsx "^5.0.1" + chalk "^2.4.2" + magic-string "^0.25.3" + minimist "^1.2.0" + regexpu-core "^4.5.4" + +buffer-alloc-unsafe@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz#bd7dc26ae2972d0eda253be061dba992349c19f0" + integrity sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg== + +buffer-alloc@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/buffer-alloc/-/buffer-alloc-1.2.0.tgz#890dd90d923a873e08e10e5fd51a57e5b7cce0ec" + integrity sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow== + dependencies: + buffer-alloc-unsafe "^1.1.0" + buffer-fill "^1.0.0" + +buffer-fill@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-fill/-/buffer-fill-1.0.0.tgz#f8f78b76789888ef39f205cd637f68e702122b2c" + integrity sha1-+PeLdniYiO858gXNY39o5wISKyw= + +buffer-from@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" + integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== + +buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + integrity sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= + +buffer@^4.3.0: + version "4.9.2" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" + integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + +builtin-modules@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.1.0.tgz#aad97c15131eb76b65b50ef208e7584cd76a7484" + integrity sha512-k0KL0aWZuBt2lrxrcASWDfwOLMnodeQjodT/1SxEQAXsHANgo6ZC/VEaSEHCXt7aSTZ4/4H5LKa+tBXmW7Vtvw== + +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= + +bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + integrity sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg= + +bytes@3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.1.0.tgz#f6cf7933a360e0588fa9fde85651cdc7f805d1f6" + integrity sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg== + +cacache@^12.0.2: + version "12.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-12.0.4.tgz#668bcbd105aeb5f1d92fe25570ec9525c8faa40c" + integrity sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ== + dependencies: + bluebird "^3.5.5" + chownr "^1.1.1" + figgy-pudding "^3.5.1" + glob "^7.1.4" + graceful-fs "^4.1.15" + infer-owner "^1.0.3" + lru-cache "^5.1.1" + mississippi "^3.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.3" + ssri "^6.0.1" + unique-filename "^1.1.1" + y18n "^4.0.0" + +cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + +cache-manager-fs-hash@^0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/cache-manager-fs-hash/-/cache-manager-fs-hash-0.0.7.tgz#297f34b9c1a2aaec7b526e7ae0742c4e3fae4888" + integrity sha512-7X+FPItAJf1tKKqJx6ljDJQc0fgSR5B+KPxFQLj+vYSL4q9XdrCbZldgsNb6wueRuIooj01wt0FubB08zaefRg== + dependencies: + es6-promisify "^6.0.0" + lockfile "^1.0.4" + +cache-manager@^2.11.1: + version "2.11.1" + resolved "https://registry.yarnpkg.com/cache-manager/-/cache-manager-2.11.1.tgz#212e8c3db15288af653b029a1d9fe12f1fd9df61" + integrity sha512-XhUuc9eYwkzpK89iNewFwtvcDYMUsvtwzHeyEOPJna/WsVsXcrzsA1ft2M0QqPNunEzLhNCYPo05tEfG+YuNow== + dependencies: + async "1.5.2" + lodash.clonedeep "4.5.0" + lru-cache "4.0.0" + +cacheable-request@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-2.1.4.tgz#0d808801b6342ad33c91df9d0b44dc09b91e5c3d" + integrity sha1-DYCIAbY0KtM8kd+dC0TcCbkeXD0= + dependencies: + clone-response "1.0.2" + get-stream "3.0.0" + http-cache-semantics "3.8.1" + keyv "3.0.0" + lowercase-keys "1.0.0" + normalize-url "2.0.1" + responselike "1.0.2" + +cacheable-request@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" + integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== + dependencies: + clone-response "^1.0.2" + get-stream "^5.1.0" + http-cache-semantics "^4.0.0" + keyv "^3.0.0" + lowercase-keys "^2.0.0" + normalize-url "^4.1.0" + responselike "^1.0.2" + +call-me-maybe@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" + integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= + +caller-callsite@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" + integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= + dependencies: + callsites "^2.0.0" + +caller-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" + integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= + dependencies: + caller-callsite "^2.0.0" + +callsite@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" + integrity sha1-KAOY5dZkvXQDi28JBRU+borxvCA= + +callsites@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" + integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= + +callsites@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" + integrity sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ== + +camelcase-css@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/camelcase-css/-/camelcase-css-2.0.1.tgz#ee978f6947914cc30c6b44741b6ed1df7f043fd5" + integrity sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA== + +camelcase@^5.0.0, camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +caniuse-api@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" + integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== + dependencies: + browserslist "^4.0.0" + caniuse-lite "^1.0.0" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + +caniuse-lite@^1.0.0, caniuse-lite@^1.0.30000989, caniuse-lite@^1.0.30001039, caniuse-lite@^1.0.30001043: + version "1.0.30001046" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001046.tgz#7a06d3e8fd8aa7f4d21c9a2e313f35f2d06b013e" + integrity sha512-CsGjBRYWG6FvgbyGy+hBbaezpwiqIOLkxQPY4A4Ea49g1eNsnQuESB+n4QM0BKii1j80MyJ26Ir5ywTQkbRE4g== + +ccount@^1.0.0, ccount@^1.0.3: + version "1.0.5" + resolved "https://registry.yarnpkg.com/ccount/-/ccount-1.0.5.tgz#ac82a944905a65ce204eb03023157edf29425c17" + integrity sha512-MOli1W+nfbPLlKEhInaxhRdp7KVLFxLN5ykwzHgLsLI3H3gs5jjFAK4Eoj3OzzcxCtumDaI8onoVDeQyWaNTkw== + +chalk@1.1.3, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + +chalk@2.4.2, chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" + integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +character-entities-html4@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-html4/-/character-entities-html4-1.1.4.tgz#0e64b0a3753ddbf1fdc044c5fd01d0199a02e125" + integrity sha512-HRcDxZuZqMx3/a+qrzxdBKBPUpxWEq9xw2OPZ3a/174ihfrQKVsFhqtthBInFy1zZ9GgZyFXOatNujm8M+El3g== + +character-entities-legacy@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-entities-legacy/-/character-entities-legacy-1.1.4.tgz#94bc1845dce70a5bb9d2ecc748725661293d8fc1" + integrity sha512-3Xnr+7ZFS1uxeiUDvV02wQ+QDbc55o97tIV5zHScSPJpcLm/r0DFPcoY3tYRp+VZukxuMeKgXYmsXQHO05zQeA== + +character-entities@^1.0.0: + version "1.2.4" + resolved "https://registry.yarnpkg.com/character-entities/-/character-entities-1.2.4.tgz#e12c3939b7eaf4e5b15e7ad4c5e28e1d48c5b16b" + integrity sha512-iBMyeEHxfVnIakwOuDXpVkc54HijNgCyQB2w0VfGQThle6NXn50zU6V/u+LDhxHcDUPojn6Kpga3PTAD8W1bQw== + +character-reference-invalid@^1.0.0: + version "1.1.4" + resolved "https://registry.yarnpkg.com/character-reference-invalid/-/character-reference-invalid-1.1.4.tgz#083329cda0eae272ab3dbbf37e9a382c13af1560" + integrity sha512-mKKUkUbhPpQlCOfIuZkvSEgktjPFIsZKRRbC6KWVEMvlzblj3i3asQv5ODsrwt0N3pHAEvjP8KTQPHkp0+6jOg== + +chardet@^0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.4.2.tgz#b5473b33dc97c424e5d98dc87d55d4d8a29c8bf2" + integrity sha1-tUc7M9yXxCTl2Y3IfVXU2KKci/I= + +chardet@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/chardet/-/chardet-0.7.0.tgz#90094849f0937f2eedc2425d0d28a9e5f0cbad9e" + integrity sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA== + +charenc@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/charenc/-/charenc-0.0.2.tgz#c0a1d2f3a7092e03774bfa83f14c0fc5790a8667" + integrity sha1-wKHS86cJLgN3S/qD8UwPxXkKhmc= + +chokidar@3.3.1: + version "3.3.1" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.3.1.tgz#c84e5b3d18d9a4d77558fef466b1bf16bbeb3450" + integrity sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg== + dependencies: + anymatch "~3.1.1" + braces "~3.0.2" + glob-parent "~5.1.0" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.3.0" + optionalDependencies: + fsevents "~2.1.2" + +chokidar@^2.0.4, chokidar@^2.1.8: + version "2.1.8" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" + integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== + dependencies: + anymatch "^2.0.0" + async-each "^1.0.1" + braces "^2.3.2" + glob-parent "^3.1.0" + inherits "^2.0.3" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^3.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.2.1" + upath "^1.1.1" + optionalDependencies: + fsevents "^1.2.7" + +chownr@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.1.4.tgz#6fc9d7b42d32a583596337666e7d08084da2cc6b" + integrity sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg== + +chrome-trace-event@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz#234090ee97c7d4ad1a2c4beae27505deffc608a4" + integrity sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ== + dependencies: + tslib "^1.9.0" + +ci-info@2.0.0, ci-info@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" + integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + +clean-stack@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/clean-stack/-/clean-stack-2.2.0.tgz#ee8472dbb129e727b31e8a10a427dee9dfe4008b" + integrity sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A== + +cli-boxes@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.0.tgz#538ecae8f9c6ca508e3c3c95b453fe93cb4c168d" + integrity sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w== + +cli-cursor@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" + integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= + dependencies: + restore-cursor "^2.0.0" + +cli-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz#264305a7ae490d1d03bf0c9ba7c925d1753af307" + integrity sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw== + dependencies: + restore-cursor "^3.1.0" + +cli-spinners@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" + integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== + +cli-table3@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/cli-table3/-/cli-table3-0.5.1.tgz#0252372d94dfc40dbd8df06005f48f31f656f202" + integrity sha512-7Qg2Jrep1S/+Q3EceiZtQcDPWxhAvBw+ERf1162v4sikJrvojMHFqXt8QIVha8UlH9rgU0BeWPytZ9/TzYqlUw== + dependencies: + object-assign "^4.1.0" + string-width "^2.1.1" + optionalDependencies: + colors "^1.1.2" + +cli-truncate@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-truncate/-/cli-truncate-2.1.0.tgz#c39e28bf05edcde5be3b98992a22deed5a2b93c7" + integrity sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg== + dependencies: + slice-ansi "^3.0.0" + string-width "^4.2.0" + +cli-width@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" + integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== + +clipboardy@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/clipboardy/-/clipboardy-2.3.0.tgz#3c2903650c68e46a91b388985bc2774287dba290" + integrity sha512-mKhiIL2DrQIsuXMgBgnfEHOZOryC7kY7YO//TN6c63wlEm3NG5tz+YgY5rVi29KCmq/QQjKYvM7a19+MDOTHOQ== + dependencies: + arch "^2.1.1" + execa "^1.0.0" + is-wsl "^2.1.1" + +cliui@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" + integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + +cliui@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-5.0.0.tgz#deefcfdb2e800784aa34f46fa08e06851c7bbbc5" + integrity sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA== + dependencies: + string-width "^3.1.0" + strip-ansi "^5.2.0" + wrap-ansi "^5.1.0" + +clone-response@1.0.2, clone-response@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" + integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= + dependencies: + mimic-response "^1.0.0" + +coa@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" + integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== + dependencies: + "@types/q" "^1.5.1" + chalk "^2.4.1" + q "^1.1.2" + +code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + integrity sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c= + +collapse-white-space@^1.0.0, collapse-white-space@^1.0.2: + version "1.0.6" + resolved "https://registry.yarnpkg.com/collapse-white-space/-/collapse-white-space-1.0.6.tgz#e63629c0016665792060dbbeb79c42239d2c5287" + integrity sha512-jEovNnrhMuqyCcjfEJA56v0Xq8SkIoPKDyaHahwo3POf4qcSXqMYuwNcOTzp74vTsR9Tn08z4MxWqAhcekogkQ== + +collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + +color-convert@^1.9.0, color-convert@^1.9.1: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= + +color-name@^1.0.0, color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +color-string@^1.5.2: + version "1.5.3" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.3.tgz#c9bbc5f01b58b5492f3d6857459cb6590ce204cc" + integrity sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw== + dependencies: + color-name "^1.0.0" + simple-swizzle "^0.2.2" + +color@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/color/-/color-3.1.2.tgz#68148e7f85d41ad7649c5fa8c8106f098d229e10" + integrity sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg== + dependencies: + color-convert "^1.9.1" + color-string "^1.5.2" + +colors@^1.1.2: + version "1.4.0" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" + integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== + +comma-separated-tokens@^1.0.0: + version "1.0.8" + resolved "https://registry.yarnpkg.com/comma-separated-tokens/-/comma-separated-tokens-1.0.8.tgz#632b80b6117867a158f1080ad498b2fbe7e3f5ea" + integrity sha512-GHuDRO12Sypu2cV70d1dkA2EUmXHgntrzbpvOB+Qy+49ypNfGgFQIC2fhhXbnyrJRynDCAARsT7Ou0M6hirpfw== + +command-exists@^1.2.4: + version "1.2.9" + resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" + integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== + +commander@^2.11.0, commander@^2.20.0: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +common-tags@^1.8.0: + version "1.8.0" + resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.0.tgz#8e3153e542d4a39e9b10554434afaaf98956a937" + integrity sha512-6P6g0uetGpW/sdyUy/iQQCbFF0kWVMSIVSyYz7Zgjcgh8mgw8PQzDNZeyZ5DQ2gM7LBoZPHmnjz8rUthkBG5tw== + +commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + integrity sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs= + +component-bind@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" + integrity sha1-AMYIq33Nk4l8AAllGx06jh5zu9E= + +component-emitter@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + integrity sha1-E3kY1teCg/ffemt8WmPhQOaUJeY= + +component-emitter@^1.2.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" + integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== + +component-inherit@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" + integrity sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM= + +compressible@~2.0.16: + version "2.0.18" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" + integrity sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg== + dependencies: + mime-db ">= 1.43.0 < 2" + +compression@^1.7.4: + version "1.7.4" + resolved "https://registry.yarnpkg.com/compression/-/compression-1.7.4.tgz#95523eff170ca57c29a0ca41e6fe131f41e5bb8f" + integrity sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ== + dependencies: + accepts "~1.3.5" + bytes "3.0.0" + compressible "~2.0.16" + debug "2.6.9" + on-headers "~1.0.2" + safe-buffer "5.1.2" + vary "~1.1.2" + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= + +concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + +configstore@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f" + integrity sha512-vtv5HtGjcYUgFrXc6Kx747B83MRRVS5R1VTEQoXvuP+kMI+if6uywV0nDGoiydJRy4yk7h9od5Og0kxx4zUXmw== + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +configstore@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-4.0.0.tgz#5933311e95d3687efb592c528b922d9262d227e7" + integrity sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ== + dependencies: + dot-prop "^4.1.0" + graceful-fs "^4.1.2" + make-dir "^1.0.0" + unique-string "^1.0.0" + write-file-atomic "^2.0.0" + xdg-basedir "^3.0.0" + +configstore@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" + integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== + dependencies: + dot-prop "^5.2.0" + graceful-fs "^4.1.2" + make-dir "^3.0.0" + unique-string "^2.0.0" + write-file-atomic "^3.0.0" + xdg-basedir "^4.0.0" + +confusing-browser-globals@^1.0.9: + version "1.0.9" + resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.9.tgz#72bc13b483c0276801681871d4898516f8f54fdd" + integrity sha512-KbS1Y0jMtyPgIxjO7ZzMAuUpAKMt1SzCL9fsrKsX6b0zJPTaT0SiSPmewwVZg9UAO83HVIlEhZF84LIjZ0lmAw== + +connect-history-api-fallback@^1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" + integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== + +console-browserify@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" + integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== + +console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + integrity sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4= + +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= + +contains-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz#fe8cf184ff6670b6baef01a9d4861a5cbec4120a" + integrity sha1-/ozxhP9mcLa67wGp1IYaXL7EEgo= + +content-disposition@0.5.3: + version "0.5.3" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.3.tgz#e130caf7e7279087c5616c2007d0485698984fbd" + integrity sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g== + dependencies: + safe-buffer "5.1.2" + +content-type@^1.0.4, content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== + +convert-hrtime@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/convert-hrtime/-/convert-hrtime-3.0.0.tgz#62c7593f5809ca10be8da858a6d2f702bcda00aa" + integrity sha512-7V+KqSvMiHp8yWDuwfww06XleMWVVB9b9tURBx+G7UTADuo5hYPuowKloz4OzOqbPezxgo+fdQ1522WzPG4OeA== + +convert-source-map@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" + integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== + dependencies: + safe-buffer "~5.1.1" + +cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + integrity sha1-4wOogrNCzD7oylE6eZmXNNqzriw= + +cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + integrity sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s= + +cookie@0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba" + integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg== + +copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + integrity sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A== + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + +copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= + +copyfiles@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.2.0.tgz#d9fc6c06f299337fb7eeb7ea5887e9d7188d9d47" + integrity sha512-iJbHJI+8OKqsq+4JF0rqgRkZzo++jqO6Wf4FUU1JM41cJF6JcY5968XyF4tm3Kkm7ZOMrqlljdm8N9oyY5raGw== + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^0.5.1" + noms "0.0.0" + through2 "^2.0.1" + yargs "^13.2.4" + +core-js-compat@^3.6.2: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.6.5.tgz#2a51d9a4e25dfd6e690251aa81f99e3c05481f1c" + integrity sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng== + dependencies: + browserslist "^4.8.5" + semver "7.0.0" + +core-js-pure@^3.0.0: + version "3.6.5" + resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813" + integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA== + +core-js@^2.4.0, core-js@^2.6.11, core-js@^2.6.5: + version "2.6.11" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.11.tgz#38831469f9922bded8ee21c9dc46985e0399308c" + integrity sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg== + +core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= + +cors@^2.8.5: + version "2.8.5" + resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" + integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== + dependencies: + object-assign "^4" + vary "^1" + +cosmiconfig@^5.0.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" + integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== + dependencies: + import-fresh "^2.0.0" + is-directory "^0.3.1" + js-yaml "^3.13.1" + parse-json "^4.0.0" + +cosmiconfig@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" + integrity sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg== + dependencies: + "@types/parse-json" "^4.0.0" + import-fresh "^3.1.0" + parse-json "^5.0.0" + path-type "^4.0.0" + yaml "^1.7.2" + +create-ecdh@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.3.tgz#c9111b6f33045c4697f144787f9254cdc77c45ff" + integrity sha512-GbEHQPMOswGpKXM9kCWVrremUcBmjteUaQ01T9rkKCPDXfUHX0IoP9LpHYo2NPFampa4e+/pFDc3jQdxrxQLaw== + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + +create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-react-context@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/create-react-context/-/create-react-context-0.3.0.tgz#546dede9dc422def0d3fc2fe03afe0bc0f4f7d8c" + integrity sha512-dNldIoSuNSvlTJ7slIKC/ZFGKexBMBrrcc+TTe1NdmROnaASuLPvqpwj9v4XS4uXZ8+YPu0sNmShX2rXI5LNsw== + dependencies: + gud "^1.0.0" + warning "^4.0.3" + +cross-fetch@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-2.2.2.tgz#a47ff4f7fc712daba8f6a695a11c948440d45723" + integrity sha1-pH/09/xxLauo9qaVoRyUhEDUVyM= + dependencies: + node-fetch "2.1.2" + whatwg-fetch "2.0.4" + +cross-spawn@5.1.0, cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + integrity sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk= + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@6.0.5, cross-spawn@^6.0.0, cross-spawn@^6.0.5: + version "6.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" + integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== + dependencies: + nice-try "^1.0.4" + path-key "^2.0.1" + semver "^5.5.0" + shebang-command "^1.2.0" + which "^1.2.9" + +cross-spawn@^7.0.0: + version "7.0.2" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.2.tgz#d0d7dcfa74e89115c7619f4f721a94e1fdb716d6" + integrity sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw== + dependencies: + path-key "^3.1.0" + shebang-command "^2.0.0" + which "^2.0.1" + +crypt@~0.0.1: + version "0.0.2" + resolved "https://registry.yarnpkg.com/crypt/-/crypt-0.0.2.tgz#88d7ff7ec0dfb86f713dc87bbb42d044d3e6c41b" + integrity sha1-iNf/fsDfuG9xPch7u0LQRNPmxBs= + +crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + +crypto-random-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-1.0.0.tgz#a230f64f568310e1498009940790ec99545bca7e" + integrity sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4= + +crypto-random-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" + integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== + +css-color-names@0.0.4, css-color-names@^0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= + +css-declaration-sorter@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" + integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== + dependencies: + postcss "^7.0.1" + timsort "^0.3.0" + +css-loader@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-1.0.1.tgz#6885bb5233b35ec47b006057da01cc640b6b79fe" + integrity sha512-+ZHAZm/yqvJ2kDtPne3uX0C+Vr3Zn5jFn2N4HywtS5ujwvsVkyg0VArEXpl3BgczDA8anieki1FIzhchX4yrDw== + dependencies: + babel-code-frame "^6.26.0" + css-selector-tokenizer "^0.7.0" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash "^4.17.11" + postcss "^6.0.23" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + +css-select-base-adapter@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" + integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== + +css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + integrity sha1-KzoRBTnFNV8c2NMUYj6HCxIeyFg= + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + +css-select@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" + integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== + dependencies: + boolbase "^1.0.0" + css-what "^3.2.1" + domutils "^1.7.0" + nth-check "^1.0.2" + +css-selector-tokenizer@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.2.tgz#11e5e27c9a48d90284f22d45061c303d7a25ad87" + integrity sha512-yj856NGuAymN6r8bn8/Jl46pR+OC3eEvAhfGYDUe7YPtTPAYrSSw4oAniZ9Y8T5B92hjhwTBLUen0/vKPxf6pw== + dependencies: + cssesc "^3.0.0" + fastparse "^1.1.2" + regexpu-core "^4.6.0" + +css-tree@1.0.0-alpha.37: + version "1.0.0-alpha.37" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" + integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== + dependencies: + mdn-data "2.0.4" + source-map "^0.6.1" + +css-tree@1.0.0-alpha.39: + version "1.0.0-alpha.39" + resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.39.tgz#2bff3ffe1bb3f776cf7eefd91ee5cba77a149eeb" + integrity sha512-7UvkEYgBAHRG9Nt980lYxjsTrCyHFN53ky3wVsDkiMdVqylqRt+Zc+jm5qw7/qyOvN2dHSYtX0e4MbCCExSvnA== + dependencies: + mdn-data "2.0.6" + source-map "^0.6.1" + +css-what@2.1: + version "2.1.3" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2" + integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg== + +css-what@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.2.1.tgz#f4a8f12421064621b456755e34a03a2c22df5da1" + integrity sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw== + +cssesc@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" + integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== + +cssnano-preset-default@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" + integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== + dependencies: + css-declaration-sorter "^4.0.1" + cssnano-util-raw-cache "^4.0.1" + postcss "^7.0.0" + postcss-calc "^7.0.1" + postcss-colormin "^4.0.3" + postcss-convert-values "^4.0.1" + postcss-discard-comments "^4.0.2" + postcss-discard-duplicates "^4.0.2" + postcss-discard-empty "^4.0.1" + postcss-discard-overridden "^4.0.1" + postcss-merge-longhand "^4.0.11" + postcss-merge-rules "^4.0.3" + postcss-minify-font-values "^4.0.2" + postcss-minify-gradients "^4.0.2" + postcss-minify-params "^4.0.2" + postcss-minify-selectors "^4.0.2" + postcss-normalize-charset "^4.0.1" + postcss-normalize-display-values "^4.0.2" + postcss-normalize-positions "^4.0.2" + postcss-normalize-repeat-style "^4.0.2" + postcss-normalize-string "^4.0.2" + postcss-normalize-timing-functions "^4.0.2" + postcss-normalize-unicode "^4.0.1" + postcss-normalize-url "^4.0.1" + postcss-normalize-whitespace "^4.0.2" + postcss-ordered-values "^4.1.2" + postcss-reduce-initial "^4.0.3" + postcss-reduce-transforms "^4.0.2" + postcss-svgo "^4.0.2" + postcss-unique-selectors "^4.0.1" + +cssnano-util-get-arguments@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" + integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= + +cssnano-util-get-match@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" + integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= + +cssnano-util-raw-cache@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" + integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== + dependencies: + postcss "^7.0.0" + +cssnano-util-same-parent@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" + integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== + +cssnano@^4.1.10: + version "4.1.10" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" + integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== + dependencies: + cosmiconfig "^5.0.0" + cssnano-preset-default "^4.0.7" + is-resolvable "^1.0.0" + postcss "^7.0.0" + +csso@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/csso/-/csso-4.0.3.tgz#0d9985dc852c7cc2b2cacfbbe1079014d1a8e903" + integrity sha512-NL3spysxUkcrOgnpsT4Xdl2aiEiBG6bXswAABQVHcMrfjjBisFOKwLDOmf4wf32aPdcJws1zds2B0Rg+jqMyHQ== + dependencies: + css-tree "1.0.0-alpha.39" + +csstype@^2.2.0: + version "2.6.10" + resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.10.tgz#e63af50e66d7c266edb6b32909cfd0aabe03928b" + integrity sha512-D34BqZU4cIlMCY93rZHbrq9pjTAQJ3U8S8rfBqjwHxkGPThWFjzZDQpgMJY0QViLxth6ZKYiwFBo14RdN44U/w== + +currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + integrity sha1-mI3zP+qxke95mmE2nddsF635V+o= + dependencies: + array-find-index "^1.0.1" + +cyclist@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-1.0.1.tgz#596e9698fd0c80e12038c2b82d6eb1b35b6224d9" + integrity sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk= + +damerau-levenshtein@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz#143c1641cb3d85c60c32329e26899adea8701791" + integrity sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug== + +date-fns@^2.11.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/date-fns/-/date-fns-2.12.0.tgz#01754c8a2f3368fc1119cf4625c3dad8c1845ee6" + integrity sha512-qJgn99xxKnFgB1qL4jpxU7Q2t0LOn1p8KMIveef3UZD7kqjT3tpFNNdXJelEHhE+rUgffriXriw/sOSU+cS1Hw== + +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.6, debug@^2.6.9: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== + dependencies: + ms "2.0.0" + +debug@=3.1.0, debug@~3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== + dependencies: + ms "2.0.0" + +debug@^3.0.0, debug@^3.1.0, debug@^3.1.1, debug@^3.2.5, debug@^3.2.6: + version "3.2.6" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.6.tgz#e83d17de16d8a7efb7717edbe5fb10135eee629b" + integrity sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ== + dependencies: + ms "^2.1.1" + +debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@~4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.1.1.tgz#3b72260255109c6b589cee050f1d516139664791" + integrity sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw== + dependencies: + ms "^2.1.1" + +decamelize@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA= + +decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= + +decompress-response@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" + integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= + dependencies: + mimic-response "^1.0.0" + +deep-equal@^1.0.1, deep-equal@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.1.1.tgz#b5c98c942ceffaf7cb051e24e1434a25a2e6076a" + integrity sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g== + dependencies: + is-arguments "^1.0.4" + is-date-object "^1.0.1" + is-regex "^1.0.4" + object-is "^1.0.1" + object-keys "^1.1.1" + regexp.prototype.flags "^1.2.0" + +deep-extend@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" + integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== + +deep-is@~0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" + integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= + +default-gateway@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/default-gateway/-/default-gateway-4.2.0.tgz#167104c7500c2115f6dd69b0a536bb8ed720552b" + integrity sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA== + dependencies: + execa "^1.0.0" + ip-regex "^2.1.0" + +defer-to-connect@^1.0.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" + integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== + +define-properties@^1.1.2, define-properties@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" + integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== + dependencies: + object-keys "^1.0.12" + +define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= + dependencies: + is-descriptor "^0.1.0" + +define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= + dependencies: + is-descriptor "^1.0.0" + +define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + +del@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/del/-/del-4.1.1.tgz#9e8f117222ea44a31ff3a156c049b99052a9f0b4" + integrity sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ== + dependencies: + "@types/glob" "^7.1.1" + globby "^6.1.0" + is-path-cwd "^2.0.0" + is-path-in-cwd "^2.0.0" + p-map "^2.0.0" + pify "^4.0.1" + rimraf "^2.6.3" + +del@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/del/-/del-5.1.0.tgz#d9487c94e367410e6eff2925ee58c0c84a75b3a7" + integrity sha512-wH9xOVHnczo9jN2IW68BabcecVPxacIA3g/7z6vhSU/4stOKQzeCRK0yD0A24WiAAUJmmVpWqrERcTxnLo3AnA== + dependencies: + globby "^10.0.1" + graceful-fs "^4.2.2" + is-glob "^4.0.1" + is-path-cwd "^2.2.0" + is-path-inside "^3.0.1" + p-map "^3.0.0" + rimraf "^3.0.0" + slash "^3.0.0" + +delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o= + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= + +des.js@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" + integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + +destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= + +detab@2.0.3, detab@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detab/-/detab-2.0.3.tgz#33e5dd74d230501bd69985a0d2b9a3382699a130" + integrity sha512-Up8P0clUVwq0FnFjDclzZsy9PadzRn5FFxrr47tQQvMHqyiFYVbpH8oXDzWtF0Q7pYy3l+RPmtBl+BsFF6wH0A== + dependencies: + repeat-string "^1.5.4" + +detect-indent@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.0.0.tgz#0abd0f549f69fc6659a254fe96786186b6f528fd" + integrity sha512-oSyFlqaTHCItVRGK5RmrmjB+CmaMOW7IaNA/kdxqhoa6d17j/5ce9O9eWXmV/KEdRwqpQA+Vqe8a8Bsybu4YnA== + +detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + integrity sha1-+hN8S9aY7fVc1c0CrFWfkaTEups= + +detect-newline@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-1.0.3.tgz#e97b1003877d70c09af1af35bfadff168de4920d" + integrity sha1-6XsQA4d9cMCa8a81v63/Fo3kkg0= + dependencies: + get-stdin "^4.0.1" + minimist "^1.1.0" + +detect-node@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" + integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== + +detect-port-alt@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.3.tgz#a4d2f061d757a034ecf37c514260a98750f2b131" + integrity sha1-pNLwYddXoDTs83xRQmCph1DysTE= + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detect-port-alt@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/detect-port-alt/-/detect-port-alt-1.1.6.tgz#24707deabe932d4a3cf621302027c2b266568275" + integrity sha512-5tQykt+LqfJFBEYaDITx7S7cR7mJ/zQmLXZ2qt5w04ainYZw6tBf9dBunMjVeVOdYVRUzUOE4HkY5J7+uttb5Q== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +detect-port@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/detect-port/-/detect-port-1.3.0.tgz#d9c40e9accadd4df5cac6a782aefd014d573d1f1" + integrity sha512-E+B1gzkl2gqxt1IhUzwjrxBKRqx1UzC3WLONHinn8S3T6lwV/agVCyitiFOsGJ/eYuEUBvD71MZHy3Pv1G9doQ== + dependencies: + address "^1.0.1" + debug "^2.6.0" + +devcert@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/devcert/-/devcert-1.1.0.tgz#255508c20dd21045e3020acf438491b745835dfd" + integrity sha512-ppyIBJueMMisYvJABaXESY10CwEm1pUXoLOm6TeBO2bbDUQE8ZjJPNADlu31I2InL7hduSgratzRG/dHUDF41w== + dependencies: + "@types/configstore" "^2.1.1" + "@types/debug" "^0.0.30" + "@types/get-port" "^3.2.0" + "@types/glob" "^5.0.34" + "@types/lodash" "^4.14.92" + "@types/mkdirp" "^0.5.2" + "@types/node" "^8.5.7" + "@types/rimraf" "^2.0.2" + "@types/tmp" "^0.0.33" + application-config-path "^0.1.0" + command-exists "^1.2.4" + configstore "^3.0.0" + debug "^3.1.0" + eol "^0.9.1" + get-port "^3.2.0" + glob "^7.1.2" + lodash "^4.17.4" + mkdirp "^0.5.1" + password-prompt "^1.0.4" + rimraf "^2.6.2" + sudo-prompt "^8.2.0" + tmp "^0.0.33" + tslib "^1.10.0" + +diff-sequences@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd" + integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg== + +diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + +dir-glob@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + integrity sha512-37qirFDz8cA5fimp9feo43fSuRo2gHwaIn6dXL8Ber1dGwUosDrGZeCCXq57WnIqE4aQ+u3eQZzsk1yOzhdwag== + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + +dir-glob@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" + integrity sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA== + dependencies: + path-type "^4.0.0" + +dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + integrity sha1-s55/HabrCnW6nBcySzR1PEfgZU0= + +dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + integrity sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg== + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + +dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + integrity sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY= + dependencies: + buffer-indexof "^1.0.0" + +doctrine@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz#379dce730f6166f76cefa4e6707a159b02c5a6fa" + integrity sha1-N53Ocw9hZvds76TmcHoVmwLFpvo= + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + +doctrine@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz#5cd01fc101621b42c4cd7f5d1a66243716d3f39d" + integrity sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw== + dependencies: + esutils "^2.0.2" + +doctrine@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-3.0.0.tgz#addebead72a6574db783639dc87a121773973961" + integrity sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w== + dependencies: + esutils "^2.0.2" + +dom-converter@^0.2: + version "0.2.0" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.2.0.tgz#6721a9daee2e293682955b6afe416771627bb768" + integrity sha512-gd3ypIPfOMr9h5jIKq8E3sHOTCjeirnl0WK5ZdS1AW0Odt0b1PaWaHdJ4Qk4klv+YB9aJBS7mESXjFoDQPu6DA== + dependencies: + utila "~0.4" + +dom-helpers@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/dom-helpers/-/dom-helpers-3.4.0.tgz#e9b369700f959f62ecde5a6babde4bccd9169af8" + integrity sha512-LnuPJ+dwqKDIyotW1VzmOZ5TONUN7CwkCR5hrgawTUbkBGYdeoNLZo6nNfGkCrjtE1nXXaj7iMMpDa8/d9WoIA== + dependencies: + "@babel/runtime" "^7.1.2" + +dom-serializer@0: + version "0.2.2" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" + integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== + dependencies: + domelementtype "^2.0.1" + entities "^2.0.0" + +dom-walk@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.2.tgz#0c548bef048f4d1f2a97249002236060daa3fd84" + integrity sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w== + +domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== + +domelementtype@1, domelementtype@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" + integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== + +domelementtype@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.0.1.tgz#1f8bdfe91f5a78063274e803b4bdcedf6e94f94d" + integrity sha512-5HOHUDsYZWV8FGWN0Njbr/Rn7f/eWSQi1v7+HsUVwXgn8nWWlL64zKDkS0n8ZmQ3mlWOMuXOnR+7Nx/5tMO5AQ== + +domhandler@^2.3.0: + version "2.4.2" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" + integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== + dependencies: + domelementtype "1" + +domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + integrity sha1-3NhIiib1Y9YQeeSMn3t+Mjc2gs8= + dependencies: + dom-serializer "0" + domelementtype "1" + +domutils@^1.5.1, domutils@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" + integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== + dependencies: + dom-serializer "0" + domelementtype "1" + +dot-prop@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-4.2.0.tgz#1f19e0c2e1aa0e32797c49799f2837ac6af69c57" + integrity sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ== + dependencies: + is-obj "^1.0.0" + +dot-prop@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.2.0.tgz#c34ecc29556dc45f1f4c22697b6f4904e0cc4fcb" + integrity sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A== + dependencies: + is-obj "^2.0.0" + +dotenv@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" + integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== + +duplexer3@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" + integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= + +duplexer@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/duplexer/-/duplexer-0.1.1.tgz#ace6ff808c1ce66b57d1ebf97977acb02334cfc1" + integrity sha1-rOb/gIwc5mtX0ev5eXessCM0z8E= + +duplexify@^3.4.2, duplexify@^3.6.0: + version "3.7.1" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.7.1.tgz#2a4df5317f6ccfd91f86d6fd25d8d8a103b88309" + integrity sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g== + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + +ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= + +electron-to-chromium@^1.3.247, electron-to-chromium@^1.3.413: + version "1.3.415" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.415.tgz#e50241c1e2553e46cfe956c9d95f9ab3fc9a9134" + integrity sha512-GbtYqKffx3sU8G0HxwXuJFfs58Q7+iwLa5rBwaULwET6jWW8IAQSrVnu7vEfiUIcMVfbYyFg7cw3zdm+EbBJmw== + +elliptic@^6.0.0: + version "6.5.2" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.2.tgz#05c5678d7173c049d8ca433552224a495d0e3762" + integrity sha512-f4x70okzZbIQl/NSRLkI/+tteV/9WqL98zx+SQ69KbXxmVrmjwsNUPn/gYJJ0sHvEak24cZgHIPegRePAtA/xw== + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + +emoji-regex@^7.0.1, emoji-regex@^7.0.2: + version "7.0.3" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" + integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k= + +emojis-list@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" + integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== + +encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= + +end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.4" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" + integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== + dependencies: + once "^1.4.0" + +engine.io-client@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-3.4.1.tgz#922ddb47eecdcb541136a93aeead24718fd05461" + integrity sha512-RJNmA+A9Js+8Aoq815xpGAsgWH1VoSYM//2VgIiu9lNOaHFfLpTjH4tOzktBpjIs5lvOfiNY1dwf+NuU6D38Mw== + dependencies: + component-emitter "1.2.1" + component-inherit "0.0.3" + debug "~4.1.0" + engine.io-parser "~2.2.0" + has-cors "1.1.0" + indexof "0.0.1" + parseqs "0.0.5" + parseuri "0.0.5" + ws "~6.1.0" + xmlhttprequest-ssl "~1.5.4" + yeast "0.1.2" + +engine.io-parser@~2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-2.2.0.tgz#312c4894f57d52a02b420868da7b5c1c84af80ed" + integrity sha512-6I3qD9iUxotsC5HEMuuGsKA0cXerGz+4uGcXQEkfBidgKf0amsjrrtwcbwK/nzpZBxclXlV7gGl9dgWvu4LF6w== + dependencies: + after "0.8.2" + arraybuffer.slice "~0.0.7" + base64-arraybuffer "0.1.5" + blob "0.0.5" + has-binary2 "~1.0.2" + +engine.io@~3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-3.4.1.tgz#a61cbc13fa0cb27d9453fd079a29ee980564b069" + integrity sha512-8MfIfF1/IIfxuc2gv5K+XlFZczw/BpTvqBdl0E2fBLkYQp4miv4LuDTVtYt4yMyaIFLEr4vtaSgV4mjvll8Crw== + dependencies: + accepts "~1.3.4" + base64id "2.0.0" + cookie "0.3.1" + debug "~4.1.0" + engine.io-parser "~2.2.0" + ws "^7.1.2" + +enhanced-resolve@^4.1.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz#2937e2b8066cd0fe7ce0990a98f0d71a35189f66" + integrity sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA== + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.5.0" + tapable "^1.0.0" + +entities@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" + integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== + +entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.0.tgz#68d6084cab1b079767540d80e56a39b423e4abf4" + integrity sha512-D9f7V0JSRwIxlRI2mjMqufDrRDnx8p+eEOz7aUM9SuvF8gsBzra0/6tbjl1m8eQHrZlYj6PxqE00hZ1SAIKPLw== + +envinfo@^7.5.0: + version "7.5.0" + resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.5.0.tgz#91410bb6db262fb4f1409bd506e9ff57e91023f4" + integrity sha512-jDgnJaF/Btomk+m3PZDTTCb5XIIIX3zYItnCRfF73zVgvinLoRomuhi75Y4su0PtQxWz4v66XnLLckyvyJTOIQ== + +eol@^0.9.1: + version "0.9.1" + resolved "https://registry.yarnpkg.com/eol/-/eol-0.9.1.tgz#f701912f504074be35c6117a5c4ade49cd547acd" + integrity sha512-Ds/TEoZjwggRoz/Q2O7SE3i4Jm66mqTDfmdHdq/7DKVk3bro9Q8h6WdXKdPqFLMoqxrDK5SVRzHVPOS6uuGtrg== + +errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + integrity sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg== + dependencies: + prr "~1.0.1" + +error-ex@^1.2.0, error-ex@^1.3.1: + version "1.3.2" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" + integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== + dependencies: + is-arrayish "^0.2.1" + +error-stack-parser@^2.0.0, error-stack-parser@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/error-stack-parser/-/error-stack-parser-2.0.6.tgz#5a99a707bd7a4c58a797902d48d82803ede6aad8" + integrity sha512-d51brTeqC+BHlwF0BhPtcYgF5nlzf9ZZ0ZIUQNZpc9ZB9qw5IJ2diTrBY9jlCJkTLITYPjmiX6OWCwH+fuyNgQ== + dependencies: + stackframe "^1.1.1" + +es-abstract@^1.17.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.2, es-abstract@^1.17.5: + version "1.17.5" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9" + integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg== + dependencies: + es-to-primitive "^1.2.1" + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.1" + is-callable "^1.1.5" + is-regex "^1.0.5" + object-inspect "^1.7.0" + object-keys "^1.1.1" + object.assign "^4.1.0" + string.prototype.trimleft "^2.1.1" + string.prototype.trimright "^2.1.1" + +es-to-primitive@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" + integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== + dependencies: + is-callable "^1.1.4" + is-date-object "^1.0.1" + is-symbol "^1.0.2" + +es6-promisify@^6.0.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-6.1.0.tgz#32e3e7e796f924a6723f09ded24e71100ea57472" + integrity sha512-jCsk2fpfEFusVv1MDkF4Uf0hAzIKNDMgR6LyOIw6a3jwkN1sCgWzuwgnsHY9YSQ8n8P31HoncvE0LC44cpWTrw== + +escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= + +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= + +eslint-config-react-app@^5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/eslint-config-react-app/-/eslint-config-react-app-5.2.1.tgz#698bf7aeee27f0cea0139eaef261c7bf7dd623df" + integrity sha512-pGIZ8t0mFLcV+6ZirRgYK6RVqUIKRIi9MmgzUEmrIknsn3AdO0I32asO86dJgloHq+9ZPl8UIg8mYrvgP5u2wQ== + dependencies: + confusing-browser-globals "^1.0.9" + +eslint-import-resolver-node@^0.3.2: + version "0.3.3" + resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.3.tgz#dbaa52b6b2816b50bc6711af75422de808e98404" + integrity sha512-b8crLDo0M5RSe5YG8Pu2DYBj71tSB6OvXkfzwbJU2w7y8P4/yo0MyF8jU26IEuEuHF2K5/gcAJE3LhQGqBBbVg== + dependencies: + debug "^2.6.9" + resolve "^1.13.1" + +eslint-loader@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/eslint-loader/-/eslint-loader-2.2.1.tgz#28b9c12da54057af0845e2a6112701a2f6bf8337" + integrity sha512-RLgV9hoCVsMLvOxCuNjdqOrUqIj9oJg8hF44vzJaYqsAHuY9G2YAeN3joQ9nxP0p5Th9iFSIpKo+SD8KISxXRg== + dependencies: + loader-fs-cache "^1.0.0" + loader-utils "^1.0.2" + object-assign "^4.0.1" + object-hash "^1.1.4" + rimraf "^2.6.1" + +eslint-module-utils@^2.4.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz#579ebd094f56af7797d19c9866c9c9486629bfa6" + integrity sha512-6j9xxegbqe8/kZY8cYpcp0xhbK0EgJlg3g9mib3/miLaExuuwc3n5UEfSnU6hWMbT0FAYVvDbL9RrRgpUeQIvA== + dependencies: + debug "^2.6.9" + pkg-dir "^2.0.0" + +eslint-plugin-flowtype@^3.13.0: + version "3.13.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-flowtype/-/eslint-plugin-flowtype-3.13.0.tgz#e241ebd39c0ce519345a3f074ec1ebde4cf80f2c" + integrity sha512-bhewp36P+t7cEV0b6OdmoRWJCBYRiHFlqPZAG1oS3SF+Y0LQkeDvFSM4oxoxvczD1OdONCXMlJfQFiWLcV9urw== + dependencies: + lodash "^4.17.15" + +eslint-plugin-graphql@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-graphql/-/eslint-plugin-graphql-3.1.1.tgz#640f7f73f12cee2f7145140bd2ff21694018bff5" + integrity sha512-VNu2AipS8P1BAnE/tcJ2EmBWjFlCnG+1jKdUlFNDQjocWZlFiPpMu9xYNXePoEXK+q+jG51M/6PdhOjEgJZEaQ== + dependencies: + graphql-config "^2.0.1" + lodash "^4.11.1" + +eslint-plugin-import@^2.20.1: + version "2.20.2" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.20.2.tgz#91fc3807ce08be4837141272c8b99073906e588d" + integrity sha512-FObidqpXrR8OnCh4iNsxy+WACztJLXAHBO5hK79T1Hc77PgQZkyDGA5Ag9xAvRpglvLNxhH/zSmZ70/pZ31dHg== + dependencies: + array-includes "^3.0.3" + array.prototype.flat "^1.2.1" + contains-path "^0.1.0" + debug "^2.6.9" + doctrine "1.5.0" + eslint-import-resolver-node "^0.3.2" + eslint-module-utils "^2.4.1" + has "^1.0.3" + minimatch "^3.0.4" + object.values "^1.1.0" + read-pkg-up "^2.0.0" + resolve "^1.12.0" + +eslint-plugin-jsx-a11y@^6.2.3: + version "6.2.3" + resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.2.3.tgz#b872a09d5de51af70a97db1eea7dc933043708aa" + integrity sha512-CawzfGt9w83tyuVekn0GDPU9ytYtxyxyFZ3aSWROmnRRFQFT2BiPJd7jvRdzNDi6oLWaS2asMeYSNMjWTV4eNg== + dependencies: + "@babel/runtime" "^7.4.5" + aria-query "^3.0.0" + array-includes "^3.0.3" + ast-types-flow "^0.0.7" + axobject-query "^2.0.2" + damerau-levenshtein "^1.0.4" + emoji-regex "^7.0.2" + has "^1.0.3" + jsx-ast-utils "^2.2.1" + +eslint-plugin-react-hooks@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-1.7.0.tgz#6210b6d5a37205f0b92858f895a4e827020a7d04" + integrity sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA== + +eslint-plugin-react@^7.19.0: + version "7.19.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.19.0.tgz#6d08f9673628aa69c5559d33489e855d83551666" + integrity sha512-SPT8j72CGuAP+JFbT0sJHOB80TX/pu44gQ4vXH/cq+hQTiY2PuZ6IHkqXJV6x1b28GDdo1lbInjKUrrdUf0LOQ== + dependencies: + array-includes "^3.1.1" + doctrine "^2.1.0" + has "^1.0.3" + jsx-ast-utils "^2.2.3" + object.entries "^1.1.1" + object.fromentries "^2.0.2" + object.values "^1.1.1" + prop-types "^15.7.2" + resolve "^1.15.1" + semver "^6.3.0" + string.prototype.matchall "^4.0.2" + xregexp "^4.3.0" + +eslint-scope@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" + integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-scope@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.0.0.tgz#e87c8887c73e8d1ec84f1ca591645c358bfc8fb9" + integrity sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw== + dependencies: + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint-utils@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" + integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-utils@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.0.0.tgz#7be1cc70f27a72a76cd14aa698bcabed6890e1cd" + integrity sha512-0HCPuJv+7Wv1bACm8y5/ECVfYdfsAm9xmVb7saeFlxjPYALefjhbYoCkBjPdPzGH8wWyTpAez82Fh3VKYEZ8OA== + dependencies: + eslint-visitor-keys "^1.1.0" + +eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz#e2a82cea84ff246ad6fb57f9bde5b46621459ec2" + integrity sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A== + +eslint@^6.8.0: + version "6.8.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz#62262d6729739f9275723824302fb227c8c93ffb" + integrity sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig== + dependencies: + "@babel/code-frame" "^7.0.0" + ajv "^6.10.0" + chalk "^2.1.0" + cross-spawn "^6.0.5" + debug "^4.0.1" + doctrine "^3.0.0" + eslint-scope "^5.0.0" + eslint-utils "^1.4.3" + eslint-visitor-keys "^1.1.0" + espree "^6.1.2" + esquery "^1.0.1" + esutils "^2.0.2" + file-entry-cache "^5.0.1" + functional-red-black-tree "^1.0.1" + glob-parent "^5.0.0" + globals "^12.1.0" + ignore "^4.0.6" + import-fresh "^3.0.0" + imurmurhash "^0.1.4" + inquirer "^7.0.0" + is-glob "^4.0.0" + js-yaml "^3.13.1" + json-stable-stringify-without-jsonify "^1.0.1" + levn "^0.3.0" + lodash "^4.17.14" + minimatch "^3.0.4" + mkdirp "^0.5.1" + natural-compare "^1.4.0" + optionator "^0.8.3" + progress "^2.0.0" + regexpp "^2.0.1" + semver "^6.1.2" + strip-ansi "^5.2.0" + strip-json-comments "^3.0.1" + table "^5.2.3" + text-table "^0.2.0" + v8-compile-cache "^2.0.3" + +espree@^6.1.2: + version "6.2.1" + resolved "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz#77fc72e1fd744a2052c20f38a5b575832e82734a" + integrity sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw== + dependencies: + acorn "^7.1.1" + acorn-jsx "^5.2.0" + eslint-visitor-keys "^1.1.0" + +esprima@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" + integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== + +esquery@^1.0.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz#b78b5828aa8e214e29fb74c4d5b752e1c033da57" + integrity sha512-olpvt9QG0vniUBZspVRN6lwB7hOZoTRtT+jzR+tS4ffYx2mzbw+z0XCOk44aaLYKApNX5nMm+E+P6o25ip/DHQ== + dependencies: + estraverse "^5.1.0" + +esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + integrity sha512-64RBB++fIOAXPw3P9cy89qfMlvZEXZkqqJkjqqXIvzP5ezRZjW+lPWjw35UX/3EhUPFYbg5ER4JYgDw4007/DQ== + dependencies: + estraverse "^4.1.0" + +estraverse@^4.1.0, estraverse@^4.1.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" + integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== + +estraverse@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz#374309d39fd935ae500e7b92e8a6b4c720e59642" + integrity sha512-FyohXK+R0vE+y1nHLoBM7ZTyqRpqAlhdZHCWIWEviFLiGB8b04H6bQs8G+XTthacvT8VuwvteiP7RJSxMs8UEw== + +esutils@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" + integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== + +etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= + +event-source-polyfill@^1.0.12: + version "1.0.12" + resolved "https://registry.yarnpkg.com/event-source-polyfill/-/event-source-polyfill-1.0.12.tgz#38546c4fee76dcadae2560185610ae46c5a39520" + integrity sha512-WjOTn0LIbaN08z/8gNt3GYAomAdm6cZ2lr/QdvhTTEipr5KR6lds2ziUH+p/Iob4Lk6NClKhwPOmn1NjQEcJCg== + +eventemitter3@^3.1.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-3.1.2.tgz#2d3d48f9c346698fce83a85d7d664e98535df6e7" + integrity sha512-tvtQIeLVHjDkJYnzf2dgVMxfuSGJeM/7UCG17TT4EumTfNtF+0nebF/4zWOIkCreAbtNqhGEboB6BWrwqNaw4Q== + +eventemitter3@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.0.tgz#d65176163887ee59f386d64c82610b696a4a74eb" + integrity sha512-qerSRB0p+UDEssxTtm6EDKcE7W4OaoisfIMl4CngyEhjpYglocpNg6UEqCvemdGhosAsg4sO2dXJOdyBifPGCg== + +events@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/events/-/events-3.1.0.tgz#84279af1b34cb75aa88bf5ff291f6d0bd9b31a59" + integrity sha512-Rv+u8MLHNOdMjTAFeT3nCjHn2aGlx435FP/sDHNaRhDEMwyI/aB22Kj2qIN8R0cw3z28psEQLYwxVKLsKrMgWg== + +eventsource@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + integrity sha1-Cs7ehJ7X3RzMMsgRuxG5RNTykjI= + dependencies: + original ">=0.0.5" + +eventsource@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.0.7.tgz#8fbc72c93fcd34088090bc0a4e64f4b5cee6d8d0" + integrity sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ== + dependencies: + original "^1.0.0" + +evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + integrity sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c= + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" + integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== + dependencies: + cross-spawn "^6.0.0" + get-stream "^4.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + +execa@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-3.4.0.tgz#c08ed4550ef65d858fac269ffc8572446f37eb89" + integrity sha512-r9vdGQk4bmCuK1yKQu1KTwcT2zwfWdbdaXfCtAh+5nU/4fSX+JAb7vZGvI5naJrQlvONrEB20jeruESI69530g== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + p-finally "^2.0.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +execa@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-4.0.0.tgz#7f37d6ec17f09e6b8fc53288611695b6d12b9daf" + integrity sha512-JbDUxwV3BoT5ZVXQrSVbAiaXhXUkIwvbhPIwZ0N13kX+5yCzOhUNdocxB/UQRuYOHRYYwAxKYwJYc0T4D12pDA== + dependencies: + cross-spawn "^7.0.0" + get-stream "^5.0.0" + human-signals "^1.1.1" + is-stream "^2.0.0" + merge-stream "^2.0.0" + npm-run-path "^4.0.0" + onetime "^5.1.0" + signal-exit "^3.0.2" + strip-final-newline "^2.0.0" + +expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +expand-tilde@^2.0.0, expand-tilde@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/expand-tilde/-/expand-tilde-2.0.2.tgz#97e801aa052df02454de46b02bf621642cdc8502" + integrity sha1-l+gBqgUt8CRU3kawK/YhZCzchQI= + dependencies: + homedir-polyfill "^1.0.1" + +express-graphql@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/express-graphql/-/express-graphql-0.9.0.tgz#00fd8552f866bac5c9a4612b2c4c82076107b3c2" + integrity sha512-wccd9Lb6oeJ8yHpUs/8LcnGjFUUQYmOG9A5BNLybRdCzGw0PeUrtBxsIR8bfiur6uSW4OvPkVDoYH06z6/N9+w== + dependencies: + accepts "^1.3.7" + content-type "^1.0.4" + http-errors "^1.7.3" + raw-body "^2.4.1" + +express@^4.17.1: + version "4.17.1" + resolved "https://registry.yarnpkg.com/express/-/express-4.17.1.tgz#4491fc38605cf51f8629d39c2b5d026f98a4c134" + integrity sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g== + dependencies: + accepts "~1.3.7" + array-flatten "1.1.1" + body-parser "1.19.0" + content-disposition "0.5.3" + content-type "~1.0.4" + cookie "0.4.0" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "~1.1.2" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.3" + path-to-regexp "0.1.7" + proxy-addr "~2.0.5" + qs "6.7.0" + range-parser "~1.2.1" + safe-buffer "5.1.2" + send "0.17.1" + serve-static "1.14.1" + setprototypeof "1.1.1" + statuses "~1.5.0" + type-is "~1.6.18" + utils-merge "1.0.1" + vary "~1.1.2" + +extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= + dependencies: + is-extendable "^0.1.0" + +extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + +extend@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" + integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== + +external-editor@^2.0.4: + version "2.2.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-2.2.0.tgz#045511cfd8d133f3846673d1047c154e214ad3d5" + integrity sha512-bSn6gvGxKt+b7+6TKEv1ZycHleA7aHhRHyAqJyp5pbUFuYYNIzpZnQDk7AsYckyWdEnTeAnay0aCy2aV6iTk9A== + dependencies: + chardet "^0.4.0" + iconv-lite "^0.4.17" + tmp "^0.0.33" + +external-editor@^3.0.3: + version "3.1.0" + resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" + integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== + dependencies: + chardet "^0.7.0" + iconv-lite "^0.4.24" + tmp "^0.0.33" + +extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +fast-deep-equal@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.1.tgz#545145077c501491e33b15ec408c294376e94ae4" + integrity sha512-8UEa58QDLauDNfpbrX55Q9jrGHThw2ZMdOky5Gl1CDtVeJDPVrG4Jxx1N8jw2gkWaff5UUuX1KJd+9zGe2B+ZA== + +fast-glob@^2.0.2: + version "2.2.7" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" + integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== + dependencies: + "@mrmlnc/readdir-enhanced" "^2.2.1" + "@nodelib/fs.stat" "^1.1.2" + glob-parent "^3.1.0" + is-glob "^4.0.0" + merge2 "^1.2.3" + micromatch "^3.1.10" + +fast-glob@^3.0.3: + version "3.2.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.2.tgz#ade1a9d91148965d4bf7c51f72e1ca662d32e63d" + integrity sha512-UDV82o4uQyljznxwMxyVRJgZZt3O5wENYojjzbaGEGZgeOxkLFf+V4cnUD+krzb2F72E18RhamkMZ7AdeggF7A== + dependencies: + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.0" + merge2 "^1.3.0" + micromatch "^4.0.2" + picomatch "^2.2.1" + +fast-json-stable-stringify@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" + integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== + +fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" + integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= + +fastparse@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" + integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== + +fastq@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/fastq/-/fastq-1.7.0.tgz#fcd79a08c5bd7ec5b55cd3f5c4720db551929801" + integrity sha512-YOadQRnHd5q6PogvAR/x62BGituF2ufiEA6s8aavQANw5YKHERI4AREboX6KotzP8oX2klxYF2wcV/7bn1clfQ== + dependencies: + reusify "^1.0.4" + +faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + integrity sha1-TkkvjQTftviQA1B/btvy1QHnxvQ= + dependencies: + websocket-driver ">=0.5.1" + +faye-websocket@~0.11.0, faye-websocket@~0.11.1: + version "0.11.3" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.3.tgz#5c0e9a8968e8912c286639fde977a8b209f2508e" + integrity sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA== + dependencies: + websocket-driver ">=0.5.1" + +figgy-pudding@^3.5.1: + version "3.5.2" + resolved "https://registry.yarnpkg.com/figgy-pudding/-/figgy-pudding-3.5.2.tgz#b4eee8148abb01dcf1d1ac34367d59e12fa61d6e" + integrity sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw== + +figures@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz#3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962" + integrity sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI= + dependencies: + escape-string-regexp "^1.0.5" + +figures@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz#625c18bd293c604dc4a8ddb2febf0c88341746af" + integrity sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg== + dependencies: + escape-string-regexp "^1.0.5" + +file-entry-cache@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" + integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== + dependencies: + flat-cache "^2.0.1" + +file-loader@^1.1.11: + version "1.1.11" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" + integrity sha512-TGR4HU7HUsGg6GCOPJnFk06RhWgEWFLAGWiT6rcD+GRC2keU3s9RGJ+b3Z6/U73jwwNb2gKLJ7YCrp+jvU4ALg== + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.4.5" + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +filesize@3.5.11: + version "3.5.11" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.5.11.tgz#1919326749433bb3cf77368bd158caabcc19e9ee" + integrity sha512-ZH7loueKBoDb7yG9esn1U+fgq7BzlzW6NRi5/rMdxIZ05dj7GFD/Xc5rq2CDt5Yq86CyfSYVyx4242QQNZbx1g== + +filesize@3.6.1: + version "3.6.1" + resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" + integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== + +fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +finalhandler@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.2.tgz#b7e7d000ffd11938d0fdb053506f6ebabe9f587d" + integrity sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA== + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.3" + statuses "~1.5.0" + unpipe "~1.0.0" + +find-cache-dir@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-0.1.1.tgz#c8defae57c8a52a8a784f9e31c57c742e993a0b9" + integrity sha1-yN765XyKUqinhPnjHFfHQumToLk= + dependencies: + commondir "^1.0.1" + mkdirp "^0.5.1" + pkg-dir "^1.0.0" + +find-cache-dir@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-2.1.0.tgz#8d0f94cd13fe43c6c7c261a0d86115ca918c05f7" + integrity sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ== + dependencies: + commondir "^1.0.1" + make-dir "^2.0.0" + pkg-dir "^3.0.0" + +find-cache-dir@^3.2.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-3.3.1.tgz#89b33fad4a4670daa94f855f7fbe31d6d84fe880" + integrity sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ== + dependencies: + commondir "^1.0.1" + make-dir "^3.0.2" + pkg-dir "^4.1.0" + +find-up@3.0.0, find-up@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" + integrity sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg== + dependencies: + locate-path "^3.0.0" + +find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + integrity sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8= + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + +find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + integrity sha1-RdG35QbHF93UgndaK3eSCjwMV6c= + dependencies: + locate-path "^2.0.0" + +find-up@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-4.1.0.tgz#97afe7d6cdc0bc5928584b7c8d7b16e8a9aa5d19" + integrity sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw== + dependencies: + locate-path "^5.0.0" + path-exists "^4.0.0" + +flat-cache@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" + integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== + dependencies: + flatted "^2.0.0" + rimraf "2.6.3" + write "1.0.3" + +flat@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/flat/-/flat-4.1.0.tgz#090bec8b05e39cba309747f1d588f04dbaf98db2" + integrity sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw== + dependencies: + is-buffer "~2.0.3" + +flatted@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" + integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== + +flush-write-stream@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.1.1.tgz#8dd7d873a1babc207d94ead0c2e0e44276ebf2e8" + integrity sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w== + dependencies: + inherits "^2.0.3" + readable-stream "^2.3.6" + +follow-redirects@1.5.10: + version "1.5.10" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a" + integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ== + dependencies: + debug "=3.1.0" + +follow-redirects@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.11.0.tgz#afa14f08ba12a52963140fe43212658897bc0ecb" + integrity sha512-KZm0V+ll8PfBrKwMzdo5D13b1bur9Iq9Zd/RMmAoQQcl2PxxFml8cxXPaaPYVbV0RjNjq1CU7zIzAOqtUPudmA== + dependencies: + debug "^3.0.0" + +for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= + +fork-ts-checker-webpack-plugin@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/fork-ts-checker-webpack-plugin/-/fork-ts-checker-webpack-plugin-1.5.0.tgz#ce1d77190b44d81a761b10b6284a373795e41f0c" + integrity sha512-zEhg7Hz+KhZlBhILYpXy+Beu96gwvkROWJiTXOCyOOMMrdBIRPvsBpBqgTI4jfJGrJXcqGwJR8zsBGDmzY0jsA== + dependencies: + babel-code-frame "^6.22.0" + chalk "^2.4.1" + chokidar "^2.0.4" + micromatch "^3.1.10" + minimatch "^3.0.4" + semver "^5.6.0" + tapable "^1.0.0" + worker-rpc "^0.1.0" + +forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + integrity sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ= + +fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= + dependencies: + map-cache "^0.2.2" + +fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= + +from2@^2.1.0, from2@^2.1.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + integrity sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8= + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + +fs-exists-cached@1.0.0, fs-exists-cached@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs-exists-cached/-/fs-exists-cached-1.0.0.tgz#cf25554ca050dc49ae6656b41de42258989dcbce" + integrity sha1-zyVVTKBQ3EmuZla0HeQiWJidy84= + +fs-extra@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" + integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== + dependencies: + graceful-fs "^4.2.0" + jsonfile "^4.0.0" + universalify "^0.1.0" + +fs-minipass@^1.2.5: + version "1.2.7" + resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-1.2.7.tgz#ccff8570841e7fe4265693da88936c55aed7f7c7" + integrity sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA== + dependencies: + minipass "^2.6.0" + +fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + integrity sha1-tH31NJPvkR33VzHnCp3tAYnbQMk= + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= + +fsevents@^1.2.7: + version "1.2.12" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.12.tgz#db7e0d8ec3b0b45724fd4d83d43554a8f1f0de5c" + integrity sha512-Ggd/Ktt7E7I8pxZRbGIs7vwqAPscSESMrCSkx2FtWeqmheJgCo2R74fTsZFCifr0VTPwqRpPv17+6b8Zp7th0Q== + dependencies: + bindings "^1.5.0" + nan "^2.12.1" + +fsevents@~2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.1.3.tgz#fb738703ae8d2f9fe900c33836ddebee8b97f23e" + integrity sha512-Auw9a4AxqWpa9GUfj370BMPzzyncfBABW8Mab7BGWBYDj4Isgq+cDKtx0i6u9jcX9pQDnswsaaOTgTmA5pEjuQ== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +functional-red-black-tree@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" + integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc= + +gatsby-cli@^2.11.15: + version "2.11.15" + resolved "https://registry.yarnpkg.com/gatsby-cli/-/gatsby-cli-2.11.15.tgz#d146e10d9e9cd023afb903f375b2fa471b8c8c7d" + integrity sha512-L1g6QcMrCcLx66o3yzhkSHJDrckQDhEn205zwG6IzmDSSyMfPQUkm8jvYdp7TiRh9COcZnms7zBg26A7v96ftg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/runtime" "^7.8.7" + "@hapi/joi" "^15.1.1" + better-opn "^1.0.0" + bluebird "^3.7.2" + chalk "^2.4.2" + clipboardy "^2.2.0" + common-tags "^1.8.0" + configstore "^5.0.1" + convert-hrtime "^3.0.0" + core-js "^2.6.11" + envinfo "^7.5.0" + execa "^3.4.0" + fs-exists-cached "^1.0.0" + fs-extra "^8.1.0" + gatsby-core-utils "^1.1.3" + gatsby-recipes "^0.0.12" + gatsby-telemetry "^1.2.5" + hosted-git-info "^3.0.4" + is-valid-path "^0.1.1" + lodash "^4.17.15" + meant "^1.0.1" + node-fetch "^2.6.0" + object.entries "^1.1.1" + opentracing "^0.14.4" + pretty-error "^2.1.1" + progress "^2.0.3" + prompts "^2.3.1" + react "^16.8.0" + redux "^4.0.5" + resolve-cwd "^2.0.0" + semver "^6.3.0" + signal-exit "^3.0.2" + source-map "0.7.3" + stack-trace "^0.0.10" + strip-ansi "^5.2.0" + update-notifier "^3.0.1" + uuid "3.4.0" + yargs "^12.0.5" + yurnalist "^1.1.2" + optionalDependencies: + ink "^2.7.1" + ink-spinner "^3.0.1" + +gatsby-core-utils@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/gatsby-core-utils/-/gatsby-core-utils-1.1.3.tgz#1011ae6ae252b809c66fe62fe9da9d419bd29650" + integrity sha512-PntSiNCFo1/ZKjp00qgLBj2jdwY7M+maV21RXb1k7Ud9Vv9j0dGQsaVb9YXFTqXAf8bG0Xyqsqq4mPU1iNYLDw== + dependencies: + ci-info "2.0.0" + configstore "^5.0.1" + node-object-hash "^2.0.0" + +gatsby-graphiql-explorer@^0.3.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/gatsby-graphiql-explorer/-/gatsby-graphiql-explorer-0.3.3.tgz#563c08af97e4fb3378617c3bb6a7908b68f67af4" + integrity sha512-C41yQrbLWQcnnRWd3cPG/rumW3l4aEmuTOZ/5vS7lPGF3pSu4/r+8Z90U9uHHnByeHR7eBCgcJ3jg7yfD9IduQ== + dependencies: + "@babel/runtime" "^7.8.7" + +gatsby-link@^2.3.4: + version "2.3.4" + resolved "https://registry.yarnpkg.com/gatsby-link/-/gatsby-link-2.3.4.tgz#111b558077ea4c54073cbba1e7a76155298f4ae1" + integrity sha512-+C58Faa5eLImwnY8Kcl6/lAm/5fZtC1w8H2UhT2BodCCtMq/4kIHGpBrltrcRKkXgrQhHcokg8BqhLJOKTUpVw== + dependencies: + "@babel/runtime" "^7.8.7" + "@types/reach__router" "^1.3.3" + prop-types "^15.7.2" + +gatsby-page-utils@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/gatsby-page-utils/-/gatsby-page-utils-0.1.3.tgz#e6038ab6474f77a71fe65fcb769a04870185fa75" + integrity sha512-X2XfuDGq0nMR53V8TaLtCi7SDGxS8pHPDFiNTRlkGMcDsFZlR/7T6PaIj3Ih062P4hN1GZyemHWDbEIzfOm4BA== + dependencies: + "@babel/runtime" "^7.8.7" + bluebird "^3.7.2" + chokidar "3.3.1" + fs-exists-cached "^1.0.0" + gatsby-core-utils "^1.1.3" + glob "^7.1.6" + lodash "^4.17.15" + micromatch "^3.1.10" + +gatsby-plugin-page-creator@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/gatsby-plugin-page-creator/-/gatsby-plugin-page-creator-2.2.3.tgz#a6e8ef426d2bf447c002976ec9b48ad82ca20760" + integrity sha512-GHrzg1clFvYzO/KgpiEuLQNa9janJEA18xqzV9zrpe9+bEJ/no6jLWQOeyPhhwkKdlLb+XUMJEdX5RspozVZhA== + dependencies: + "@babel/runtime" "^7.8.7" + bluebird "^3.7.2" + fs-exists-cached "^1.0.0" + gatsby-page-utils "^0.1.3" + glob "^7.1.6" + lodash "^4.17.15" + micromatch "^3.1.10" + +gatsby-react-router-scroll@^2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/gatsby-react-router-scroll/-/gatsby-react-router-scroll-2.2.2.tgz#964860034f846e0f0309185988a5e7aa93c9e13f" + integrity sha512-XifGP9mm0epJ3uKZ5VSem271nDDz4PtOpfj7XVtIplq9WnFbxvOT9GGVgXe2oyGNA9uuw/9ZOGR8IsgQprcCYQ== + dependencies: + "@babel/runtime" "^7.8.7" + scroll-behavior "^0.9.12" + warning "^3.0.0" + +gatsby-recipes@^0.0.12: + version "0.0.12" + resolved "https://registry.yarnpkg.com/gatsby-recipes/-/gatsby-recipes-0.0.12.tgz#e43ac0719790d216e5c04f7e5418e70a05a66e38" + integrity sha512-46SxuVAIZP3uC070m3TzAaC+HFFWe8Eoyplli5IuFG3Qh1t5cuv1D95F+f29qVdrgadStj9hkqI+rjJOSjNv8w== + dependencies: + "@babel/core" "^7.8.7" + "@babel/standalone" "^7.9.5" + "@hapi/joi" "^15.1.1" + "@mdx-js/mdx" "^1.5.8" + "@mdx-js/react" "^1.5.8" + "@mdx-js/runtime" "^1.5.8" + acorn "^7.1.1" + acorn-jsx "^5.2.0" + babel-core "7.0.0-bridge.0" + babel-eslint "^10.1.0" + babel-loader "^8.0.6" + babel-plugin-add-module-exports "^0.3.3" + babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-remove-graphql-queries "^2.8.3" + babel-preset-gatsby "^0.3.4" + cors "^2.8.5" + detect-port "^1.3.0" + event-source-polyfill "^1.0.12" + execa "^4.0.0" + express "^4.17.1" + express-graphql "^0.9.0" + fs-extra "^8.1.0" + gatsby-core-utils "^1.1.3" + gatsby-telemetry "^1.2.5" + glob "^7.1.6" + graphql "^14.6.0" + graphql-subscriptions "^1.1.0" + graphql-type-json "^0.3.1" + html-tag-names "^1.1.5" + humanize-list "^1.0.1" + import-jsx "^4.0.0" + ink-box "^1.0.0" + ink-link "^1.0.0" + ink-select-input "^3.1.2" + is-blank "^2.1.0" + is-newline "^1.0.0" + is-relative "^1.0.0" + is-string "^1.0.5" + is-url "^1.2.4" + jest-diff "^25.3.0" + lodash "^4.17.15" + mkdirp "^0.5.1" + pkg-dir "^4.2.0" + prettier "^2.0.4" + remark-stringify "^8.0.0" + single-trailing-newline "^1.0.0" + style-to-object "^0.3.0" + subscriptions-transport-ws "^0.9.16" + svg-tag-names "^2.0.1" + unist-util-remove "^2.0.0" + unist-util-visit "^2.0.2" + url-loader "^1.1.2" + urql "^1.9.5" + ws "^7.2.3" + xstate "^4.8.0" + +gatsby-telemetry@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/gatsby-telemetry/-/gatsby-telemetry-1.2.5.tgz#e486b2306550cb6bd1c9919ef468d98c5957e941" + integrity sha512-FK/Y1VICsWEFWYLawu3hUF4K+/D1amh6Wmco8oKNGK6+uV6ZjLdGUInmLP1DmpC2O932DuHYr3zjbqta5+6+bg== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/runtime" "^7.8.7" + bluebird "^3.7.2" + boxen "^4.2.0" + configstore "^5.0.1" + envinfo "^7.5.0" + fs-extra "^8.1.0" + gatsby-core-utils "^1.1.3" + git-up "4.0.1" + is-docker "2.0.0" + lodash "^4.17.15" + node-fetch "2.6.0" + resolve-cwd "^2.0.0" + source-map "^0.7.3" + stack-trace "^0.0.10" + stack-utils "1.0.2" + uuid "3.4.0" + +gatsby@^2.20.29: + version "2.20.29" + resolved "https://registry.yarnpkg.com/gatsby/-/gatsby-2.20.29.tgz#6f19309e911684599577dc6924961e058d123909" + integrity sha512-Bk0HPaxQGSC8RHykg2i6ypKCsTQzKnzpQ+lkz56TMSggcifdQDwZbJtYwI/qr4Se4RJHQmEIjJq6kN79qQcOvQ== + dependencies: + "@babel/code-frame" "^7.8.3" + "@babel/core" "^7.8.7" + "@babel/parser" "^7.8.8" + "@babel/polyfill" "^7.8.7" + "@babel/runtime" "^7.8.7" + "@babel/traverse" "^7.8.6" + "@hapi/joi" "^15.1.1" + "@mikaelkristiansson/domready" "^1.0.10" + "@pieh/friendly-errors-webpack-plugin" "1.7.0-chalk-2" + "@pmmmwh/react-refresh-webpack-plugin" "^0.2.0" + "@reach/router" "^1.3.3" + "@typescript-eslint/eslint-plugin" "^2.24.0" + "@typescript-eslint/parser" "^2.24.0" + address "1.1.2" + autoprefixer "^9.7.4" + axios "^0.19.2" + babel-core "7.0.0-bridge.0" + babel-eslint "^10.1.0" + babel-loader "^8.0.6" + babel-plugin-add-module-exports "^0.3.3" + babel-plugin-dynamic-import-node "^2.3.0" + babel-plugin-remove-graphql-queries "^2.8.3" + babel-preset-gatsby "^0.3.4" + better-opn "1.0.0" + better-queue "^3.8.10" + bluebird "^3.7.2" + browserslist "^4.9.1" + cache-manager "^2.11.1" + cache-manager-fs-hash "^0.0.7" + chalk "^2.4.2" + chokidar "3.3.1" + common-tags "^1.8.0" + compression "^1.7.4" + convert-hrtime "^3.0.0" + copyfiles "^2.2.0" + core-js "^2.6.11" + cors "^2.8.5" + css-loader "^1.0.1" + date-fns "^2.11.0" + debug "^3.2.6" + del "^5.1.0" + detect-port "^1.3.0" + devcert "^1.1.0" + dotenv "^8.2.0" + eslint "^6.8.0" + eslint-config-react-app "^5.2.0" + eslint-loader "^2.2.1" + eslint-plugin-flowtype "^3.13.0" + eslint-plugin-graphql "^3.1.1" + eslint-plugin-import "^2.20.1" + eslint-plugin-jsx-a11y "^6.2.3" + eslint-plugin-react "^7.19.0" + eslint-plugin-react-hooks "^1.7.0" + event-source-polyfill "^1.0.12" + express "^4.17.1" + express-graphql "^0.9.0" + fast-levenshtein "^2.0.6" + file-loader "^1.1.11" + flat "^4.1.0" + fs-exists-cached "1.0.0" + fs-extra "^8.1.0" + gatsby-cli "^2.11.15" + gatsby-core-utils "^1.1.3" + gatsby-graphiql-explorer "^0.3.3" + gatsby-link "^2.3.4" + gatsby-plugin-page-creator "^2.2.3" + gatsby-react-router-scroll "^2.2.2" + gatsby-telemetry "^1.2.5" + glob "^7.1.6" + got "8.3.2" + graphql "^14.6.0" + graphql-compose "^6.3.8" + graphql-playground-middleware-express "^1.7.12" + hasha "^5.2.0" + invariant "^2.2.4" + is-relative "^1.0.0" + is-relative-url "^3.0.0" + is-wsl "^2.1.1" + jest-worker "^24.9.0" + json-loader "^0.5.7" + json-stringify-safe "^5.0.1" + latest-version "5.1.0" + lodash "^4.17.15" + lokijs "^1.5.8" + md5 "^2.2.1" + md5-file "^3.2.3" + micromatch "^3.1.10" + mime "^2.4.4" + mini-css-extract-plugin "^0.8.2" + mitt "^1.2.0" + mkdirp "^0.5.1" + moment "^2.24.0" + name-all-modules-plugin "^1.0.1" + normalize-path "^2.1.1" + null-loader "^3.0.0" + opentracing "^0.14.4" + optimize-css-assets-webpack-plugin "^5.0.3" + p-defer "^3.0.0" + parseurl "^1.3.3" + physical-cpu-count "^2.0.0" + pnp-webpack-plugin "^1.6.4" + postcss-flexbugs-fixes "^4.2.0" + postcss-loader "^3.0.0" + prompts "^2.3.1" + prop-types "^15.7.2" + raw-loader "^0.5.1" + react-dev-utils "^4.2.3" + react-error-overlay "^3.0.0" + react-hot-loader "^4.12.20" + react-refresh "^0.7.0" + redux "^4.0.5" + redux-thunk "^2.3.0" + semver "^5.7.1" + shallow-compare "^1.2.2" + sift "^5.1.0" + signal-exit "^3.0.2" + slugify "^1.4.0" + socket.io "^2.3.0" + stack-trace "^0.0.10" + string-similarity "^1.2.2" + style-loader "^0.23.1" + terser-webpack-plugin "^1.4.3" + "true-case-path" "^2.2.1" + type-of "^2.0.1" + url-loader "^1.1.2" + util.promisify "^1.0.1" + uuid "^3.4.0" + v8-compile-cache "^1.1.2" + webpack "~4.42.0" + webpack-dev-middleware "^3.7.2" + webpack-dev-server "^3.10.3" + webpack-hot-middleware "^2.25.0" + webpack-merge "^4.2.2" + webpack-stats-plugin "^0.3.1" + xstate "^4.8.0" + yaml-loader "^0.5.0" + +gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + integrity sha1-LANAXHU4w51+s3sxcCLjJfsBi/c= + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + +gensync@^1.0.0-beta.1: + version "1.0.0-beta.1" + resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.1.tgz#58f4361ff987e5ff6e1e7a210827aa371eaac269" + integrity sha512-r8EC6NO1sngH/zdD9fiRDLdcgnbayXah+mLgManTaIZJqEC1MZstmnox8KpnI2/fxQwrp5OpCOYWLp4rBl4Jcg== + +get-caller-file@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" + integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== + +get-caller-file@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-port@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" + integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= + +get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + integrity sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4= + +get-stream@3.0.0, get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + integrity sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ= + +get-stream@^4.0.0, get-stream@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" + integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== + dependencies: + pump "^3.0.0" + +get-stream@^5.0.0, get-stream@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.1.0.tgz#01203cdc92597f9b909067c3e656cc1f4d3c4dc9" + integrity sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw== + dependencies: + pump "^3.0.0" + +get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= + +git-up@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/git-up/-/git-up-4.0.1.tgz#cb2ef086653640e721d2042fe3104857d89007c0" + integrity sha512-LFTZZrBlrCrGCG07/dm1aCjjpL1z9L3+5aEeI9SBhAqSc+kiA9Or1bgZhQFNppJX6h/f5McrvJt1mQXTFm6Qrw== + dependencies: + is-ssh "^1.3.0" + parse-url "^5.0.0" + +glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + +glob-parent@^5.0.0, glob-parent@^5.1.0, glob-parent@~5.1.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz#b6c1ef417c4e5663ea498f1c45afac6916bbc229" + integrity sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ== + dependencies: + is-glob "^4.0.1" + +glob-to-regexp@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" + integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= + +glob@^7.0.3, glob@^7.0.5, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: + version "7.1.6" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" + integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +global-dirs@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-0.1.1.tgz#b319c0dd4607f353f3be9cca4c72fc148c49f445" + integrity sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU= + dependencies: + ini "^1.3.4" + +global-modules@1.0.0, global-modules@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-1.0.0.tgz#6d770f0eb523ac78164d72b5e71a8877265cc3ea" + integrity sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg== + dependencies: + global-prefix "^1.0.1" + is-windows "^1.0.1" + resolve-dir "^1.0.0" + +global-modules@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/global-modules/-/global-modules-2.0.0.tgz#997605ad2345f27f51539bea26574421215c7780" + integrity sha512-NGbfmJBp9x8IxyJSd1P+otYK8vonoJactOogrVfFRIAEY1ukil8RSKDz2Yo7wh1oihl51l/r6W4epkeKJHqL8A== + dependencies: + global-prefix "^3.0.0" + +global-prefix@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-1.0.2.tgz#dbf743c6c14992593c655568cb66ed32c0122ebe" + integrity sha1-2/dDxsFJklk8ZVVoy2btMsASLr4= + dependencies: + expand-tilde "^2.0.2" + homedir-polyfill "^1.0.1" + ini "^1.3.4" + is-windows "^1.0.1" + which "^1.2.14" + +global-prefix@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/global-prefix/-/global-prefix-3.0.0.tgz#fc85f73064df69f50421f47f883fe5b913ba9b97" + integrity sha512-awConJSVCHVGND6x3tmMaKcQvwXLhjdkmomy2W+Goaui8YPgYgXJZewhg3fWC+DlfqqQuWg8AwqjGTD2nAPVWg== + dependencies: + ini "^1.3.5" + kind-of "^6.0.2" + which "^1.3.1" + +global@^4.3.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/global/-/global-4.4.0.tgz#3e7b105179006a323ed71aafca3e9c57a5cc6406" + integrity sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w== + dependencies: + min-document "^2.19.0" + process "^0.11.10" + +globals@^11.1.0: + version "11.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" + integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== + +globals@^12.1.0: + version "12.4.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz#a18813576a41b00a24a97e7f815918c2e19925f8" + integrity sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg== + dependencies: + type-fest "^0.8.1" + +globby@8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-8.0.2.tgz#5697619ccd95c5275dbb2d6faa42087c1a941d8d" + integrity sha512-yTzMmKygLp8RUpG1Ymu2VXPSJQZjNAZPD4ywgYEaG7e4tBJeUQBO8OpXrf1RCNcEs5alsoJYPAMiIHP0cmeC7w== + dependencies: + array-union "^1.0.1" + dir-glob "2.0.0" + fast-glob "^2.0.2" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + +globby@^10.0.1: + version "10.0.2" + resolved "https://registry.yarnpkg.com/globby/-/globby-10.0.2.tgz#277593e745acaa4646c3ab411289ec47a0392543" + integrity sha512-7dUi7RvCoT/xast/o/dLN53oqND4yk0nsHkhRgn9w65C4PofCLOoJ39iSOg+qVDdWQPIEj+eszMHQ+aLVwwQSg== + dependencies: + "@types/glob" "^7.1.1" + array-union "^2.1.0" + dir-glob "^3.0.1" + fast-glob "^3.0.3" + glob "^7.1.3" + ignore "^5.1.1" + merge2 "^1.2.3" + slash "^3.0.0" + +globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + integrity sha1-9abXDoOV4hyFj7BInWTfAkJNUGw= + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + +got@8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/got/-/got-8.3.2.tgz#1d23f64390e97f776cac52e5b936e5f514d2e937" + integrity sha512-qjUJ5U/hawxosMryILofZCkm3C84PLJS/0grRIpjAwu+Lkxxj5cxeCU25BG0/3mDSpXKTyZr8oh8wIgLaH0QCw== + dependencies: + "@sindresorhus/is" "^0.7.0" + cacheable-request "^2.1.1" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^3.0.0" + into-stream "^3.1.0" + is-retry-allowed "^1.1.0" + isurl "^1.0.0-alpha5" + lowercase-keys "^1.0.0" + mimic-response "^1.0.0" + p-cancelable "^0.4.0" + p-timeout "^2.0.1" + pify "^3.0.0" + safe-buffer "^5.1.1" + timed-out "^4.0.1" + url-parse-lax "^3.0.0" + url-to-options "^1.0.1" + +got@^9.6.0: + version "9.6.0" + resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" + integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== + dependencies: + "@sindresorhus/is" "^0.14.0" + "@szmarczak/http-timer" "^1.1.2" + cacheable-request "^6.0.0" + decompress-response "^3.3.0" + duplexer3 "^0.1.4" + get-stream "^4.1.0" + lowercase-keys "^1.0.1" + mimic-response "^1.0.1" + p-cancelable "^1.0.0" + to-readable-stream "^1.0.0" + url-parse-lax "^3.0.0" + +graceful-fs@^4.1.11, graceful-fs@^4.1.15, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, graceful-fs@^4.2.2: + version "4.2.3" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.3.tgz#4a12ff1b60376ef09862c2093edd908328be8423" + integrity sha512-a30VEBm4PEdx1dRB7MFK7BejejvCvBronbLjht+sHuGYj8PHs7M/5Z+rt5lw551vZ7yfTCj4Vuyy3mSJytDWRQ== + +graphql-compose@^6.3.8: + version "6.3.8" + resolved "https://registry.yarnpkg.com/graphql-compose/-/graphql-compose-6.3.8.tgz#9f82a85d5001a83adf1f7c4d3b5e5f72c432a062" + integrity sha512-o0/jzQEMIpSjryLKwmD1vGrCubiPxD0LxlGTgWDSu38TBepu2GhugC9gYgTEbtiCZAHPtvkZ90SzzABOWZyQLA== + dependencies: + graphql-type-json "^0.2.4" + object-path "^0.11.4" + +graphql-config@^2.0.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/graphql-config/-/graphql-config-2.2.2.tgz#a4b577826bba9b83e7b0f6cd617be43ca67da045" + integrity sha512-mtv1ejPyyR2mJUUZNhljggU+B/Xl8tJJWf+h145hB+1Y48acSghFalhNtXfPBcYl2tJzpb+lGxfj3O7OjaiMgw== + dependencies: + graphql-import "^0.7.1" + graphql-request "^1.5.0" + js-yaml "^3.10.0" + lodash "^4.17.4" + minimatch "^3.0.4" + +graphql-import@^0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/graphql-import/-/graphql-import-0.7.1.tgz#4add8d91a5f752d764b0a4a7a461fcd93136f223" + integrity sha512-YpwpaPjRUVlw2SN3OPljpWbVRWAhMAyfSba5U47qGMOSsPLi2gYeJtngGpymjm9nk57RFWEpjqwh4+dpYuFAPw== + dependencies: + lodash "^4.17.4" + resolve-from "^4.0.0" + +graphql-playground-html@^1.6.19: + version "1.6.19" + resolved "https://registry.yarnpkg.com/graphql-playground-html/-/graphql-playground-html-1.6.19.tgz#3883ecf5e8c18b3c0f08145b5417b9c01a1f0bef" + integrity sha512-cLAqoOlxHbGj/LBpr4l2BE9qXf3g8ShjQqU2daVueITI/3wIkcDQTaQaQp+HWv0uaX0dCsgMCFW/TooLj8yJOg== + +graphql-playground-middleware-express@^1.7.12: + version "1.7.14" + resolved "https://registry.yarnpkg.com/graphql-playground-middleware-express/-/graphql-playground-middleware-express-1.7.14.tgz#19ec806c54e3d8c213e1bf00088e9e236f49b258" + integrity sha512-EqoAhbRBd7rEEEDFfvECQVmZnC4cOEmRc5goiiZldozt2GZB2UBK3/7p0DAtflg6S1w6SNUR8Tg9cDLjiL1Dew== + dependencies: + graphql-playground-html "^1.6.19" + +graphql-request@^1.5.0: + version "1.8.2" + resolved "https://registry.yarnpkg.com/graphql-request/-/graphql-request-1.8.2.tgz#398d10ae15c585676741bde3fc01d5ca948f8fbe" + integrity sha512-dDX2M+VMsxXFCmUX0Vo0TopIZIX4ggzOtiCsThgtrKR4niiaagsGTDIHj3fsOMFETpa064vzovI+4YV4QnMbcg== + dependencies: + cross-fetch "2.2.2" + +graphql-subscriptions@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/graphql-subscriptions/-/graphql-subscriptions-1.1.0.tgz#5f2fa4233eda44cf7570526adfcf3c16937aef11" + integrity sha512-6WzlBFC0lWmXJbIVE8OgFgXIP4RJi3OQgTPa0DVMsDXdpRDjTsM1K9wfl5HSYX7R87QAGlvcv2Y4BIZa/ItonA== + dependencies: + iterall "^1.2.1" + +graphql-type-json@^0.2.4: + version "0.2.4" + resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.2.4.tgz#545af27903e40c061edd30840a272ea0a49992f9" + integrity sha512-/tq02ayMQjrG4oDFDRLLrPk0KvJXue0nVXoItBe7uAdbNXjQUu+HYCBdAmPLQoseVzUKKMzrhq2P/sfI76ON6w== + +graphql-type-json@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/graphql-type-json/-/graphql-type-json-0.3.1.tgz#47fca2b1fa7adc0758d165b33580d7be7a6cf548" + integrity sha512-1lPkUXQ2L8o+ERLzVAuc3rzc/E6pGF+6HnjihCVTK0VzR0jCuUd92FqNxoHdfILXqOn2L6b4y47TBxiPyieUVA== + +graphql@^14.6.0: + version "14.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-14.6.0.tgz#57822297111e874ea12f5cd4419616930cd83e49" + integrity sha512-VKzfvHEKybTKjQVpTFrA5yUq2S9ihcZvfJAtsDBBCuV6wauPu1xl/f9ehgVf0FcEJJs4vz6ysb/ZMkGigQZseg== + dependencies: + iterall "^1.2.2" + +gud@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/gud/-/gud-1.0.0.tgz#a489581b17e6a70beca9abe3ae57de7a499852c0" + integrity sha512-zGEOVKFM5sVPPrYs7J5/hYEw2Pof8KCyOwyhG8sAF26mCAeUFAcYPu1mwB7hhpIP29zOIBaDqwuHdLp0jvZXjw== + +gzip-size@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-3.0.0.tgz#546188e9bdc337f673772f81660464b389dce520" + integrity sha1-VGGI6b3DN/Zzdy+BZgRks4nc5SA= + dependencies: + duplexer "^0.1.1" + +gzip-size@5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/gzip-size/-/gzip-size-5.1.1.tgz#cb9bee692f87c0612b232840a873904e4c135274" + integrity sha512-FNHi6mmoHvs1mxZAds4PpdCS6QG8B4C1krxJsMutgxl5t3+GlRTzzI3NEkifXx2pVsOvJdOGSmIgDhQ55FwdPA== + dependencies: + duplexer "^0.1.1" + pify "^4.0.1" + +handle-thing@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-2.0.1.tgz#857f79ce359580c340d43081cc648970d0bb234e" + integrity sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg== + +has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= + dependencies: + ansi-regex "^2.0.0" + +has-binary2@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-binary2/-/has-binary2-1.0.3.tgz#7776ac627f3ea77250cfc332dab7ddf5e4f5d11d" + integrity sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw== + dependencies: + isarray "2.0.1" + +has-cors@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" + integrity sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk= + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-symbol-support-x@^1.4.1: + version "1.4.2" + resolved "https://registry.yarnpkg.com/has-symbol-support-x/-/has-symbol-support-x-1.4.2.tgz#1409f98bc00247da45da67cee0a36f282ff26455" + integrity sha512-3ToOva++HaW+eCpgqZrCfN51IPB+7bJNVT6CUATzueB5Heb8o6Nam0V3HG5dlDvZU1Gn5QLcbahiKw/XVk5JJw== + +has-symbols@^1.0.0, has-symbols@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" + integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== + +has-to-string-tag-x@^1.2.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/has-to-string-tag-x/-/has-to-string-tag-x-1.4.1.tgz#a045ab383d7b4b2012a00148ab0aa5f290044d4d" + integrity sha512-vdbKfmw+3LoOYVr+mtxHaX5a96+0f3DljYd8JOqvOLsf5mw2Otda2qCDT9qRqLAhrjyQ0h7ual5nOiASpsGNFw== + dependencies: + has-symbol-support-x "^1.4.1" + +has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + integrity sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk= + +has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + +has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + +has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= + +has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +has-yarn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" + integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== + +has@^1.0.0, has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + integrity sha1-X8hoaEfs1zSZQDMZprCj8/auSRg= + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +hasha@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/hasha/-/hasha-5.2.0.tgz#33094d1f69c40a4a6ac7be53d5fe3ff95a269e0c" + integrity sha512-2W+jKdQbAdSIrggA8Q35Br8qKadTrqCTC8+XZvBWepKDK6m9XkX6Iz1a2yh2KP01kzAR/dpuMeUnocoLYDcskw== + dependencies: + is-stream "^2.0.0" + type-fest "^0.8.0" + +hast-to-hyperscript@^7.0.0: + version "7.0.4" + resolved "https://registry.yarnpkg.com/hast-to-hyperscript/-/hast-to-hyperscript-7.0.4.tgz#7c4c037d9a8ea19b0a3fdb676a26448ad922353d" + integrity sha512-vmwriQ2H0RPS9ho4Kkbf3n3lY436QKLq6VaGA1pzBh36hBi3tm1DO9bR+kaJIbpT10UqaANDkMjxvjVfr+cnOA== + dependencies: + comma-separated-tokens "^1.0.0" + property-information "^5.3.0" + space-separated-tokens "^1.0.0" + style-to-object "^0.2.1" + unist-util-is "^3.0.0" + web-namespaces "^1.1.2" + +hast-util-from-parse5@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/hast-util-from-parse5/-/hast-util-from-parse5-5.0.3.tgz#3089dc0ee2ccf6ec8bc416919b51a54a589e097c" + integrity sha512-gOc8UB99F6eWVWFtM9jUikjN7QkWxB3nY0df5Z0Zq1/Nkwl5V4hAAsl0tmwlgWl/1shlTF8DnNYLO8X6wRV9pA== + dependencies: + ccount "^1.0.3" + hastscript "^5.0.0" + property-information "^5.0.0" + web-namespaces "^1.1.2" + xtend "^4.0.1" + +hast-util-parse-selector@^2.0.0: + version "2.2.4" + resolved "https://registry.yarnpkg.com/hast-util-parse-selector/-/hast-util-parse-selector-2.2.4.tgz#60c99d0b519e12ab4ed32e58f150ec3f61ed1974" + integrity sha512-gW3sxfynIvZApL4L07wryYF4+C9VvH3AUi7LAnVXV4MneGEgwOByXvFo18BgmTWnm7oHAe874jKbIB1YhHSIzA== + +hast-util-raw@5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/hast-util-raw/-/hast-util-raw-5.0.2.tgz#62288f311ec2f35e066a30d5e0277f963ad43a67" + integrity sha512-3ReYQcIHmzSgMq8UrDZHFL0oGlbuVGdLKs8s/Fe8BfHFAyZDrdv1fy/AGn+Fim8ZuvAHcJ61NQhVMtyfHviT/g== + dependencies: + hast-util-from-parse5 "^5.0.0" + hast-util-to-parse5 "^5.0.0" + html-void-elements "^1.0.0" + parse5 "^5.0.0" + unist-util-position "^3.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hast-util-to-parse5@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/hast-util-to-parse5/-/hast-util-to-parse5-5.1.2.tgz#09d27bee9ba9348ea05a6cfcc44e02f9083969b6" + integrity sha512-ZgYLJu9lYknMfsBY0rBV4TJn2xiwF1fXFFjbP6EE7S0s5mS8LIKBVWzhA1MeIs1SWW6GnnE4In6c3kPb+CWhog== + dependencies: + hast-to-hyperscript "^7.0.0" + property-information "^5.0.0" + web-namespaces "^1.0.0" + xtend "^4.0.0" + zwitch "^1.0.0" + +hastscript@^5.0.0: + version "5.1.2" + resolved "https://registry.yarnpkg.com/hastscript/-/hastscript-5.1.2.tgz#bde2c2e56d04c62dd24e8c5df288d050a355fb8a" + integrity sha512-WlztFuK+Lrvi3EggsqOkQ52rKbxkXL3RwB6t5lwoa8QLMemoWfBuL43eDrwOamJyR7uKQKdmKYaBH1NZBiIRrQ== + dependencies: + comma-separated-tokens "^1.0.0" + hast-util-parse-selector "^2.0.0" + property-information "^5.0.0" + space-separated-tokens "^1.0.0" + +hex-color-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" + integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== + +hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.3.0: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +homedir-polyfill@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/homedir-polyfill/-/homedir-polyfill-1.0.3.tgz#743298cef4e5af3e194161fbadcc2151d3a058e8" + integrity sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA== + dependencies: + parse-passwd "^1.0.0" + +hosted-git-info@^2.1.4: + version "2.8.8" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" + integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== + +hosted-git-info@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.4.tgz#be4973eb1fd2737b11c9c7c19380739bb249f60d" + integrity sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ== + dependencies: + lru-cache "^5.1.1" + +hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + integrity sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI= + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + +hsl-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" + integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= + +hsla-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" + integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= + +html-comment-regex@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" + integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== + +html-entities@^1.2.0, html-entities@^1.2.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.3.1.tgz#fb9a1a4b5b14c5daba82d3e34c6ae4fe701a0e44" + integrity sha512-rhE/4Z3hIhzHAUKbW8jVcCyuT5oJCXXqhN/6mXXVCpzTmvJnoH2HL/bt3EZ6p55jbFJBeAe1ZNpL5BugLujxNA== + +html-tag-names@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/html-tag-names/-/html-tag-names-1.1.5.tgz#f537420c16769511283f8ae1681785fbc89ee0a9" + integrity sha512-aI5tKwNTBzOZApHIynaAwecLBv8TlZTEy/P4Sj2SzzAhBrGuI8yGZ0UIXVPQzOHGS+to2mjb04iy6VWt/8+d8A== + +html-void-elements@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/html-void-elements/-/html-void-elements-1.0.5.tgz#ce9159494e86d95e45795b166c2021c2cfca4483" + integrity sha512-uE/TxKuyNIcx44cIWnjr/rfIATDH7ZaOMmstu0CwhFG1Dunhlp4OC6/NMbhiwoq5BpW0ubi303qnEk/PZj614w== + +htmlparser2@^3.3.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" + integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== + dependencies: + domelementtype "^1.3.1" + domhandler "^2.3.0" + domutils "^1.5.1" + entities "^1.1.1" + inherits "^2.0.1" + readable-stream "^3.1.1" + +http-cache-semantics@3.8.1: + version "3.8.1" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz#39b0e16add9b605bf0a9ef3d9daaf4843b4cacd2" + integrity sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w== + +http-cache-semantics@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" + integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== + +http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + integrity sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc= + +http-errors@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" + integrity sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg== + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@1.7.3, http-errors@^1.7.3, http-errors@~1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" + integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.1.1" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.0" + +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + integrity sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0= + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + +"http-parser-js@>=0.4.0 <0.4.11": + version "0.4.10" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.10.tgz#92c9c1374c35085f75db359ec56cc257cbb93fa4" + integrity sha1-ksnBN0w1CF912zWexWzCV8u5P6Q= + +http-proxy-middleware@0.19.1: + version "0.19.1" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz#183c7dc4aa1479150306498c210cdaf96080a43a" + integrity sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q== + dependencies: + http-proxy "^1.17.0" + is-glob "^4.0.0" + lodash "^4.17.11" + micromatch "^3.1.10" + +http-proxy@^1.17.0: + version "1.18.0" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.0.tgz#dbe55f63e75a347db7f3d99974f2692a314a6a3a" + integrity sha512-84I2iJM/n1d4Hdgc6y2+qY5mDaz2PUVjlg9znE9byl+q0uC3DeByqBGReQu5tpLK0TAqTIXScRUV+dg7+bUPpQ== + dependencies: + eventemitter3 "^4.0.0" + follow-redirects "^1.0.0" + requires-port "^1.0.0" + +https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= + +human-signals@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" + integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== + +humanize-list@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/humanize-list/-/humanize-list-1.0.1.tgz#e7e719c60a5d5848e8e0a5ed5f0a885496c239fd" + integrity sha1-5+cZxgpdWEjo4KXtXwqIVJbCOf0= + +iconv-lite@0.4.24, iconv-lite@^0.4.17, iconv-lite@^0.4.24, iconv-lite@^0.4.4: + version "0.4.24" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" + integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== + dependencies: + safer-buffer ">= 2.1.2 < 3" + +icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= + +icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + integrity sha1-g/Cg7DeL8yRheLbCrZE28TWxyWI= + dependencies: + postcss "^6.0.1" + +ieee754@^1.1.4: + version "1.1.13" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84" + integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg== + +iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + integrity sha1-xg7taebY/bazEEofy8ocGS3FtQE= + +ignore-walk@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/ignore-walk/-/ignore-walk-3.0.3.tgz#017e2447184bfeade7c238e4aefdd1e8f95b1e37" + integrity sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw== + dependencies: + minimatch "^3.0.4" + +ignore@^3.3.5: + version "3.3.10" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.10.tgz#0a97fb876986e8081c631160f8f9f389157f0043" + integrity sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug== + +ignore@^4.0.6: + version "4.0.6" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" + integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== + +ignore@^5.1.1: + version "5.1.4" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.1.4.tgz#84b7b3dbe64552b6ef0eca99f6743dbec6d97adf" + integrity sha512-MzbUSahkTW1u7JpKKjY7LCARd1fU5W2rLdxlM4kdkayuCwZImjkpluF9CM1aLewYJguPDqewLam18Y6AU69A8A== + +immer@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/immer/-/immer-1.10.0.tgz#bad67605ba9c810275d91e1c2a47d4582e98286d" + integrity sha512-O3sR1/opvCDGLEVcvrGTMtLac8GJ5IwZC4puPrLuRj3l7ICKvkmA0vGuU9OW8mV9WIBRnaxp5GJh9IEAaNOoYg== + +import-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-2.1.0.tgz#aa6cf36e722761285cb371ec6519f53e2435b0a9" + integrity sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk= + dependencies: + import-from "^2.1.0" + +import-fresh@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" + integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= + dependencies: + caller-path "^2.0.0" + resolve-from "^3.0.0" + +import-fresh@^3.0.0, import-fresh@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.2.1.tgz#633ff618506e793af5ac91bf48b72677e15cbe66" + integrity sha512-6e1q1cnWP2RXD9/keSkxHScg508CdXqXWgWBaETNhyuBFz+kUZlKboh+ISK+bU++DmbHimVBrOz/zzPe0sZ3sQ== + dependencies: + parent-module "^1.0.0" + resolve-from "^4.0.0" + +import-from@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-from/-/import-from-2.1.0.tgz#335db7f2a7affd53aaa471d4b8021dee36b7f3b1" + integrity sha1-M1238qev/VOqpHHUuAId7ja387E= + dependencies: + resolve-from "^3.0.0" + +import-jsx@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/import-jsx/-/import-jsx-4.0.0.tgz#2f31fd8e884e14f136751448841ffd2d3144dce1" + integrity sha512-CnjJ2BZFJzbFDmYG5S47xPQjMlSbZLyLJuG4znzL4TdPtJBxHtFP1xVmR+EYX4synFSldiY3B6m00XkPM3zVnA== + dependencies: + "@babel/core" "^7.5.5" + "@babel/plugin-proposal-object-rest-spread" "^7.5.5" + "@babel/plugin-transform-destructuring" "^7.5.0" + "@babel/plugin-transform-react-jsx" "^7.3.0" + caller-path "^2.0.0" + find-cache-dir "^3.2.0" + make-dir "^3.0.2" + resolve-from "^3.0.0" + rimraf "^3.0.0" + +import-lazy@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" + integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= + +import-local@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-2.0.0.tgz#55070be38a5993cf18ef6db7e961f5bee5c5a09d" + integrity sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ== + dependencies: + pkg-dir "^3.0.0" + resolve-cwd "^2.0.0" + +imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= + +indent-string@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-4.0.0.tgz#624f8f4497d619b2d9768531d58f4122854d7251" + integrity sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg== + +indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= + +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + integrity sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10= + +infer-owner@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/infer-owner/-/infer-owner-1.0.4.tgz#c4cefcaa8e51051c2a40ba2ce8a3d27295af9467" + integrity sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.0, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= + +inherits@2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= + +ini@^1.3.4, ini@^1.3.5, ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== + +ink-box@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/ink-box/-/ink-box-1.0.0.tgz#8cbcb5541d32787d08d43acf1a9907e86e3572f3" + integrity sha512-wD2ldWX9lcE/6+flKbAJ0TZF7gKbTH8CRdhEor6DD8d+V0hPITrrGeST2reDBpCia8wiqHrdxrqTyafwtmVanA== + dependencies: + boxen "^3.0.0" + prop-types "^15.7.2" + +ink-link@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/ink-link/-/ink-link-1.1.0.tgz#e00bd68dfd163a9392baecc0808391fd07e6cfbb" + integrity sha512-a716nYz4YDPu8UOA2PwabTZgTvZa3SYB/70yeXVmTOKFAEdMbJyGSVeNuB7P+aM2olzDj9AGVchA7W5QytF9uA== + dependencies: + prop-types "^15.7.2" + terminal-link "^2.1.1" + +ink-select-input@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/ink-select-input/-/ink-select-input-3.1.2.tgz#fd53f2f0946bc43989899522b013a2c10a60f722" + integrity sha512-PaLraGx8A54GhSkTNzZI8bgY0elAoa1jSPPe5Q52B5VutcBoJc4HE3ICDwsEGJ88l1Hw6AWjpeoqrq82a8uQPA== + dependencies: + arr-rotate "^1.0.0" + figures "^2.0.0" + lodash.isequal "^4.5.0" + prop-types "^15.5.10" + +ink-spinner@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/ink-spinner/-/ink-spinner-3.0.1.tgz#7b4b206d2b18538701fd92593f9acabbfe308dce" + integrity sha512-AVR4Z/NXDQ7dT5ltWcCzFS9Dd4T8eaO//E2UO8VYNiJcZpPCSJ11o5A0UVPcMlZxGbGD6ikUFDR3ZgPUQk5haQ== + dependencies: + cli-spinners "^1.0.0" + prop-types "^15.5.10" + +ink@^2.7.1: + version "2.7.1" + resolved "https://registry.yarnpkg.com/ink/-/ink-2.7.1.tgz#ff1c75b4b022924e2993af62297fa0e48e85618b" + integrity sha512-s7lJuQDJEdjqtaIWhp3KYHl6WV3J04U9zoQ6wVc+Xoa06XM27SXUY57qC5DO46xkF0CfgXMKkKNcgvSu/SAEpA== + dependencies: + ansi-escapes "^4.2.1" + arrify "^2.0.1" + auto-bind "^4.0.0" + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-truncate "^2.1.0" + is-ci "^2.0.0" + lodash.throttle "^4.1.1" + log-update "^3.0.0" + prop-types "^15.6.2" + react-reconciler "^0.24.0" + scheduler "^0.18.0" + signal-exit "^3.0.2" + slice-ansi "^3.0.0" + string-length "^3.1.0" + widest-line "^3.1.0" + wrap-ansi "^6.2.0" + yoga-layout-prebuilt "^1.9.3" + +inline-style-parser@0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/inline-style-parser/-/inline-style-parser-0.1.1.tgz#ec8a3b429274e9c0a1f1c4ffa9453a7fef72cea1" + integrity sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q== + +inquirer@3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-3.3.0.tgz#9dd2f2ad765dcab1ff0443b491442a20ba227dc9" + integrity sha512-h+xtnyk4EwKvFWHrUYsWErEVR+igKtLdchu+o0Z1RL7VU/jVMFbYir2bp6bAj8efFNxWqHX0dIss6fJQ+/+qeQ== + dependencies: + ansi-escapes "^3.0.0" + chalk "^2.0.0" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^2.0.4" + figures "^2.0.0" + lodash "^4.3.0" + mute-stream "0.0.7" + run-async "^2.2.0" + rx-lite "^4.0.8" + rx-lite-aggregates "^4.0.8" + string-width "^2.1.0" + strip-ansi "^4.0.0" + through "^2.3.6" + +inquirer@6.5.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.0.tgz#2303317efc9a4ea7ec2e2df6f86569b734accf42" + integrity sha512-scfHejeG/lVZSpvCXpsB4j/wQNPM5JC8kiElOI0OUTwmc1RTpXr4H32/HOlQHcZiYl2z2VElwuCVDRG8vFmbnA== + dependencies: + ansi-escapes "^3.2.0" + chalk "^2.4.2" + cli-cursor "^2.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^2.0.0" + lodash "^4.17.12" + mute-stream "0.0.7" + run-async "^2.2.0" + rxjs "^6.4.0" + string-width "^2.1.0" + strip-ansi "^5.1.0" + through "^2.3.6" + +inquirer@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-7.1.0.tgz#1298a01859883e17c7264b82870ae1034f92dd29" + integrity sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg== + dependencies: + ansi-escapes "^4.2.1" + chalk "^3.0.0" + cli-cursor "^3.1.0" + cli-width "^2.0.0" + external-editor "^3.0.3" + figures "^3.0.0" + lodash "^4.17.15" + mute-stream "0.0.8" + run-async "^2.4.0" + rxjs "^6.5.3" + string-width "^4.1.0" + strip-ansi "^6.0.0" + through "^2.3.6" + +internal-ip@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-4.3.0.tgz#845452baad9d2ca3b69c635a137acb9a0dad0907" + integrity sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg== + dependencies: + default-gateway "^4.2.0" + ipaddr.js "^1.9.0" + +internal-slot@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz#9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3" + integrity sha512-2cQNfwhAfJIkU4KZPkDI+Gj5yNNnbqi40W9Gge6dfnk4TocEVm00B3bdiL+JINrbGJil2TeHvM4rETGzk/f/0g== + dependencies: + es-abstract "^1.17.0-next.1" + has "^1.0.3" + side-channel "^1.0.2" + +into-stream@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/into-stream/-/into-stream-3.1.0.tgz#96fb0a936c12babd6ff1752a17d05616abd094c6" + integrity sha1-lvsKk2wSur1v8XUqF9BWFqvQlMY= + dependencies: + from2 "^2.1.1" + p-is-promise "^1.1.0" + +invariant@^2.2.0, invariant@^2.2.2, invariant@^2.2.3, invariant@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + integrity sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA== + dependencies: + loose-envify "^1.0.0" + +invert-kv@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" + integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== + +ip-regex@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ip-regex/-/ip-regex-2.1.0.tgz#fa78bf5d2e6913c911ce9f819ee5146bb6d844e9" + integrity sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk= + +ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + integrity sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo= + +ipaddr.js@1.9.1, ipaddr.js@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.9.1.tgz#bff38543eeb8984825079ff3a2a8e6cbd46781b3" + integrity sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g== + +is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= + +is-absolute-url@^3.0.0, is-absolute-url@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" + integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== + +is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= + dependencies: + kind-of "^3.0.2" + +is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== + dependencies: + kind-of "^6.0.0" + +is-alphabetical@1.0.4, is-alphabetical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphabetical/-/is-alphabetical-1.0.4.tgz#9e7d6b94916be22153745d184c298cbf986a686d" + integrity sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg== + +is-alphanumeric@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-alphanumeric/-/is-alphanumeric-1.0.0.tgz#4a9cef71daf4c001c1d81d63d140cf53fd6889f4" + integrity sha1-Spzvcdr0wAHB2B1j0UDPU/1oifQ= + +is-alphanumerical@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz#7eb9a2431f855f6b1ef1a78e326df515696c4dbf" + integrity sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A== + dependencies: + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + +is-arguments@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.0.4.tgz#3faf966c7cba0ff437fb31f6250082fcf0448cf3" + integrity sha512-xPh0Rmt8NE65sNzvyUmWgI1tz3mKq74lGA0mL8LYZcoIzKOzDh6HmrYm3d18k60nHerC8A9Km8kYu87zfSFnLA== + +is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= + +is-arrayish@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" + integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== + +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= + dependencies: + binary-extensions "^1.0.0" + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-blank@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-blank/-/is-blank-2.1.0.tgz#69a73d3c0d4f417dfffb207a2795c0f0e576de04" + integrity sha1-aac9PA1PQX3/+yB6J5XA8OV23gQ= + dependencies: + is-empty latest + is-whitespace latest + +is-buffer@^1.1.5, is-buffer@~1.1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== + +is-buffer@^2.0.0, is-buffer@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-2.0.4.tgz#3e572f23c8411a5cfd9557c849e3665e0b290623" + integrity sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A== + +is-builtin-module@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.0.0.tgz#137d3d2425023a19a660fb9dd6ddfabe52c03466" + integrity sha512-/93sDihsAD652hrMEbJGbMAVBf1qc96kyThHQ0CAOONHaE3aROLpTjDe4WQ5aoC5ITHFxEq1z8XqSU7km+8amw== + dependencies: + builtin-modules "^3.0.0" + +is-callable@^1.1.4, is-callable@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.5.tgz#f7e46b596890456db74e7f6e976cb3273d06faab" + integrity sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q== + +is-ci@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" + integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== + dependencies: + ci-info "^2.0.0" + +is-color-stop@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" + integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= + dependencies: + css-color-names "^0.0.4" + hex-color-regex "^1.1.0" + hsl-regex "^1.0.0" + hsla-regex "^1.0.0" + rgb-regex "^1.0.1" + rgba-regex "^1.0.0" + +is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= + dependencies: + kind-of "^3.0.2" + +is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== + dependencies: + kind-of "^6.0.0" + +is-date-object@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" + integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== + +is-decimal@^1.0.0, is-decimal@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-decimal/-/is-decimal-1.0.4.tgz#65a3a5958a1c5b63a706e1b333d7cd9f630d3fa5" + integrity sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw== + +is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + +is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + +is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= + +is-docker@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.0.0.tgz#2cb0df0e75e2d064fe1864c37cdeacb7b2dcf25b" + integrity sha512-pJEdRugimx4fBMra5z2/5iRdZ63OhYV0vr0Dwm5+xtW4D1FvRkB8hamMIhnWfyJeDdyr/aa7BDyNbtG38VxgoQ== + +is-empty@latest: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-empty/-/is-empty-1.2.0.tgz#de9bb5b278738a05a0b09a57e1fb4d4a341a9f6b" + integrity sha1-3pu1snhzigWgsJpX4ftNSjQan2s= + +is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= + +is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== + dependencies: + is-plain-object "^2.0.4" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + integrity sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA= + +is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= + +is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + integrity sha1-754xOG8DGn8NZDr4L95QxFfvAMs= + dependencies: + number-is-nan "^1.0.0" + +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + integrity sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM= + dependencies: + is-extglob "^1.0.0" + +is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= + dependencies: + is-extglob "^2.1.0" + +is-glob@^4.0.0, is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" + integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== + dependencies: + is-extglob "^2.1.1" + +is-hexadecimal@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-hexadecimal/-/is-hexadecimal-1.0.4.tgz#cc35c97588da4bd49a8eedd6bc4082d44dcb23a7" + integrity sha512-gyPJuv83bHMpocVYoqof5VDiZveEoGoFL8m3BXNb2VW8Xs+rz9kqO8LOQ5DH6EsuvilT1ApazU0pyl+ytbPtlw== + +is-installed-globally@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.1.0.tgz#0dfd98f5a9111716dd535dda6492f67bf3d25a80" + integrity sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA= + dependencies: + global-dirs "^0.1.0" + is-path-inside "^1.0.0" + +is-invalid-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-invalid-path/-/is-invalid-path-0.1.0.tgz#307a855b3cf1a938b44ea70d2c61106053714f34" + integrity sha1-MHqFWzzxqTi0TqcNLGEQYFNxTzQ= + dependencies: + is-glob "^2.0.0" + +is-newline@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-newline/-/is-newline-1.0.0.tgz#f0aac97cc9ac0b4b94af8c55a01cf3690f436e38" + integrity sha1-8KrJfMmsC0uUr4xVoBzzaQ9Dbjg= + dependencies: + newline-regex "^0.2.0" + +is-npm@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-3.0.0.tgz#ec9147bfb629c43f494cf67936a961edec7e8053" + integrity sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA== + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= + dependencies: + kind-of "^3.0.2" + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-obj@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" + integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8= + +is-obj@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" + integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== + +is-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-object/-/is-object-1.0.1.tgz#8952688c5ec2ffd6b03ecc85e769e02903083470" + integrity sha1-iVJojF7C/9awPsyF52ngKQMINHA= + +is-path-cwd@^2.0.0, is-path-cwd@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-2.2.0.tgz#67d43b82664a7b5191fd9119127eb300048a9fdb" + integrity sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ== + +is-path-in-cwd@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz#bfe2dca26c69f397265a4009963602935a053acb" + integrity sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ== + dependencies: + is-path-inside "^2.1.0" + +is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + integrity sha1-jvW33lBDej/cprToZe96pVy0gDY= + dependencies: + path-is-inside "^1.0.1" + +is-path-inside@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-2.1.0.tgz#7c9810587d659a40d27bcdb4d5616eab059494b2" + integrity sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg== + dependencies: + path-is-inside "^1.0.2" + +is-path-inside@^3.0.1: + version "3.0.2" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" + integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== + +is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + integrity sha1-caUMhCnfync8kqOQpKA7OfzVHT4= + +is-plain-obj@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== + dependencies: + isobject "^3.0.1" + +is-promise@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz#79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa" + integrity sha1-eaKp7OfwlugPNtKy87wWwf9L8/o= + +is-regex@^1.0.4, is-regex@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.5.tgz#39d589a358bf18967f726967120b8fc1aed74eae" + integrity sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ== + dependencies: + has "^1.0.3" + +is-relative-url@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-relative-url/-/is-relative-url-3.0.0.tgz#f623c8e26baa5bd3742b3b7ec074f50f3b45b3f3" + integrity sha512-U1iSYRlY2GIMGuZx7gezlB5dp1Kheaym7zKzO1PV06mOihiWTXejLwm4poEJysPyXF+HtK/BEd0DVlcCh30pEA== + dependencies: + is-absolute-url "^3.0.0" + +is-relative@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-relative/-/is-relative-1.0.0.tgz#a1bb6935ce8c5dba1e8b9754b9b2dcc020e2260d" + integrity sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA== + dependencies: + is-unc-path "^1.0.0" + +is-resolvable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" + integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== + +is-retry-allowed@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.2.0.tgz#d778488bd0a4666a3be8a1482b9f2baafedea8b4" + integrity sha512-RUbUeKwvm3XG2VYamhJL1xFktgjvPzL0Hq8C+6yrWIswDy3BIXGqCxhxkc30N9jqK311gVU137K8Ei55/zVJRg== + +is-root@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-1.0.0.tgz#07b6c233bc394cd9d02ba15c966bd6660d6342d5" + integrity sha1-B7bCM7w5TNnQK6FclmvWZg1jQtU= + +is-root@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-root/-/is-root-2.1.0.tgz#809e18129cf1129644302a4f8544035d51984a9c" + integrity sha512-AGOriNp96vNBd3HtU+RzFEc75FfR5ymiYv8E553I71SCeXBiMsVDUtdio1OEFvrPyLIQ9tVR5RxXIFe5PUFjMg== + +is-ssh@^1.3.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/is-ssh/-/is-ssh-1.3.1.tgz#f349a8cadd24e65298037a522cf7520f2e81a0f3" + integrity sha512-0eRIASHZt1E68/ixClI8bp2YK2wmBPVWEismTs6M+M099jKgrzl/3E976zIbImSIob48N2/XGe9y7ZiYdImSlg== + dependencies: + protocols "^1.1.0" + +is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ= + +is-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" + integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== + +is-string@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz#40493ed198ef3ff477b8c7f92f644ec82a5cd3a6" + integrity sha512-buY6VNRjhQMiF1qWDouloZlQbRhDPCebwxSjxMjxgemYT46YMd2NR0/H+fBhEfWX4A/w9TBJ+ol+okqJKFE6vQ== + +is-svg@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" + integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== + dependencies: + html-comment-regex "^1.1.0" + +is-symbol@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" + integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== + dependencies: + has-symbols "^1.0.1" + +is-typedarray@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= + +is-unc-path@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-unc-path/-/is-unc-path-1.0.0.tgz#d731e8898ed090a12c352ad2eaed5095ad322c9d" + integrity sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ== + dependencies: + unc-path-regex "^0.1.2" + +is-url@^1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" + integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== + +is-valid-path@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-valid-path/-/is-valid-path-0.1.1.tgz#110f9ff74c37f663e1ec7915eb451f2db93ac9df" + integrity sha1-EQ+f90w39mPh7HkV60UfLbk6yd8= + dependencies: + is-invalid-path "^0.1.0" + +is-whitespace-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.4.tgz#0858edd94a95594c7c9dd0b5c174ec6e45ee4aa7" + integrity sha512-SDweEzfIZM0SJV0EUga669UTKlmL0Pq8Lno0QDQsPnvECB3IM2aP0gdx5TrU0A01MAPfViaZiI2V1QMZLaKK5w== + +is-whitespace@latest: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f" + integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38= + +is-windows@^1.0.1, is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== + +is-word-character@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-word-character/-/is-word-character-1.0.4.tgz#ce0e73216f98599060592f62ff31354ddbeb0230" + integrity sha512-5SMO8RVennx3nZrqtKwCGyyetPE9VDba5ugvKLaD4KopPG5kR4mQ7tNt/r7feL5yt5h3lpuBbIUmCOG2eSzXHA== + +is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= + +is-wsl@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.1.1.tgz#4a1c152d429df3d441669498e2486d3596ebaf1d" + integrity sha512-umZHcSrwlDHo2TGMXv0DZ8dIUGunZ2Iv68YZnrmCiBPkZ4aaOhtv7pXJKeki9k3qJ3RJr0cDyitcl5wEH3AYog== + +is-yarn-global@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" + integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8= + +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= + +isarray@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.1.tgz#a37d94ed9cda2d59865c9f76fe596ee1f338741e" + integrity sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4= + +isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= + +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= + dependencies: + isarray "1.0.0" + +isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= + +isurl@^1.0.0-alpha5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isurl/-/isurl-1.0.0.tgz#b27f4f49f3cdaa3ea44a0a5b7f3462e6edc39d67" + integrity sha512-1P/yWsxPlDtn7QeRD+ULKQPaIaN6yF368GZ2vDfv0AL0NwpStafjWCDDdn0k8wgFMWpVAqG7oJhxHnlud42i9w== + dependencies: + has-to-string-tag-x "^1.2.0" + is-object "^1.0.1" + +iterall@^1.2.1, iterall@^1.2.2: + version "1.3.0" + resolved "https://registry.yarnpkg.com/iterall/-/iterall-1.3.0.tgz#afcb08492e2915cbd8a0884eb93a8c94d0d72fea" + integrity sha512-QZ9qOMdF+QLHxy1QIpUHUU1D5pS2CG2P69LF6L6CPjPYA/XMOmKV3PZpawHoAjHNyB0swdVTRxdYT4tbBbxqwg== + +jest-diff@^25.3.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-25.4.0.tgz#260b70f19a46c283adcad7f081cae71eb784a634" + integrity sha512-kklLbJVXW0y8UKOWOdYhI6TH5MG6QAxrWiBMgQaPIuhj3dNFGirKCd+/xfplBXICQ7fI+3QcqHm9p9lWu1N6ug== + dependencies: + chalk "^3.0.0" + diff-sequences "^25.2.6" + jest-get-type "^25.2.6" + pretty-format "^25.4.0" + +jest-get-type@^25.2.6: + version "25.2.6" + resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877" + integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig== + +jest-worker@^24.9.0: + version "24.9.0" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-24.9.0.tgz#5dbfdb5b2d322e98567898238a9697bcce67b3e5" + integrity sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw== + dependencies: + merge-stream "^2.0.0" + supports-color "^6.1.0" + +"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + integrity sha1-mGbfOVECEw449/mWvOtlRDIJwls= + +js-yaml@^3.10.0, js-yaml@^3.13.1, js-yaml@^3.5.2: + version "3.13.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" + integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + +jsesc@^2.5.1: + version "2.5.2" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" + integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== + +jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= + +json-buffer@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" + integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= + +json-loader@^0.5.7: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + integrity sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w== + +json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" + integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== + +json-schema-traverse@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" + integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== + +json-stable-stringify-without-jsonify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" + integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= + +json3@^3.3.2: + version "3.3.3" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81" + integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA== + +json5@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" + integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== + dependencies: + minimist "^1.2.0" + +json5@^2.1.2: + version "2.1.3" + resolved "https://registry.yarnpkg.com/json5/-/json5-2.1.3.tgz#c9b0f7fa9233bfe5807fe66fcf3a5617ed597d43" + integrity sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA== + dependencies: + minimist "^1.2.5" + +jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= + optionalDependencies: + graceful-fs "^4.1.6" + +jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM= + +jsx-ast-utils@^2.2.1, jsx-ast-utils@^2.2.3: + version "2.2.3" + resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.2.3.tgz#8a9364e402448a3ce7f14d357738310d9248054f" + integrity sha512-EdIHFMm+1BPynpKOpdPqiOsvnIrInRGJD7bzPZdPkjitQEqpdpUuFpq4T0npZFKTiB3RhWFdGN+oqOJIdhDhQA== + dependencies: + array-includes "^3.0.3" + object.assign "^4.1.0" + +keyv@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373" + integrity sha512-eguHnq22OE3uVoSYG0LVWNP+4ppamWr9+zWBe1bsNcovIMy6huUJFPgy4mGwCd/rnl3vOLGW1MTlu4c57CT1xA== + dependencies: + json-buffer "3.0.0" + +keyv@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" + integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== + dependencies: + json-buffer "3.0.0" + +killable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.1.tgz#4c8ce441187a061c7474fb87ca08e2a638194892" + integrity sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg== + +kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= + dependencies: + is-buffer "^1.1.5" + +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= + dependencies: + is-buffer "^1.1.5" + +kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== + +kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.3" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" + integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== + +kleur@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/kleur/-/kleur-3.0.3.tgz#a79c9ecc86ee1ce3fa6206d1216c501f147fc07e" + integrity sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w== + +last-call-webpack-plugin@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/last-call-webpack-plugin/-/last-call-webpack-plugin-3.0.0.tgz#9742df0e10e3cf46e5c0381c2de90d3a7a2d7555" + integrity sha512-7KI2l2GIZa9p2spzPIVZBYyNKkN+e/SQPpnjlTiPhdbDW3F86tdKKELxKpzJ5sgU19wQWsACULZmpTPYHeWO5w== + dependencies: + lodash "^4.17.5" + webpack-sources "^1.1.0" + +latest-version@5.1.0, latest-version@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" + integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== + dependencies: + package-json "^6.3.0" + +lcid@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" + integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== + dependencies: + invert-kv "^2.0.0" + +leven@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" + integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== + +levenary@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/levenary/-/levenary-1.1.1.tgz#842a9ee98d2075aa7faeedbe32679e9205f46f77" + integrity sha512-mkAdOIt79FD6irqjYSs4rdbnlT5vRonMEvBVPVb3XmevfS8kgRXwfes0dhPdEtzTWD/1eNE/Bm/G1iRt6DcnQQ== + dependencies: + leven "^3.1.0" + +levn@^0.3.0, levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + +lines-and-columns@^1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.1.6.tgz#1c00c743b433cd0a4e80758f7b64a57440d9ff00" + integrity sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA= + +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + integrity sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg= + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-fs-cache@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/loader-fs-cache/-/loader-fs-cache-1.0.3.tgz#f08657646d607078be2f0a032f8bd69dd6f277d9" + integrity sha512-ldcgZpjNJj71n+2Mf6yetz+c9bM4xpKtNds4LbqXzU/PTdeAX0g3ytnU1AJMEcTk2Lex4Smpe3Q/eCTsvUBxbA== + dependencies: + find-cache-dir "^0.1.1" + mkdirp "^0.5.1" + +loader-runner@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357" + integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw== + +loader-utils@1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.2.3.tgz#1ff5dc6911c9f0a062531a4c04b609406108c2c7" + integrity sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA== + dependencies: + big.js "^5.2.2" + emojis-list "^2.0.0" + json5 "^1.0.1" + +loader-utils@^1.0.2, loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613" + integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA== + dependencies: + big.js "^5.2.2" + emojis-list "^3.0.0" + json5 "^1.0.1" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + integrity sha1-K1aLJl7slExtnA3pw9u7ygNUzY4= + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + +locate-path@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" + integrity sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A== + dependencies: + p-locate "^3.0.0" + path-exists "^3.0.0" + +locate-path@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-5.0.0.tgz#1afba396afd676a6d42504d0a67a3a7eb9f62aa0" + integrity sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g== + dependencies: + p-locate "^4.1.0" + +lockfile@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lockfile/-/lockfile-1.0.4.tgz#07f819d25ae48f87e538e6578b6964a4981a5609" + integrity sha512-cvbTwETRfsFh4nHsL1eGWapU1XFi5Ot9E85sWAwia7Y7EgB7vfqcZhTKZ+l7hCGxSPoushMv5GKhT5PdLv03WA== + dependencies: + signal-exit "^3.0.2" + +lodash.clonedeep@4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8= + +lodash.debounce@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" + integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= + +lodash.every@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.every/-/lodash.every-4.6.0.tgz#eb89984bebc4364279bb3aefbbd1ca19bfa6c6a7" + integrity sha1-64mYS+vENkJ5uzrvu9HKGb+mxqc= + +lodash.flattendeep@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" + integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= + +lodash.foreach@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53" + integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM= + +lodash.isequal@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + +lodash.map@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" + integrity sha1-dx7Hg540c9nEzeKLGTlMNWL09tM= + +lodash.maxby@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/lodash.maxby/-/lodash.maxby-4.6.0.tgz#082240068f3c7a227aa00a8380e4f38cf0786e3d" + integrity sha1-CCJABo88eiJ6oAqDgOTzjPB4bj0= + +lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= + +lodash.throttle@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lodash.throttle/-/lodash.throttle-4.1.1.tgz#c23e91b710242ac70c37f1e1cda9274cc39bf2f4" + integrity sha1-wj6RtxAkKscMN/HhzaknTMOb8vQ= + +lodash.toarray@^4.4.0: + version "4.4.0" + resolved "https://registry.yarnpkg.com/lodash.toarray/-/lodash.toarray-4.4.0.tgz#24c4bfcd6b2fba38bfd0594db1179d8e9b656561" + integrity sha1-JMS/zWsvuji/0FlNsRedjptlZWE= + +lodash.uniq@4.5.0, lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= + +lodash@^4.11.1, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.13, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.4, lodash@^4.17.5, lodash@^4.3.0: + version "4.17.15" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" + integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== + +log-update@^3.0.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/log-update/-/log-update-3.4.0.tgz#3b9a71e00ac5b1185cc193a36d654581c48f97b9" + integrity sha512-ILKe88NeMt4gmDvk/eb615U/IVn7K9KWGkoYbdatQ69Z65nj1ZzjM6fHXfcs0Uge+e+EGnMW7DY4T9yko8vWFg== + dependencies: + ansi-escapes "^3.2.0" + cli-cursor "^2.1.0" + wrap-ansi "^5.0.0" + +loglevel@^1.6.6: + version "1.6.8" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.8.tgz#8a25fb75d092230ecd4457270d80b54e28011171" + integrity sha512-bsU7+gc9AJ2SqpzxwU3+1fedl8zAntbtC5XYlt3s2j1hJcn2PsXSmgN8TaLG/J1/2mod4+cE/3vNL70/c1RNCA== + +lokijs@^1.5.8: + version "1.5.8" + resolved "https://registry.yarnpkg.com/lokijs/-/lokijs-1.5.8.tgz#9296f288edb2147389ec692fc972c428c59179d1" + integrity sha512-D8E3TBrY35o1ELnonp2MF8b3wKu2tVNl2TqRjvS+95oPMMe7OoIAxNY1qr+5BEZwnWn2V4ErAjVt000DonM+FA== + +longest-streak@^2.0.1: + version "2.0.4" + resolved "https://registry.yarnpkg.com/longest-streak/-/longest-streak-2.0.4.tgz#b8599957da5b5dab64dee3fe316fa774597d90e4" + integrity sha512-vM6rUVCVUJJt33bnmHiZEvr7wPT78ztX7rojL+LW51bHtLh6HTjx84LA5W4+oa6aKEJA7jJu5LR6vQRBpA5DVg== + +loose-envify@^1.0.0, loose-envify@^1.1.0, loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loud-rejection@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-2.2.0.tgz#4255eb6e9c74045b0edc021fa7397ab655a8517c" + integrity sha512-S0FayMXku80toa5sZ6Ro4C+s+EtFDCsyJNG/AzFMfX3AxD5Si4dZsgzm/kKnbOxHl5Cv8jBlno8+3XYIh2pNjQ== + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.2" + +lowercase-keys@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" + integrity sha1-TjNms55/VFfjXxMkvfb4jQv8cwY= + +lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" + integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== + +lowercase-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" + integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== + +lru-cache@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.0.0.tgz#b5cbf01556c16966febe54ceec0fb4dc90df6c28" + integrity sha1-tcvwFVbBaWb+vlTO7A+03JDfbCg= + dependencies: + pseudomap "^1.0.1" + yallist "^2.0.0" + +lru-cache@^4.0.1: + version "4.1.5" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd" + integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g== + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +lru-cache@^5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" + integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== + dependencies: + yallist "^3.0.2" + +magic-string@^0.25.3: + version "0.25.7" + resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.7.tgz#3f497d6fd34c669c6798dcb821f2ef31f5445051" + integrity sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA== + dependencies: + sourcemap-codec "^1.4.4" + +make-dir@^1.0.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.3.0.tgz#79c1033b80515bd6d24ec9933e860ca75ee27f0c" + integrity sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ== + dependencies: + pify "^3.0.0" + +make-dir@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5" + integrity sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA== + dependencies: + pify "^4.0.1" + semver "^5.6.0" + +make-dir@^3.0.0, make-dir@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" + integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== + dependencies: + semver "^6.0.0" + +map-age-cleaner@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" + integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== + dependencies: + p-defer "^1.0.0" + +map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= + +map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= + dependencies: + object-visit "^1.0.0" + +markdown-escapes@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/markdown-escapes/-/markdown-escapes-1.0.4.tgz#c95415ef451499d7602b91095f3c8e8975f78535" + integrity sha512-8z4efJYk43E0upd0NbVXwgSTQs6cT3T06etieCMEg7dRbzCbxUCK/GHlX8mhHRDcp+OLlHkPKsvqQTCvsRl2cg== + +markdown-table@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/markdown-table/-/markdown-table-2.0.0.tgz#194a90ced26d31fe753d8b9434430214c011865b" + integrity sha512-Ezda85ToJUBhM6WGaG6veasyym+Tbs3cMAw/ZhOPqXiYsr0jgocBV3j3nx+4lk47plLlIqjwuTm/ywVI+zjJ/A== + dependencies: + repeat-string "^1.0.0" + +md5-file@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/md5-file/-/md5-file-3.2.3.tgz#f9bceb941eca2214a4c0727f5e700314e770f06f" + integrity sha512-3Tkp1piAHaworfcCgH0jKbTvj1jWWFgbvh2cXaNCgHwyTCBxxvD1Y04rmfpvdPm1P4oXMOpm6+2H7sr7v9v8Fw== + dependencies: + buffer-alloc "^1.1.0" + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +md5@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/md5/-/md5-2.2.1.tgz#53ab38d5fe3c8891ba465329ea23fac0540126f9" + integrity sha1-U6s41f48iJG6RlMp6iP6wFQBJvk= + dependencies: + charenc "~0.0.1" + crypt "~0.0.1" + is-buffer "~1.1.1" + +mdast-squeeze-paragraphs@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/mdast-squeeze-paragraphs/-/mdast-squeeze-paragraphs-4.0.0.tgz#7c4c114679c3bee27ef10b58e2e015be79f1ef97" + integrity sha512-zxdPn69hkQ1rm4J+2Cs2j6wDEv7O17TfXTJ33tl/+JPIoEmtV9t2ZzBM5LPHE8QlHsmVD8t3vPKCyY3oH+H8MQ== + dependencies: + unist-util-remove "^2.0.0" + +mdast-util-compact@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-compact/-/mdast-util-compact-2.0.1.tgz#cabc69a2f43103628326f35b1acf735d55c99490" + integrity sha512-7GlnT24gEwDrdAwEHrU4Vv5lLWrEer4KOkAiKT9nYstsTad7Oc1TwqT2zIMKRdZF7cTuaf+GA1E4Kv7jJh8mPA== + dependencies: + unist-util-visit "^2.0.0" + +mdast-util-definitions@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/mdast-util-definitions/-/mdast-util-definitions-2.0.1.tgz#2c931d8665a96670639f17f98e32c3afcfee25f3" + integrity sha512-Co+DQ6oZlUzvUR7JCpP249PcexxygiaKk9axJh+eRzHDZJk2julbIdKB4PXHVxdBuLzvJ1Izb+YDpj2deGMOuA== + dependencies: + unist-util-visit "^2.0.0" + +mdast-util-to-hast@8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/mdast-util-to-hast/-/mdast-util-to-hast-8.2.0.tgz#adf9f824defcd382e53dd7bace4282a45602ac67" + integrity sha512-WjH/KXtqU66XyTJQ7tg7sjvTw1OQcVV0hKdFh3BgHPwZ96fSBCQ/NitEHsN70Mmnggt+5eUUC7pCnK+2qGQnCA== + dependencies: + collapse-white-space "^1.0.0" + detab "^2.0.0" + mdast-util-definitions "^2.0.0" + mdurl "^1.0.0" + trim-lines "^1.0.0" + unist-builder "^2.0.0" + unist-util-generated "^1.0.0" + unist-util-position "^3.0.0" + unist-util-visit "^2.0.0" + +mdn-data@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" + integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== + +mdn-data@2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.6.tgz#852dc60fcaa5daa2e8cf6c9189c440ed3e042978" + integrity sha512-rQvjv71olwNHgiTbfPZFkJtjNMciWgswYeciZhtvWLO8bmX3TnhyA62I6sTWOyZssWHJJjY6/KiWwqQsWWsqOA== + +mdurl@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mdurl/-/mdurl-1.0.1.tgz#fe85b2ec75a59037f2adfec100fd6c601761152e" + integrity sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4= + +meant@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/meant/-/meant-1.0.1.tgz#66044fea2f23230ec806fb515efea29c44d2115d" + integrity sha512-UakVLFjKkbbUwNWJ2frVLnnAtbb7D7DsloxRd3s/gDpI8rdv8W5Hp3NaDb+POBI1fQdeussER6NB8vpcRURvlg== + +media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= + +mem@^4.0.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" + integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== + dependencies: + map-age-cleaner "^0.1.1" + mimic-fn "^2.0.0" + p-is-promise "^2.0.0" + +memory-fs@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + integrity sha1-OpoguEYlI+RHz7x+i7gO1me/xVI= + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +memory-fs@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.5.0.tgz#324c01288b88652966d161db77838720845a8e3c" + integrity sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA== + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + +merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E= + +merge-stream@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" + integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== + +merge2@^1.2.3, merge2@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.3.0.tgz#5b366ee83b2f1582c48f87e47cf1a9352103ca81" + integrity sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw== + +methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4= + +microevent.ts@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/microevent.ts/-/microevent.ts-0.1.1.tgz#70b09b83f43df5172d0205a63025bce0f7357fa0" + integrity sha512-jo1OfR4TaEwd5HOrt5+tAZ9mqT4jmpNAusXtyfNzqVm9uiSYFZlKM1wYL4oU7azZW/PxQW53wM0S6OR1JHNa2g== + +micromatch@^3.1.10, micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + +micromatch@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.2.tgz#4fcb0999bf9fbc2fcbdd212f6d629b9a56c39259" + integrity sha512-y7FpHSbMUMoyPbYUSzO6PaZ6FyRnQOpHuKwbo1G+Knck95XVU4QAiKdGEnj5wwoS7PlOgthX/09u5iFJ+aYf5Q== + dependencies: + braces "^3.0.1" + picomatch "^2.0.5" + +miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + +mime-db@1.43.0: + version "1.43.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.43.0.tgz#0a12e0502650e473d735535050e7c8f4eb4fae58" + integrity sha512-+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ== + +"mime-db@>= 1.43.0 < 2": + version "1.44.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.44.0.tgz#fa11c5eb0aca1334b4233cb4d52f10c5a6272f92" + integrity sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg== + +mime-types@~2.1.17, mime-types@~2.1.24: + version "2.1.26" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.26.tgz#9c921fc09b7e149a65dfdc0da4d20997200b0a06" + integrity sha512-01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ== + dependencies: + mime-db "1.43.0" + +mime@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== + +mime@^2.0.3, mime@^2.4.4: + version "2.4.4" + resolved "https://registry.yarnpkg.com/mime/-/mime-2.4.4.tgz#bd7b91135fc6b01cde3e9bae33d659b63d8857e5" + integrity sha512-LRxmNwziLPT828z+4YkNzloCFC2YM4wrB99k+AV5ZbEyfGNWfG8SO1FUXLmLDBSo89NrJZ4DIWeLjy1CHGhMGA== + +mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== + +mimic-fn@^2.0.0, mimic-fn@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" + integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== + +mimic-response@^1.0.0, mimic-response@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" + integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== + +min-document@^2.19.0: + version "2.19.0" + resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" + integrity sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU= + dependencies: + dom-walk "^0.1.0" + +mini-css-extract-plugin@^0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.2.tgz#a875e169beb27c88af77dd962771c9eedc3da161" + integrity sha512-a3Y4of27Wz+mqK3qrcd3VhYz6cU0iW5x3Sgvqzbj+XmlrSizmvu8QQMl5oMYJjgHOC4iyt+w7l4umP+dQeW3bw== + dependencies: + loader-utils "^1.1.0" + normalize-url "1.9.1" + schema-utils "^1.0.0" + webpack-sources "^1.1.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= + +minimatch@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.3.tgz#2a4e4090b96b2db06a9d7df01055a62a77c9b774" + integrity sha1-Kk5AkLlrLbBqnX3wEFWmKnfJt3Q= + dependencies: + brace-expansion "^1.0.0" + +minimatch@3.0.4, minimatch@^3.0.3, minimatch@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.1.0, minimist@^1.2.0, minimist@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" + integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== + +minipass@^2.6.0, minipass@^2.8.6, minipass@^2.9.0: + version "2.9.0" + resolved "https://registry.yarnpkg.com/minipass/-/minipass-2.9.0.tgz#e713762e7d3e32fed803115cf93e04bca9fcc9a6" + integrity sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg== + dependencies: + safe-buffer "^5.1.2" + yallist "^3.0.0" + +minizlib@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/minizlib/-/minizlib-1.3.3.tgz#2290de96818a34c29551c8a8d301216bd65a861d" + integrity sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q== + dependencies: + minipass "^2.9.0" + +mississippi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-3.0.0.tgz#ea0a3291f97e0b5e8776b363d5f0a12d94c67022" + integrity sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA== + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^3.0.0" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + +mitt@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.2.0.tgz#cb24e6569c806e31bd4e3995787fe38a04fdf90d" + integrity sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw== + +mixin-deep@^1.2.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" + integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + +mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@^0.5.3, mkdirp@~0.5.1: + version "0.5.5" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" + integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== + dependencies: + minimist "^1.2.5" + +moment@^2.24.0: + version "2.24.0" + resolved "https://registry.yarnpkg.com/moment/-/moment-2.24.0.tgz#0d055d53f5052aa653c9f6eb68bb5d12bf5c2b5b" + integrity sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg== + +move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + integrity sha1-viwAX9oy4LKa8fBdfEszIUxwH5I= + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + +ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= + +ms@2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" + integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== + +ms@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + integrity sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE= + +multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + integrity sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g== + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + +mute-stream@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" + integrity sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s= + +mute-stream@0.0.8, mute-stream@~0.0.4: + version "0.0.8" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" + integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== + +name-all-modules-plugin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/name-all-modules-plugin/-/name-all-modules-plugin-1.0.1.tgz#0abfb6ad835718b9fb4def0674e06657a954375c" + integrity sha1-Cr+2rYNXGLn7Te8GdOBmV6lUN1w= + +nan@^2.12.1: + version "2.14.1" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01" + integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw== + +nanomatch@^1.2.9: + version "1.2.13" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" + integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= + +needle@^2.2.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/needle/-/needle-2.4.1.tgz#14af48732463d7475696f937626b1b993247a56a" + integrity sha512-x/gi6ijr4B7fwl6WYL9FwlCvRQKGlUNvnceho8wxkwXqN8jvVmmmATTmZPRRG7b/yC1eode26C2HO9jl78Du9g== + dependencies: + debug "^3.2.6" + iconv-lite "^0.4.4" + sax "^1.2.4" + +negotiator@0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" + integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== + +neo-async@^2.5.0, neo-async@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.1.tgz#ac27ada66167fa8849a6addd837f6b189ad2081c" + integrity sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw== + +newline-regex@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/newline-regex/-/newline-regex-0.2.1.tgz#4696d869045ee1509b83aac3a58d4a93bbed926e" + integrity sha1-RpbYaQRe4VCbg6rDpY1Kk7vtkm4= + +nice-try@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" + integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== + +node-emoji@^1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/node-emoji/-/node-emoji-1.10.0.tgz#8886abd25d9c7bb61802a658523d1f8d2a89b2da" + integrity sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw== + dependencies: + lodash.toarray "^4.4.0" + +node-eta@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/node-eta/-/node-eta-0.9.0.tgz#9fb0b099bcd2a021940e603c64254dc003d9a7a8" + integrity sha1-n7CwmbzSoCGUDmA8ZCVNwAPZp6g= + +node-fetch@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.1.2.tgz#ab884e8e7e57e38a944753cec706f788d1768bb5" + integrity sha1-q4hOjn5X44qUR1POxwb3iNF2i7U= + +node-fetch@2.6.0, node-fetch@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd" + integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA== + +node-forge@0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.9.0.tgz#d624050edbb44874adca12bb9a52ec63cb782579" + integrity sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ== + +node-libs-browser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" + integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^3.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.1" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.11.0" + vm-browserify "^1.0.1" + +node-object-hash@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-object-hash/-/node-object-hash-2.0.0.tgz#9971fcdb7d254f05016bd9ccf508352bee11116b" + integrity sha512-VZR0zroAusy1ETZMZiGeLkdu50LGjG5U1KHZqTruqtTyQ2wfWhHG2Ow4nsUbfTFGlaREgNHcCWoM/OzEm6p+NQ== + +node-pre-gyp@*: + version "0.14.0" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.14.0.tgz#9a0596533b877289bcad4e143982ca3d904ddc83" + integrity sha512-+CvDC7ZttU/sSt9rFjix/P05iS43qHCOOGzcr3Ry99bXG7VX953+vFyEuph/tfqoYu8dttBkE86JSKBO2OzcxA== + dependencies: + detect-libc "^1.0.2" + mkdirp "^0.5.1" + needle "^2.2.1" + nopt "^4.0.1" + npm-packlist "^1.1.6" + npmlog "^4.0.2" + rc "^1.2.7" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^4.4.2" + +node-releases@^1.1.29, node-releases@^1.1.53: + version "1.1.53" + resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.53.tgz#2d821bfa499ed7c5dffc5e2f28c88e78a08ee3f4" + integrity sha512-wp8zyQVwef2hpZ/dJH7SfSrIPD6YoJz6BDQDpGEkcA0s3LpAQoxBIYmfIq6QAhC1DhwsyCgTaTTcONwX8qzCuQ== + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha1-2o69nzr51nYJGbJ9nNyAkqczKFk= + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +nopt@^4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48" + integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg== + dependencies: + abbrev "1" + osenv "^0.1.4" + +normalize-package-data@^2.3.2: + version "2.5.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" + integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== + dependencies: + hosted-git-info "^2.1.4" + resolve "^1.10.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + +normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= + dependencies: + remove-trailing-separator "^1.0.1" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + integrity sha1-LRDAa9/TEuqXd2laTShDlFa3WUI= + +normalize-url@1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + integrity sha1-LMDWazHqIwNkWENuNiDYWVTGbDw= + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + +normalize-url@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-2.0.1.tgz#835a9da1551fa26f70e92329069a23aa6574d7e6" + integrity sha512-D6MUW4K/VzoJ4rJ01JFKxDrtY1v9wrgzCX5f2qj/lzH1m/lW6MhUZFKerVsnyjOhOsYzI9Kqqak+10l4LvLpMw== + dependencies: + prepend-http "^2.0.0" + query-string "^5.0.1" + sort-keys "^2.0.0" + +normalize-url@^3.0.0, normalize-url@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" + integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== + +normalize-url@^4.1.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" + integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== + +npm-bundled@^1.0.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/npm-bundled/-/npm-bundled-1.1.1.tgz#1edd570865a94cdb1bc8220775e29466c9fb234b" + integrity sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA== + dependencies: + npm-normalize-package-bin "^1.0.1" + +npm-normalize-package-bin@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz#6e79a41f23fd235c0623218228da7d9c23b8f6e2" + integrity sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA== + +npm-packlist@^1.1.6: + version "1.4.8" + resolved "https://registry.yarnpkg.com/npm-packlist/-/npm-packlist-1.4.8.tgz#56ee6cc135b9f98ad3d51c1c95da22bbb9b2ef3e" + integrity sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A== + dependencies: + ignore-walk "^3.0.1" + npm-bundled "^1.0.1" + npm-normalize-package-bin "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8= + dependencies: + path-key "^2.0.0" + +npm-run-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" + integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== + dependencies: + path-key "^3.0.0" + +npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + integrity sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg== + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + +nth-check@^1.0.2, nth-check@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" + integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== + dependencies: + boolbase "~1.0.0" + +null-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/null-loader/-/null-loader-3.0.0.tgz#3e2b6c663c5bda8c73a54357d8fa0708dc61b245" + integrity sha512-hf5sNLl8xdRho4UPBOOeoIwT3WhjYcMUQm0zj44EhD6UscMAz72o2udpoDFBgykucdEDGIcd6SXbc/G6zssbzw== + dependencies: + loader-utils "^1.2.3" + schema-utils "^1.0.0" + +num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4= + +number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + integrity sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0= + +object-assign@^4, object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= + +object-component@0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" + integrity sha1-8MaapQ78lbhmwYb0AKM3acsvEpE= + +object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + +object-hash@^1.1.4: + version "1.3.1" + resolved "https://registry.yarnpkg.com/object-hash/-/object-hash-1.3.1.tgz#fde452098a951cb145f039bb7d455449ddc126df" + integrity sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA== + +object-inspect@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67" + integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw== + +object-is@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.2.tgz#c5d2e87ff9e119f78b7a088441519e2eec1573b6" + integrity sha512-5lHCz+0uufF6wZ7CRFWJN3hp8Jqblpgve06U5CMQ3f//6iDjPr2PEo9MWCjEssDsa+UZEL4PkFpr+BMop6aKzQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +object-path@^0.11.2, object-path@^0.11.4: + version "0.11.4" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.11.4.tgz#370ae752fbf37de3ea70a861c23bba8915691949" + integrity sha1-NwrnUvvzfePqcKhhwju6iRVpGUk= + +object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= + dependencies: + isobject "^3.0.0" + +object.assign@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz#968bf1100d7956bb3ca086f006f846b3bc4008da" + integrity sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w== + dependencies: + define-properties "^1.1.2" + function-bind "^1.1.1" + has-symbols "^1.0.0" + object-keys "^1.0.11" + +object.entries@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.1.tgz#ee1cf04153de02bb093fec33683900f57ce5399b" + integrity sha512-ilqR7BgdyZetJutmDPfXCDffGa0/Yzl2ivVNpbx/g4UeWrCdRnFDUBrKJGLhGieRHDATnyZXWBeCb29k9CJysQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +object.fromentries@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz#4a09c9b9bb3843dd0f89acdb517a794d4f355ac9" + integrity sha512-r3ZiBH7MQppDJVLx6fhD618GKNG40CZYH9wgwdhKxBDDbQgjeWGGd4AtkZad84d291YxvWe7bJGuE65Anh0dxQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +object.getownpropertydescriptors@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz#369bf1f9592d8ab89d712dced5cb81c7c5352649" + integrity sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= + dependencies: + isobject "^3.0.1" + +object.values@^1.1.0, object.values@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz#68a99ecde356b7e9295a3c5e0ce31dc8c953de5e" + integrity sha512-WTa54g2K8iu0kmS/us18jEmdv1a4Wi//BZ/DTVYEcH0XhLM5NYdpDHja3gt57VrZLcNAO2WGA+KpWsDBaHt6eA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + function-bind "^1.1.1" + has "^1.0.3" + +obuf@^1.0.0, obuf@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg== + +on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= + dependencies: + ee-first "1.1.1" + +on-headers@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" + integrity sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA== + +once@^1.3.0, once@^1.3.1, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= + dependencies: + wrappy "1" + +onetime@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" + integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= + dependencies: + mimic-fn "^1.0.0" + +onetime@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz#fff0f3c91617fe62bb50189636e99ac8a6df7be5" + integrity sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q== + dependencies: + mimic-fn "^2.1.0" + +open@^6.3.0, open@^6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/open/-/open-6.4.0.tgz#5c13e96d0dc894686164f18965ecfe889ecfc8a9" + integrity sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg== + dependencies: + is-wsl "^1.1.0" + +opentracing@^0.14.4: + version "0.14.4" + resolved "https://registry.yarnpkg.com/opentracing/-/opentracing-0.14.4.tgz#a113408ea740da3a90fde5b3b0011a375c2e4268" + integrity sha512-nNnZDkUNExBwEpb7LZaeMeQgvrlO8l4bgY/LvGNZCR0xG/dGWqHqjKrAmR5GUoYo0FIz38kxasvA1aevxWs2CA== + +opn@5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.1.0.tgz#72ce2306a17dbea58ff1041853352b4a8fc77519" + integrity sha512-iPNl7SyM8L30Rm1sjGdLLheyHVw5YXVfi3SKWJzBI7efxRwHojfRFjwE/OLM6qp9xJYMgab8WicTU1cPoY+Hpg== + dependencies: + is-wsl "^1.1.0" + +opn@^5.5.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" + integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== + dependencies: + is-wsl "^1.1.0" + +optimize-css-assets-webpack-plugin@^5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/optimize-css-assets-webpack-plugin/-/optimize-css-assets-webpack-plugin-5.0.3.tgz#e2f1d4d94ad8c0af8967ebd7cf138dcb1ef14572" + integrity sha512-q9fbvCRS6EYtUKKSwI87qm2IxlyJK5b4dygW1rKUBT6mMDhdG5e5bZT63v6tnJR9F9FB/H5a0HTmtw+laUBxKA== + dependencies: + cssnano "^4.1.10" + last-call-webpack-plugin "^3.0.0" + +optionator@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" + integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== + dependencies: + deep-is "~0.1.3" + fast-levenshtein "~2.0.6" + levn "~0.3.0" + prelude-ls "~1.1.2" + type-check "~0.3.2" + word-wrap "~1.2.3" + +original@>=0.0.5, original@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.2.tgz#e442a61cffe1c5fd20a65f3261c26663b303f25f" + integrity sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg== + dependencies: + url-parse "^1.4.3" + +os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= + +os-homedir@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= + +os-locale@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" + integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== + dependencies: + execa "^1.0.0" + lcid "^2.0.0" + mem "^4.0.0" + +os-tmpdir@^1.0.0, os-tmpdir@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + integrity sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ= + +osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + integrity sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g== + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-cancelable@^0.4.0: + version "0.4.1" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-0.4.1.tgz#35f363d67d52081c8d9585e37bcceb7e0bbcb2a0" + integrity sha512-HNa1A8LvB1kie7cERyy21VNeHb2CWJJYqyyC2o3klWFfMGlFmWv2Z7sFgZH8ZiaYL95ydToKTFVXgMV/Os0bBQ== + +p-cancelable@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" + integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== + +p-defer@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" + integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= + +p-defer@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-3.0.0.tgz#d1dceb4ee9b2b604b1d94ffec83760175d4e6f83" + integrity sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw== + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= + +p-finally@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-2.0.1.tgz#bd6fcaa9c559a096b680806f4d657b3f0f240561" + integrity sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw== + +p-is-promise@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-1.1.0.tgz#9c9456989e9f6588017b0434d56097675c3da05e" + integrity sha1-nJRWmJ6fZYgBewQ01WCXZ1w9oF4= + +p-is-promise@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" + integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== + +p-limit@^1.1.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" + integrity sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q== + dependencies: + p-try "^1.0.0" + +p-limit@^2.0.0, p-limit@^2.2.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" + integrity sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w== + dependencies: + p-try "^2.0.0" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + integrity sha1-IKAQOyIqcMj9OcwuWAaA893l7EM= + dependencies: + p-limit "^1.1.0" + +p-locate@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-3.0.0.tgz#322d69a05c0264b25997d9f40cd8a891ab0064a4" + integrity sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ== + dependencies: + p-limit "^2.0.0" + +p-locate@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-4.1.0.tgz#a3428bb7088b3a60292f66919278b7c297ad4f07" + integrity sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A== + dependencies: + p-limit "^2.2.0" + +p-map@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-2.1.0.tgz#310928feef9c9ecc65b68b17693018a665cea175" + integrity sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw== + +p-map@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-3.0.0.tgz#d704d9af8a2ba684e2600d9a215983d4141a979d" + integrity sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ== + dependencies: + aggregate-error "^3.0.0" + +p-retry@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/p-retry/-/p-retry-3.0.1.tgz#316b4c8893e2c8dc1cfa891f406c4b422bebf328" + integrity sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w== + dependencies: + retry "^0.12.0" + +p-timeout@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-2.0.1.tgz#d8dd1979595d2dc0139e1fe46b8b646cb3cdf038" + integrity sha512-88em58dDVB/KzPEx1X0N3LwFfYZPyDc4B6eF38M1rk9VTZMbxXXgjugz8mmwpS9Ox4BDZ+t6t3QP5+/gazweIA== + dependencies: + p-finally "^1.0.0" + +p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + integrity sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M= + +p-try@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" + integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== + +package-json@^6.3.0: + version "6.5.0" + resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" + integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== + dependencies: + got "^9.6.0" + registry-auth-token "^4.0.0" + registry-url "^5.0.0" + semver "^6.2.0" + +pako@~1.0.5: + version "1.0.11" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" + integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== + +parallel-transform@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.2.0.tgz#9049ca37d6cb2182c3b1d2c720be94d14a5814fc" + integrity sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg== + dependencies: + cyclist "^1.0.1" + inherits "^2.0.3" + readable-stream "^2.1.5" + +parent-module@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/parent-module/-/parent-module-1.0.1.tgz#691d2709e78c79fae3a156622452d00762caaaa2" + integrity sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g== + dependencies: + callsites "^3.0.0" + +parse-asn1@^5.0.0: + version "5.1.5" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.5.tgz#003271343da58dc94cace494faef3d2147ecea0e" + integrity sha512-jkMYn1dcJqF6d5CpU689bq7w/b5ALS9ROVSpQDPrZsqqesUJii9qutvoT5ltGedNXMO2e16YUWIghG9KxaViTQ== + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + safe-buffer "^5.1.1" + +parse-entities@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/parse-entities/-/parse-entities-2.0.0.tgz#53c6eb5b9314a1f4ec99fa0fdf7ce01ecda0cbe8" + integrity sha512-kkywGpCcRYhqQIchaWqZ875wzpS/bMKhz5HnN3p7wveJTkTtyAB/AlnS0f8DFSqYW1T82t6yEAkEcB+A1I3MbQ== + dependencies: + character-entities "^1.0.0" + character-entities-legacy "^1.0.0" + character-reference-invalid "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.0" + is-hexadecimal "^1.0.0" + +parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + integrity sha1-9ID0BDTvgHQfhGkJn43qGPVaTck= + dependencies: + error-ex "^1.2.0" + +parse-json@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" + integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= + dependencies: + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + +parse-json@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.0.0.tgz#73e5114c986d143efa3712d4ea24db9a4266f60f" + integrity sha512-OOY5b7PAEFV0E2Fir1KOkxchnZNCdowAJgQ5NuxjpBKTRP3pQhwkrkxqQjeoKJ+fO7bCpmIZaogI4eZGDMEGOw== + dependencies: + "@babel/code-frame" "^7.0.0" + error-ex "^1.3.1" + json-parse-better-errors "^1.0.1" + lines-and-columns "^1.1.6" + +parse-passwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6" + integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY= + +parse-path@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/parse-path/-/parse-path-4.0.1.tgz#0ec769704949778cb3b8eda5e994c32073a1adff" + integrity sha512-d7yhga0Oc+PwNXDvQ0Jv1BuWkLVPXcAoQ/WREgd6vNNoKYaW52KI+RdOFjI63wjkmps9yUE8VS4veP+AgpQ/hA== + dependencies: + is-ssh "^1.3.0" + protocols "^1.4.0" + +parse-url@^5.0.0: + version "5.0.1" + resolved "https://registry.yarnpkg.com/parse-url/-/parse-url-5.0.1.tgz#99c4084fc11be14141efa41b3d117a96fcb9527f" + integrity sha512-flNUPP27r3vJpROi0/R3/2efgKkyXqnXwyP1KQ2U0SfFRgdizOdWfvrrvJg1LuOoxs7GQhmxJlq23IpQ/BkByg== + dependencies: + is-ssh "^1.3.0" + normalize-url "^3.3.0" + parse-path "^4.0.0" + protocols "^1.4.0" + +parse5@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.1.tgz#f68e4e5ba1852ac2cadc00f4555fff6c2abb6178" + integrity sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug== + +parseqs@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" + integrity sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0= + dependencies: + better-assert "~1.0.0" + +parseuri@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" + integrity sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo= + dependencies: + better-assert "~1.0.0" + +parseurl@^1.3.3, parseurl@~1.3.2, parseurl@~1.3.3: + version "1.3.3" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" + integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== + +pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= + +password-prompt@^1.0.4: + version "1.1.2" + resolved "https://registry.yarnpkg.com/password-prompt/-/password-prompt-1.1.2.tgz#85b2f93896c5bd9e9f2d6ff0627fa5af3dc00923" + integrity sha512-bpuBhROdrhuN3E7G/koAju0WjVw9/uQOG5Co5mokNj0MiOSBVZS1JTwM4zl55hu0WFmIEFvO9cU9sJQiBIYeIA== + dependencies: + ansi-escapes "^3.1.0" + cross-spawn "^6.0.5" + +path-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" + integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== + +path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= + +path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + integrity sha1-D+tsZPD8UY2adU3V77YscCJ2H0s= + dependencies: + pinkie-promise "^2.0.0" + +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + integrity sha1-zg6+ql94yxiSXqfYENe1mwEP1RU= + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= + +path-is-inside@^1.0.1, path-is-inside@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + integrity sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM= + +path-key@^2.0.0, path-key@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= + +path-key@^3.0.0, path-key@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" + integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== + +path-parse@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" + integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== + +path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w= + +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + integrity sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM= + dependencies: + pify "^2.0.0" + +path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== + dependencies: + pify "^3.0.0" + +path-type@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" + integrity sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw== + +pbkdf2@^3.0.3: + version "3.0.17" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.17.tgz#976c206530617b14ebb32114239f7b09336e93a6" + integrity sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +physical-cpu-count@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz#18de2f97e4bf7a9551ad7511942b5496f7aba660" + integrity sha1-GN4vl+S/epVRrXURlCtUlverpmA= + +picomatch@^2.0.4, picomatch@^2.0.5, picomatch@^2.0.7, picomatch@^2.2.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad" + integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg== + +pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + integrity sha1-7RQaasBDqEnqWISY59yosVMw6Qw= + +pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= + +pify@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" + integrity sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g== + +pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + integrity sha1-ITXW36ejWMBprJsXh3YogihFD/o= + dependencies: + pinkie "^2.0.0" + +pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + integrity sha1-clVrgM+g1IqXToDnckjoDtT3+HA= + +pkg-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-1.0.0.tgz#7a4b508a8d5bb2d629d447056ff4e9c9314cf3d4" + integrity sha1-ektQio1bstYp1EcFb/TpyTFM89Q= + dependencies: + find-up "^1.0.0" + +pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + integrity sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s= + dependencies: + find-up "^2.1.0" + +pkg-dir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" + integrity sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw== + dependencies: + find-up "^3.0.0" + +pkg-dir@^4.1.0, pkg-dir@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-4.2.0.tgz#f099133df7ede422e81d1d8448270eeb3e4261f3" + integrity sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ== + dependencies: + find-up "^4.0.0" + +pkg-up@2.0.0, pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-up/-/pkg-up-2.0.0.tgz#c819ac728059a461cab1c3889a2be3c49a004d7f" + integrity sha1-yBmscoBZpGHKscOImivjxJoATX8= + dependencies: + find-up "^2.1.0" + +pnp-webpack-plugin@^1.6.4: + version "1.6.4" + resolved "https://registry.yarnpkg.com/pnp-webpack-plugin/-/pnp-webpack-plugin-1.6.4.tgz#c9711ac4dc48a685dabafc86f8b6dd9f8df84149" + integrity sha512-7Wjy+9E3WwLOEL30D+m8TSTF7qJJUJLONBnwQp0518siuMxUQUbgZwssaFX+QKlZkjHZcw/IpZCt/H0srrntSg== + dependencies: + ts-pnp "^1.1.6" + +portfinder@^1.0.25: + version "1.0.25" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.25.tgz#254fd337ffba869f4b9d37edc298059cb4d35eca" + integrity sha512-6ElJnHBbxVA1XSLgBp7G1FiCkQdlqGzuF7DswL5tcea+E8UpuvPU7beVAjjRwCioTS9ZluNbu+ZyRvgTsmqEBg== + dependencies: + async "^2.6.2" + debug "^3.1.1" + mkdirp "^0.5.1" + +posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= + +postcss-calc@^7.0.1: + version "7.0.2" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.2.tgz#504efcd008ca0273120568b0792b16cdcde8aac1" + integrity sha512-rofZFHUg6ZIrvRwPeFktv06GdbDYLcGqh9EwiMutZg+a0oePCCw1zHOEiji6LCpyRcjTREtPASuUqeAvYlEVvQ== + dependencies: + postcss "^7.0.27" + postcss-selector-parser "^6.0.2" + postcss-value-parser "^4.0.2" + +postcss-colormin@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" + integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== + dependencies: + browserslist "^4.0.0" + color "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-convert-values@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" + integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-discard-comments@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" + integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== + dependencies: + postcss "^7.0.0" + +postcss-discard-duplicates@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" + integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== + dependencies: + postcss "^7.0.0" + +postcss-discard-empty@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" + integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== + dependencies: + postcss "^7.0.0" + +postcss-discard-overridden@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" + integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== + dependencies: + postcss "^7.0.0" + +postcss-flexbugs-fixes@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/postcss-flexbugs-fixes/-/postcss-flexbugs-fixes-4.2.0.tgz#662b3dcb6354638b9213a55eed8913bcdc8d004a" + integrity sha512-QRE0n3hpkxxS/OGvzOa+PDuy4mh/Jg4o9ui22/ko5iGYOG3M5dfJabjnAZjTdh2G9F85c7Hv8hWcEDEKW/xceQ== + dependencies: + postcss "^7.0.26" + +postcss-load-config@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-2.1.0.tgz#c84d692b7bb7b41ddced94ee62e8ab31b417b003" + integrity sha512-4pV3JJVPLd5+RueiVVB+gFOAa7GWc25XQcMp86Zexzke69mKf6Nx9LRcQywdz7yZI9n1udOxmLuAwTBypypF8Q== + dependencies: + cosmiconfig "^5.0.0" + import-cwd "^2.0.0" + +postcss-loader@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-3.0.0.tgz#6b97943e47c72d845fa9e03f273773d4e8dd6c2d" + integrity sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA== + dependencies: + loader-utils "^1.1.0" + postcss "^7.0.0" + postcss-load-config "^2.0.0" + schema-utils "^1.0.0" + +postcss-merge-longhand@^4.0.11: + version "4.0.11" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" + integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== + dependencies: + css-color-names "0.0.4" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + stylehacks "^4.0.0" + +postcss-merge-rules@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" + integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + cssnano-util-same-parent "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + vendors "^1.0.0" + +postcss-minify-font-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" + integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-gradients@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" + integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + is-color-stop "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-minify-params@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" + integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== + dependencies: + alphanum-sort "^1.0.0" + browserslist "^4.0.0" + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + uniqs "^2.0.0" + +postcss-minify-selectors@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" + integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== + dependencies: + alphanum-sort "^1.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +postcss-modules-extract-imports@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.1.tgz#dc87e34148ec7eab5f791f7cd5849833375b741a" + integrity sha512-6jt9XZwUhwmRUhb/CkyJY020PYaPJsCyt3UjbaWo6XEbH/94Hmv6MP7fG2C5NDU/BcHzyGYxNtHvM+LTf9HrYw== + dependencies: + postcss "^6.0.1" + +postcss-modules-local-by-default@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-scope@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + +postcss-modules-values@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + +postcss-normalize-charset@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" + integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== + dependencies: + postcss "^7.0.0" + +postcss-normalize-display-values@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" + integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-positions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" + integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== + dependencies: + cssnano-util-get-arguments "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-repeat-style@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" + integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== + dependencies: + cssnano-util-get-arguments "^4.0.0" + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-string@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" + integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== + dependencies: + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-timing-functions@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" + integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== + dependencies: + cssnano-util-get-match "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-unicode@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" + integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-url@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" + integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-normalize-whitespace@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" + integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== + dependencies: + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-ordered-values@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" + integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== + dependencies: + cssnano-util-get-arguments "^4.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-reduce-initial@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" + integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== + dependencies: + browserslist "^4.0.0" + caniuse-api "^3.0.0" + has "^1.0.0" + postcss "^7.0.0" + +postcss-reduce-transforms@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" + integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== + dependencies: + cssnano-util-get-match "^4.0.0" + has "^1.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + +postcss-selector-parser@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" + integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== + dependencies: + dot-prop "^5.2.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-selector-parser@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" + integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== + dependencies: + cssesc "^3.0.0" + indexes-of "^1.0.1" + uniq "^1.0.1" + +postcss-svgo@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" + integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== + dependencies: + is-svg "^3.0.0" + postcss "^7.0.0" + postcss-value-parser "^3.0.0" + svgo "^1.0.0" + +postcss-unique-selectors@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" + integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== + dependencies: + alphanum-sort "^1.0.0" + postcss "^7.0.0" + uniqs "^2.0.0" + +postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" + integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== + +postcss-value-parser@^4.0.2, postcss-value-parser@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.0.3.tgz#651ff4593aa9eda8d5d0d66593a2417aeaeb325d" + integrity sha512-N7h4pG+Nnu5BEIzyeaaIYWs0LI5XC40OrRh5L60z0QjFsqGWcHcbkBvpe1WYpcIS9yQ8sOi/vIPt1ejQCrMVrg== + +postcss@^6.0.1, postcss@^6.0.23: + version "6.0.23" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" + integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== + dependencies: + chalk "^2.4.1" + source-map "^0.6.1" + supports-color "^5.4.0" + +postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.26, postcss@^7.0.27: + version "7.0.27" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.27.tgz#cc67cdc6b0daa375105b7c424a85567345fc54d9" + integrity sha512-WuQETPMcW9Uf1/22HWUWP9lgsIC+KEHg2kozMflKjbeUtw9ujvFX6QmIfozaErDkmLWS9WEnEdEe6Uo9/BNTdQ== + dependencies: + chalk "^2.4.2" + source-map "^0.6.1" + supports-color "^6.1.0" + +prelude-ls@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" + integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= + +prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + integrity sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw= + +prepend-http@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" + integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= + +prettier@^2.0.4: + version "2.0.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.0.5.tgz#d6d56282455243f2f92cc1716692c08aa31522d4" + integrity sha512-7PtVymN48hGcO4fGjybyBSIWDsLU4H4XlvOHfq91pz9kkGlonzwTfYkaIEwiRg/dAJF9YlbsduBAgtYLi+8cFg== + +pretty-error@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + integrity sha1-X0+HyPkeWuPzuoerTPXgOxoX8aM= + dependencies: + renderkid "^2.0.1" + utila "~0.4" + +pretty-format@^25.4.0: + version "25.4.0" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-25.4.0.tgz#c58801bb5c4926ff4a677fe43f9b8b99812c7830" + integrity sha512-PI/2dpGjXK5HyXexLPZU/jw5T9Q6S1YVXxxVxco+LIqzUFHXIbKZKdUVt7GcX7QUCr31+3fzhi4gN4/wUYPVxQ== + dependencies: + "@jest/types" "^25.4.0" + ansi-regex "^5.0.0" + ansi-styles "^4.0.0" + react-is "^16.12.0" + +private@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + integrity sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= + +progress@^2.0.0, progress@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" + integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== + +promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + integrity sha1-mEcocL8igTL8vdhoEputEsPAKeM= + +prompts@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/prompts/-/prompts-2.3.2.tgz#480572d89ecf39566d2bd3fe2c9fccb7c4c0b068" + integrity sha512-Q06uKs2CkNYVID0VqwfAl9mipo99zkBv/n2JtWY89Yxa3ZabWSrs0e2KTudKVa3peLUvYXMefDqIleLPVUBZMA== + dependencies: + kleur "^3.0.3" + sisteransi "^1.0.4" + +prop-types@^15.5.10, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2: + version "15.7.2" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5" + integrity sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.8.1" + +property-information@^5.0.0, property-information@^5.3.0: + version "5.4.0" + resolved "https://registry.yarnpkg.com/property-information/-/property-information-5.4.0.tgz#16e08f13f4e5c4a7be2e4ec431c01c4f8dba869a" + integrity sha512-nmMWAm/3vKFGmmOWOcdLjgq/Hlxa+hsuR/px1Lp/UGEyc5A22A6l78Shc2C0E71sPmAqglni+HrS7L7VJ7AUCA== + dependencies: + xtend "^4.0.0" + +protocols@^1.1.0, protocols@^1.4.0: + version "1.4.7" + resolved "https://registry.yarnpkg.com/protocols/-/protocols-1.4.7.tgz#95f788a4f0e979b291ffefcf5636ad113d037d32" + integrity sha512-Fx65lf9/YDn3hUX08XUc0J8rSux36rEsyiv21ZGUC1mOyeM3lTRpZLcrm8aAolzS4itwVfm7TAPyxC2E5zd6xg== + +proxy-addr@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.6.tgz#fdc2336505447d3f2f2c638ed272caf614bbb2bf" + integrity sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw== + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.9.1" + +prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY= + +pseudomap@^1.0.1, pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= + +public-encrypt@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" + integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + safe-buffer "^5.1.2" + +pump@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + integrity sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pump@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" + integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + +pumpify@^1.3.3: + version "1.5.1" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.5.1.tgz#36513be246ab27570b1a374a5ce278bfd74370ce" + integrity sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ== + dependencies: + duplexify "^3.6.0" + inherits "^2.0.3" + pump "^2.0.0" + +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= + +punycode@^1.2.4: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= + +punycode@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" + integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== + +q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= + +qs@6.7.0: + version "6.7.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.7.0.tgz#41dc1a015e3d581f1621776be31afb2876a9b1bc" + integrity sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ== + +query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + integrity sha1-u7aTucqRXCMlFbIosaArYJBD2+s= + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +query-string@^5.0.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-5.1.1.tgz#a78c012b71c17e05f2e3fa2319dd330682efb3cb" + integrity sha512-gjWOsm2SoGlgLEdAGt7a6slVOk9mGiXmPFMqrEhLQ68rhQuBnpfs3+EmlvqKyxnCo9/PPlF+9MtY02S1aFg+Jw== + dependencies: + decode-uri-component "^0.2.0" + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= + +querystring@0.2.0, querystring@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= + +querystringify@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-2.1.1.tgz#60e5a5fd64a7f8bfa4d2ab2ed6fdf4c85bad154e" + integrity sha512-w7fLxIRCRT7U8Qu53jQnJyPkYZIaR4n5151KMfcJlO/A9397Wxb1amJvROTK6TOnp7PfoAmg/qXiNHI+08jRfA== + +randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + +range-parser@^1.2.1, range-parser@~1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" + integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== + +raw-body@2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.0.tgz#a1ce6fb9c9bc356ca52e89256ab59059e13d0332" + integrity sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q== + dependencies: + bytes "3.1.0" + http-errors "1.7.2" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-body@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.4.1.tgz#30ac82f98bb5ae8c152e67149dac8d55153b168c" + integrity sha512-9WmIKF6mkvA0SLmA2Knm9+qj89e+j1zqgyn8aXGd7+nAduPoqgI9lO57SAZNn/Byzo5P7JhXTyg9PzaJbH73bA== + dependencies: + bytes "3.1.0" + http-errors "1.7.3" + iconv-lite "0.4.24" + unpipe "1.0.0" + +raw-loader@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/raw-loader/-/raw-loader-0.5.1.tgz#0c3d0beaed8a01c966d9787bf778281252a979aa" + integrity sha1-DD0L6u2KAclm2Xh793goElKpeao= + +rc@^1.2.7, rc@^1.2.8: + version "1.2.8" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" + integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== + dependencies: + deep-extend "^0.6.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + +react-dev-utils@^4.2.3: + version "4.2.3" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-4.2.3.tgz#5b42d9ea58d5e9e017a2f57a40a8af408a3a46fb" + integrity sha512-uvmkwl5uMexCmC0GUv1XGQP0YjfYePJufGg4YYiukhqk2vN1tQxwWJIBERqhOmSi80cppZg8mZnPP/kOMf1sUQ== + dependencies: + address "1.0.3" + babel-code-frame "6.26.0" + chalk "1.1.3" + cross-spawn "5.1.0" + detect-port-alt "1.1.3" + escape-string-regexp "1.0.5" + filesize "3.5.11" + global-modules "1.0.0" + gzip-size "3.0.0" + inquirer "3.3.0" + is-root "1.0.0" + opn "5.1.0" + react-error-overlay "^3.0.0" + recursive-readdir "2.2.1" + shell-quote "1.6.1" + sockjs-client "1.1.4" + strip-ansi "3.0.1" + text-table "0.2.0" + +react-dev-utils@^9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/react-dev-utils/-/react-dev-utils-9.1.0.tgz#3ad2bb8848a32319d760d0a84c56c14bdaae5e81" + integrity sha512-X2KYF/lIGyGwP/F/oXgGDF24nxDA2KC4b7AFto+eqzc/t838gpSGiaU8trTqHXOohuLxxc5qi1eDzsl9ucPDpg== + dependencies: + "@babel/code-frame" "7.5.5" + address "1.1.2" + browserslist "4.7.0" + chalk "2.4.2" + cross-spawn "6.0.5" + detect-port-alt "1.1.6" + escape-string-regexp "1.0.5" + filesize "3.6.1" + find-up "3.0.0" + fork-ts-checker-webpack-plugin "1.5.0" + global-modules "2.0.0" + globby "8.0.2" + gzip-size "5.1.1" + immer "1.10.0" + inquirer "6.5.0" + is-root "2.1.0" + loader-utils "1.2.3" + open "^6.3.0" + pkg-up "2.0.0" + react-error-overlay "^6.0.3" + recursive-readdir "2.2.2" + shell-quote "1.7.2" + sockjs-client "1.4.0" + strip-ansi "5.2.0" + text-table "0.2.0" + +react-error-overlay@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-3.0.0.tgz#c2bc8f4d91f1375b3dad6d75265d51cd5eeaf655" + integrity sha512-XzgvowFrwDo6TWcpJ/WTiarb9UI6lhA4PMzS7n1joK3sHfBBBOQHUc0U4u57D6DWO9vHv6lVSWx2Q/Ymfyv4hw== + +react-error-overlay@^6.0.3: + version "6.0.7" + resolved "https://registry.yarnpkg.com/react-error-overlay/-/react-error-overlay-6.0.7.tgz#1dcfb459ab671d53f660a991513cb2f0a0553108" + integrity sha512-TAv1KJFh3RhqxNvhzxj6LeT5NWklP6rDr2a0jaTfsZ5wSZWHOGeqQyejUp3xxLfPt2UpyJEcVQB/zyPcmonNFA== + +react-hot-loader@^4.12.20: + version "4.12.20" + resolved "https://registry.yarnpkg.com/react-hot-loader/-/react-hot-loader-4.12.20.tgz#c2c42362a7578e5c30357a5ff7afa680aa0bef8a" + integrity sha512-lPlv1HVizi0lsi+UFACBJaydtRYILWkfHAC/lyCs6ZlAxlOZRQIfYHDqiGaRvL/GF7zyti+Qn9XpnDAUvdFA4A== + dependencies: + fast-levenshtein "^2.0.6" + global "^4.3.0" + hoist-non-react-statics "^3.3.0" + loader-utils "^1.1.0" + prop-types "^15.6.1" + react-lifecycles-compat "^3.0.4" + shallowequal "^1.1.0" + source-map "^0.7.3" + +react-is@^16.12.0, react-is@^16.7.0, react-is@^16.8.1: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +react-lifecycles-compat@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362" + integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA== + +react-reconciler@^0.24.0: + version "0.24.0" + resolved "https://registry.yarnpkg.com/react-reconciler/-/react-reconciler-0.24.0.tgz#5a396b2c2f5efe8554134a5935f49f546723f2dd" + integrity sha512-gAGnwWkf+NOTig9oOowqid9O0HjTDC+XVGBCAmJYYJ2A2cN/O4gDdIuuUQjv8A4v6GDwVfJkagpBBLW5OW9HSw== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + scheduler "^0.18.0" + +react-refresh@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/react-refresh/-/react-refresh-0.7.2.tgz#f30978d21eb8cac6e2f2fde056a7d04f6844dd50" + integrity sha512-u5l7fhAJXecWUJzVxzMRU2Zvw8m4QmDNHlTrT5uo3KBlYBhmChd7syAakBoay1yIiVhx/8Fi7a6v6kQZfsw81Q== + +react@^16.8.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react/-/react-16.13.1.tgz#2e818822f1a9743122c063d6410d85c1e3afe48e" + integrity sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + prop-types "^15.6.2" + +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + integrity sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4= + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + integrity sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg= + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +read@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/read/-/read-1.0.7.tgz#b3da19bd052431a97671d44a42634adf710b40c4" + integrity sha1-s9oZvQUkMal2cdRKQmNK33ELQMQ= + dependencies: + mute-stream "~0.0.4" + +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.6, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.6: + version "2.3.7" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" + integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readable-stream@^3.0.6, readable-stream@^3.1.1: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" + integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw= + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readdirp@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" + integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== + dependencies: + graceful-fs "^4.1.11" + micromatch "^3.1.10" + readable-stream "^2.0.2" + +readdirp@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.3.0.tgz#984458d13a1e42e2e9f5841b129e162f369aff17" + integrity sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ== + dependencies: + picomatch "^2.0.7" + +recursive-readdir@2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.1.tgz#90ef231d0778c5ce093c9a48d74e5c5422d13a99" + integrity sha1-kO8jHQd4xc4JPJpI105cVCLROpk= + dependencies: + minimatch "3.0.3" + +recursive-readdir@2.2.2: + version "2.2.2" + resolved "https://registry.yarnpkg.com/recursive-readdir/-/recursive-readdir-2.2.2.tgz#9946fb3274e1628de6e36b2f6714953b4845094f" + integrity sha512-nRCcW9Sj7NuZwa2XvH9co8NPeXUBhZP7CRKJtU+cS6PW9FpCIFoI5ib0NT1ZrbNuPoRy0ylyCaUL8Gih4LSyFg== + dependencies: + minimatch "3.0.4" + +redux-thunk@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/redux-thunk/-/redux-thunk-2.3.0.tgz#51c2c19a185ed5187aaa9a2d08b666d0d6467622" + integrity sha512-km6dclyFnmcvxhAcrQV2AkZmPQjzPDjgVlQtR0EQjxZPyJ0BnMf3in1ryuR8A2qU0HldVRfxYXbFSKlI3N7Slw== + +redux@^4.0.5: + version "4.0.5" + resolved "https://registry.yarnpkg.com/redux/-/redux-4.0.5.tgz#4db5de5816e17891de8a80c424232d06f051d93f" + integrity sha512-VSz1uMAH24DM6MF72vcojpYPtrTUu3ByVWfPL1nPfVRb5mZVTve5GnNCUV53QM/BZ66xfWrm0CTWoM+Xlz8V1w== + dependencies: + loose-envify "^1.4.0" + symbol-observable "^1.2.0" + +regenerate-unicode-properties@^8.2.0: + version "8.2.0" + resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" + integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== + dependencies: + regenerate "^1.4.0" + +regenerate@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.0.tgz#4a856ec4b56e4077c557589cae85e7a4c8869a11" + integrity sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg== + +regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== + +regenerator-runtime@^0.13.4: + version "0.13.5" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.5.tgz#d878a1d094b4306d10b9096484b33ebd55e26697" + integrity sha512-ZS5w8CpKFinUzOwW3c83oPeVXoNsrLsaCoLtJvAClH135j/R77RuymhiSErhm2lKcwSCIpmvIWSbDkIfAqKQlA== + +regenerator-transform@^0.14.2: + version "0.14.4" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.4.tgz#5266857896518d1616a78a0479337a30ea974cc7" + integrity sha512-EaJaKPBI9GvKpvUz2mz4fhx7WPgvwRLY9v3hlNHWmAuJHI13T4nwKnNvm5RWJzEdnI5g5UwtOww+S8IdoUC2bw== + dependencies: + "@babel/runtime" "^7.8.4" + private "^0.1.8" + +regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + +regexp.prototype.flags@^1.2.0, regexp.prototype.flags@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz#7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75" + integrity sha512-2+Q0C5g951OlYlJz6yu5/M33IcsESLlLfsyIaLJaG4FA2r4yP8MvVMJUUP/fVBkSpbbbZlS5gynbEWLipiiXiQ== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0-next.1" + +regexpp@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" + integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== + +regexpp@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2" + integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q== + +regexpu-core@^4.5.4, regexpu-core@^4.6.0, regexpu-core@^4.7.0: + version "4.7.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.0.tgz#fcbf458c50431b0bb7b45d6967b8192d91f3d938" + integrity sha512-TQ4KXRnIn6tz6tjnrXEkD/sshygKH/j5KzK86X8MkeHyZ8qst/LZ89j3X4/8HEIfHANTFIP/AbXakeRhWIl5YQ== + dependencies: + regenerate "^1.4.0" + regenerate-unicode-properties "^8.2.0" + regjsgen "^0.5.1" + regjsparser "^0.6.4" + unicode-match-property-ecmascript "^1.0.4" + unicode-match-property-value-ecmascript "^1.2.0" + +registry-auth-token@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.1.1.tgz#40a33be1e82539460f94328b0f7f0f84c16d9479" + integrity sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA== + dependencies: + rc "^1.2.8" + +registry-url@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" + integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== + dependencies: + rc "^1.2.8" + +regjsgen@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.1.tgz#48f0bf1a5ea205196929c0d9798b42d1ed98443c" + integrity sha512-5qxzGZjDs9w4tzT3TPhCJqWdCc3RLYwy9J2NB0nm5Lz+S273lvWcpjaTGHsT1dc6Hhfq41uSEOw8wBmxrKOuyg== + +regjsparser@^0.6.4: + version "0.6.4" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272" + integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw== + dependencies: + jsesc "~0.5.0" + +remark-footnotes@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/remark-footnotes/-/remark-footnotes-1.0.0.tgz#9c7a97f9a89397858a50033373020b1ea2aad011" + integrity sha512-X9Ncj4cj3/CIvLI2Z9IobHtVi8FVdUrdJkCNaL9kdX8ohfsi18DXHsCVd/A7ssARBdccdDb5ODnt62WuEWaM/g== + +remark-mdx@^1.5.9: + version "1.5.9" + resolved "https://registry.yarnpkg.com/remark-mdx/-/remark-mdx-1.5.9.tgz#844311a162ad1a555f57914b3514069d0d47745d" + integrity sha512-HFr/VOVoJ2lnZsN090wttFTcqXIker49S5JT3Tem8SKMeQoRA9Pl+iIlEOZau+C9w6ISZj79l6nwzrflAa5VDA== + dependencies: + "@babel/core" "7.9.0" + "@babel/helper-plugin-utils" "7.8.3" + "@babel/plugin-proposal-object-rest-spread" "7.9.5" + "@babel/plugin-syntax-jsx" "7.8.3" + "@mdx-js/util" "^1.5.9" + is-alphabetical "1.0.4" + remark-parse "8.0.1" + unified "9.0.0" + +remark-parse@8.0.1: + version "8.0.1" + resolved "https://registry.yarnpkg.com/remark-parse/-/remark-parse-8.0.1.tgz#7fc95d8f2b58fc6791cffb54803c763eb3756743" + integrity sha512-Ye/5W57tdQZWsfkuVyRq9SUWRgECHnDsMuyUMzdSKpTbNPkZeGtoYfsrkeSi4+Xyl0mhcPPddHITXPcCPHrl3w== + dependencies: + ccount "^1.0.0" + collapse-white-space "^1.0.2" + is-alphabetical "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + is-word-character "^1.0.0" + markdown-escapes "^1.0.0" + parse-entities "^2.0.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + trim "0.0.1" + trim-trailing-lines "^1.0.0" + unherit "^1.0.4" + unist-util-remove-position "^2.0.0" + vfile-location "^3.0.0" + xtend "^4.0.1" + +remark-squeeze-paragraphs@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/remark-squeeze-paragraphs/-/remark-squeeze-paragraphs-4.0.0.tgz#76eb0e085295131c84748c8e43810159c5653ead" + integrity sha512-8qRqmL9F4nuLPIgl92XUuxI3pFxize+F1H0e/W3llTk0UsjJaj01+RrirkMw7P21RKe4X6goQhYRSvNWX+70Rw== + dependencies: + mdast-squeeze-paragraphs "^4.0.0" + +remark-stringify@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/remark-stringify/-/remark-stringify-8.0.0.tgz#33423ab8bf3076fb197f4cf582aaaf866b531625" + integrity sha512-cABVYVloFH+2ZI5bdqzoOmemcz/ZuhQSH6W6ZNYnLojAUUn3xtX7u+6BpnYp35qHoGr2NFBsERV14t4vCIeW8w== + dependencies: + ccount "^1.0.0" + is-alphanumeric "^1.0.0" + is-decimal "^1.0.0" + is-whitespace-character "^1.0.0" + longest-streak "^2.0.1" + markdown-escapes "^1.0.0" + markdown-table "^2.0.0" + mdast-util-compact "^2.0.0" + parse-entities "^2.0.0" + repeat-string "^1.5.4" + state-toggle "^1.0.0" + stringify-entities "^3.0.0" + unherit "^1.0.4" + xtend "^4.0.1" + +remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= + +renderkid@^2.0.1: + version "2.0.3" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.3.tgz#380179c2ff5ae1365c522bf2fcfcff01c5b74149" + integrity sha512-z8CLQp7EZBPCwCnncgf9C4XAi3WR0dv+uWu/PjIyhhAb5d6IJ/QZqlHFprHeKT+59//V6BNUsLbvN8+2LarxGA== + dependencies: + css-select "^1.1.0" + dom-converter "^0.2" + htmlparser2 "^3.3.0" + strip-ansi "^3.0.0" + utila "^0.4.0" + +repeat-element@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" + integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== + +repeat-string@^1.0.0, repeat-string@^1.5.4, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= + +replace-ext@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/replace-ext/-/replace-ext-1.0.0.tgz#de63128373fcbf7c3ccfa4de5a480c45a67958eb" + integrity sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs= + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= + +require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + integrity sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE= + +require-main-filename@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-2.0.0.tgz#d0b329ecc7cc0f61649f62215be69af54aa8989b" + integrity sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg== + +requires-port@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= + +resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + integrity sha1-AKn3OHVW4nA46uIyyqNypqWbZlo= + dependencies: + resolve-from "^3.0.0" + +resolve-dir@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-dir/-/resolve-dir-1.0.1.tgz#79a40644c362be82f26effe739c9bb5382046f43" + integrity sha1-eaQGRMNivoLybv/nOcm7U4IEb0M= + dependencies: + expand-tilde "^2.0.0" + global-modules "^1.0.0" + +resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + integrity sha1-six699nWiBvItuZTM17rywoYh0g= + +resolve-from@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" + integrity sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g== + +resolve-url@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= + +resolve@^1.10.0, resolve@^1.12.0, resolve@^1.13.1, resolve@^1.15.1, resolve@^1.3.2, resolve@^1.8.1: + version "1.17.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz#b25941b54968231cc2d1bb76a79cb7f2c0bf8444" + integrity sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w== + dependencies: + path-parse "^1.0.6" + +responselike@1.0.2, responselike@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" + integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= + dependencies: + lowercase-keys "^1.0.0" + +restore-cursor@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" + integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= + dependencies: + onetime "^2.0.0" + signal-exit "^3.0.2" + +restore-cursor@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz#39f67c54b3a7a58cea5236d95cf0034239631f7e" + integrity sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA== + dependencies: + onetime "^5.1.0" + signal-exit "^3.0.2" + +ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== + +retry@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" + integrity sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs= + +reusify@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" + integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== + +rgb-regex@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" + integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= + +rgba-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" + integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= + +rimraf@2.6.3: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + +rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@^2.6.3: + version "2.7.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" + integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== + dependencies: + glob "^7.1.3" + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +run-async@^2.2.0, run-async@^2.4.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.0.tgz#e59054a5b86876cfae07f431d18cbaddc594f1e8" + integrity sha512-xJTbh/d7Lm7SBhc1tNvTpeCHaEzoyxPrqNlvSdMfBTYwaY++UJFyXUOxAtsRUXjlqOfj8luNaR9vjCh4KeV+pg== + dependencies: + is-promise "^2.1.0" + +run-parallel@^1.1.9: + version "1.1.9" + resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" + integrity sha512-DEqnSRTDw/Tc3FXf49zedI638Z9onwUotBMiUFKmrO2sdFKIbXamXGQ3Axd4qgphxKB4kw/qP1w5kTxnfU1B9Q== + +run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + integrity sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec= + dependencies: + aproba "^1.1.1" + +rx-lite-aggregates@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite-aggregates/-/rx-lite-aggregates-4.0.8.tgz#753b87a89a11c95467c4ac1626c4efc4e05c67be" + integrity sha1-dTuHqJoRyVRnxKwWJsTvxOBcZ74= + dependencies: + rx-lite "*" + +rx-lite@*, rx-lite@^4.0.8: + version "4.0.8" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-4.0.8.tgz#0b1e11af8bc44836f04a6407e92da42467b79444" + integrity sha1-Cx4Rr4vESDbwSmQH6S2kJGe3lEQ= + +rxjs@^6.4.0, rxjs@^6.5.3: + version "6.5.5" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.5.tgz#c5c884e3094c8cfee31bf27eb87e54ccfc87f9ec" + integrity sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ== + dependencies: + tslib "^1.9.0" + +safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +safe-buffer@>=5.1.0, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@~5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" + integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== + +safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= + dependencies: + ret "~0.1.10" + +"safer-buffer@>= 2.1.2 < 3": + version "2.1.2" + resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" + integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== + +sax@^1.2.4, sax@~1.2.4: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== + +scheduler@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/scheduler/-/scheduler-0.18.0.tgz#5901ad6659bc1d8f3fdaf36eb7a67b0d6746b1c4" + integrity sha512-agTSHR1Nbfi6ulI0kYNK0203joW2Y5W4po4l+v03tOoiJKpTBbxpNhWDvqc/4IcOw+KLmSiQLTasZ4cab2/UWQ== + dependencies: + loose-envify "^1.1.0" + object-assign "^4.1.1" + +schema-utils@^0.4.5: + version "0.4.7" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.7.tgz#ba74f597d2be2ea880131746ee17d0a093c68187" + integrity sha512-v/iwU6wvwGK8HbU9yi3/nhGzP0yGSuhQMzL6ySiec1FSrZZDkhm4noOSWzrNFo/jEc+SJY6jRTwuwbSXJPDUnQ== + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + +schema-utils@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-1.0.0.tgz#0b79a93204d7b600d4b2850d1f66c2a34951c770" + integrity sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g== + dependencies: + ajv "^6.1.0" + ajv-errors "^1.0.0" + ajv-keywords "^3.1.0" + +schema-utils@^2.6.5: + version "2.6.6" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-2.6.6.tgz#299fe6bd4a3365dc23d99fd446caff8f1d6c330c" + integrity sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA== + dependencies: + ajv "^6.12.0" + ajv-keywords "^3.4.1" + +scroll-behavior@^0.9.12: + version "0.9.12" + resolved "https://registry.yarnpkg.com/scroll-behavior/-/scroll-behavior-0.9.12.tgz#1c22d273ec4ce6cd4714a443fead50227da9424c" + integrity sha512-18sirtyq1P/VsBX6O/vgw20Np+ngduFXEMO4/NDFXabdOKBL2kjPVUpz1y0+jm99EWwFJafxf5/tCyMeXt9Xyg== + dependencies: + dom-helpers "^3.4.0" + invariant "^2.2.4" + +select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + integrity sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo= + +selfsigned@^1.10.7: + version "1.10.7" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.7.tgz#da5819fd049d5574f28e88a9bcc6dbc6e6f3906b" + integrity sha512-8M3wBCzeWIJnQfl43IKwOmC4H/RAp50S8DF60znzjW5GVqTcSe2vWclt7hmYVPkKPlHWOu5EaWOMZ2Y6W8ZXTA== + dependencies: + node-forge "0.9.0" + +semver-diff@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" + integrity sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY= + dependencies: + semver "^5.0.3" + +"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1: + version "5.7.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" + integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== + +semver@7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" + integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== + +semver@^6.0.0, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" + integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== + +send@0.17.1: + version "0.17.1" + resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" + integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.7.2" + mime "1.6.0" + ms "2.1.1" + on-finished "~2.3.0" + range-parser "~1.2.1" + statuses "~1.5.0" + +serialize-javascript@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61" + integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ== + +serve-index@^1.9.1: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + integrity sha1-03aNabHn2C5c4FD/9bRTvqEqkjk= + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + +serve-static@1.14.1: + version "1.14.1" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" + integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.3" + send "0.17.1" + +set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + integrity sha1-BF+XgtARrppoA93TgrJDkrPYkPc= + +set-value@^2.0.0, set-value@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" + integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= + +setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + integrity sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ== + +setprototypeof@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" + integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +shallow-compare@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/shallow-compare/-/shallow-compare-1.2.2.tgz#fa4794627bf455a47c4f56881d8a6132d581ffdb" + integrity sha512-LUMFi+RppPlrHzbqmFnINTrazo0lPNwhcgzuAXVVcfy/mqPDrQmHAyz5bvV0gDAuRFrk804V0HpQ6u9sZ0tBeg== + +shallowequal@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/shallowequal/-/shallowequal-1.1.0.tgz#188d521de95b9087404fd4dcb68b13df0ae4e7f8" + integrity sha512-y0m1JoUZSlPAjXVtPPW70aZWfIL/dSP7AFkRnniLCrK/8MDKog3TySTBmckD+RObVxH0v4Tox67+F14PdED2oQ== + +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= + dependencies: + shebang-regex "^1.0.0" + +shebang-command@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" + integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== + dependencies: + shebang-regex "^3.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= + +shebang-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" + integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== + +shell-quote@1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + integrity sha1-9HgZSczkAmlxJ0MOo7PFR29IF2c= + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + +shell-quote@1.7.2: + version "1.7.2" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.7.2.tgz#67a7d02c76c9da24f99d20808fcaded0e0e04be2" + integrity sha512-mRz/m/JVscCrkMyPqHc/bczi3OQHkLTqXHEFu0zDhK/qfv3UcOA4SVmRCLmos4bhjr9ekVQubj/R7waKapmiQg== + +side-channel@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz#df5d1abadb4e4bf4af1cd8852bf132d2f7876947" + integrity sha512-7rL9YlPHg7Ancea1S96Pa8/QWb4BtXL/TZvS6B8XFetGBeuhAsfmUspK6DokBeZ64+Kj9TCNRD/30pVz1BvQNA== + dependencies: + es-abstract "^1.17.0-next.1" + object-inspect "^1.7.0" + +sift@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/sift/-/sift-5.1.0.tgz#1bbf2dfb0eb71e56c4cc7fb567fbd1351b65015e" + integrity sha1-G78t+w63HlbEzH+1Z/vRNRtlAV4= + +signal-exit@^3.0.0, signal-exit@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" + integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== + +simple-swizzle@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" + integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= + dependencies: + is-arrayish "^0.3.1" + +single-trailing-newline@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/single-trailing-newline/-/single-trailing-newline-1.0.0.tgz#81f0ad2ad645181945c80952a5c1414992ee9664" + integrity sha1-gfCtKtZFGBlFyAlSpcFBSZLulmQ= + dependencies: + detect-newline "^1.0.3" + +sisteransi@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" + integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== + +slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU= + +slash@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" + integrity sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q== + +slice-ansi@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" + integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== + dependencies: + ansi-styles "^3.2.0" + astral-regex "^1.0.0" + is-fullwidth-code-point "^2.0.0" + +slice-ansi@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-3.0.0.tgz#31ddc10930a1b7e0b67b08c96c2f49b77a789787" + integrity sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ== + dependencies: + ansi-styles "^4.0.0" + astral-regex "^2.0.0" + is-fullwidth-code-point "^3.0.0" + +slugify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.4.0.tgz#c9557c653c54b0c7f7a8e786ef3431add676d2cb" + integrity sha512-FtLNsMGBSRB/0JOE2A0fxlqjI6fJsgHGS13iTuVT28kViI4JjUiNqp/vyis0ZXYcMnpR3fzGNkv+6vRlI2GwdQ== + +snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + +snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== + dependencies: + kind-of "^3.2.0" + +snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + +socket.io-adapter@~1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz#ab3f0d6f66b8fc7fca3959ab5991f82221789be9" + integrity sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g== + +socket.io-client@2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-2.3.0.tgz#14d5ba2e00b9bcd145ae443ab96b3f86cbcc1bb4" + integrity sha512-cEQQf24gET3rfhxZ2jJ5xzAOo/xhZwK+mOqtGRg5IowZsMgwvHwnf/mCRapAAkadhM26y+iydgwsXGObBB5ZdA== + dependencies: + backo2 "1.0.2" + base64-arraybuffer "0.1.5" + component-bind "1.0.0" + component-emitter "1.2.1" + debug "~4.1.0" + engine.io-client "~3.4.0" + has-binary2 "~1.0.2" + has-cors "1.1.0" + indexof "0.0.1" + object-component "0.0.3" + parseqs "0.0.5" + parseuri "0.0.5" + socket.io-parser "~3.3.0" + to-array "0.1.4" + +socket.io-parser@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.3.0.tgz#2b52a96a509fdf31440ba40fed6094c7d4f1262f" + integrity sha512-hczmV6bDgdaEbVqhAeVMM/jfUfzuEZHsQg6eOmLgJht6G3mPKMxYm75w2+qhAQZ+4X+1+ATZ+QFKeOZD5riHng== + dependencies: + component-emitter "1.2.1" + debug "~3.1.0" + isarray "2.0.1" + +socket.io-parser@~3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-3.4.0.tgz#370bb4a151df2f77ce3345ff55a7072cc6e9565a" + integrity sha512-/G/VOI+3DBp0+DJKW4KesGnQkQPFmUCbA/oO2QGT6CWxU7hLGWqU3tyuzeSK/dqcyeHsQg1vTe9jiZI8GU9SCQ== + dependencies: + component-emitter "1.2.1" + debug "~4.1.0" + isarray "2.0.1" + +socket.io@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-2.3.0.tgz#cd762ed6a4faeca59bc1f3e243c0969311eb73fb" + integrity sha512-2A892lrj0GcgR/9Qk81EaY2gYhCBxurV0PfmmESO6p27QPrUK1J3zdns+5QPqvUYK2q657nSj0guoIil9+7eFg== + dependencies: + debug "~4.1.0" + engine.io "~3.4.0" + has-binary2 "~1.0.2" + socket.io-adapter "~1.1.0" + socket.io-client "2.3.0" + socket.io-parser "~3.4.0" + +sockjs-client@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" + integrity sha1-W6vjhrd15M8U51IJEUUmVAFsixI= + dependencies: + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" + +sockjs-client@1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.4.0.tgz#c9f2568e19c8fd8173b4997ea3420e0bb306c7d5" + integrity sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g== + dependencies: + debug "^3.2.5" + eventsource "^1.0.7" + faye-websocket "~0.11.1" + inherits "^2.0.3" + json3 "^3.3.2" + url-parse "^1.4.3" + +sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + integrity sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw== + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + +sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + integrity sha1-RBttTTRnmPG05J6JIK37oOVD+a0= + dependencies: + is-plain-obj "^1.0.0" + +sort-keys@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-2.0.0.tgz#658535584861ec97d730d6cf41822e1f56684128" + integrity sha1-ZYU1WEhh7JfXMNbPQYIuH1ZoQSg= + dependencies: + is-plain-obj "^1.0.0" + +source-list-map@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34" + integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw== + +source-map-resolve@^0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" + integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== + dependencies: + atob "^2.1.2" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + +source-map-support@~0.5.12: + version "0.5.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.18.tgz#f5f33489e270bd7f7d7e7b8debf283f3a4066960" + integrity sha512-9luZr/BZ2QeU6tO2uG8N2aZpVSli4TSAOAqFOyTO51AJcD9P99c0K1h6dD6r6qo5dyT44BR5exweOaLLeldTkQ== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + integrity sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM= + +source-map@0.7.3, source-map@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" + integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== + +source-map@^0.5.0, source-map@^0.5.6: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= + +source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +sourcemap-codec@^1.4.4: + version "1.4.8" + resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4" + integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA== + +space-separated-tokens@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/space-separated-tokens/-/space-separated-tokens-1.1.5.tgz#85f32c3d10d9682007e917414ddc5c26d1aa6899" + integrity sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA== + +spdx-correct@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.0.tgz#fb83e504445268f154b074e218c87c003cd31df4" + integrity sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q== + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + +spdx-exceptions@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" + integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== + +spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + integrity sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg== + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + +spdx-license-ids@^3.0.0: + version "3.0.5" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz#3694b5804567a458d3c8045842a6358632f62654" + integrity sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q== + +spdy-transport@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31" + integrity sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw== + dependencies: + debug "^4.1.0" + detect-node "^2.0.4" + hpack.js "^2.1.6" + obuf "^1.1.2" + readable-stream "^3.0.6" + wbuf "^1.7.3" + +spdy@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-4.0.2.tgz#b74f466203a3eda452c02492b91fb9e84a27677b" + integrity sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA== + dependencies: + debug "^4.1.0" + handle-thing "^2.0.0" + http-deceiver "^1.2.7" + select-hose "^2.0.0" + spdy-transport "^3.0.0" + +split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== + dependencies: + extend-shallow "^3.0.0" + +sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= + +ssri@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-6.0.1.tgz#2a3c41b28dd45b62b63676ecb74001265ae9edd8" + integrity sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA== + dependencies: + figgy-pudding "^3.5.1" + +stable@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" + integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== + +stack-trace@^0.0.10: + version "0.0.10" + resolved "https://registry.yarnpkg.com/stack-trace/-/stack-trace-0.0.10.tgz#547c70b347e8d32b4e108ea1a2a159e5fdde19c0" + integrity sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA= + +stack-utils@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/stack-utils/-/stack-utils-1.0.2.tgz#33eba3897788558bebfc2db059dc158ec36cebb8" + integrity sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA== + +stackframe@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stackframe/-/stackframe-1.1.1.tgz#ffef0a3318b1b60c3b58564989aca5660729ec71" + integrity sha512-0PlYhdKh6AfFxRyK/v+6/k+/mMfyiEBbTM5L94D0ZytQnJ166wuwoTYLHFWGbs2dpA8Rgq763KGWmN1EQEYHRQ== + +state-toggle@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/state-toggle/-/state-toggle-1.0.3.tgz#e123b16a88e143139b09c6852221bc9815917dfe" + integrity sha512-d/5Z4/2iiCnHw6Xzghyhb+GcmF89bxwgXG60wjIiZaxnymbyOmI8Hk4VqHXiVVp6u2ysaskFfXg3ekCj4WNftQ== + +static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + +"statuses@>= 1.4.0 < 2", "statuses@>= 1.5.0 < 2", statuses@~1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= + +stream-browserify@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" + integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-each@^1.1.0: + version "1.2.3" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.3.tgz#ebe27a0c389b04fbcc233642952e10731afa9bae" + integrity sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw== + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + +stream-http@^2.7.2: + version "2.8.3" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" + integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + +stream-shift@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" + integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== + +strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + integrity sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM= + +string-length@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-length/-/string-length-3.1.0.tgz#107ef8c23456e187a8abd4a61162ff4ac6e25837" + integrity sha512-Ttp5YvkGm5v9Ijagtaz1BnN+k9ObpvS0eIBblPMp2YWL8FBmi9qblQ9fexc2k/CXFgrTIteU3jAw3payCnwSTA== + dependencies: + astral-regex "^1.0.0" + strip-ansi "^5.2.0" + +string-similarity@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/string-similarity/-/string-similarity-1.2.2.tgz#99b2c20a3c9bbb3903964eae1d89856db3d8db9b" + integrity sha512-IoHUjcw3Srl8nsPlW04U3qwWPk3oG2ffLM0tN853d/E/JlIvcmZmDY2Kz5HzKp4lEi2T7QD7Zuvjq/1rDw+XcQ== + dependencies: + lodash.every "^4.6.0" + lodash.flattendeep "^4.4.0" + lodash.foreach "^4.5.0" + lodash.map "^4.6.0" + lodash.maxby "^4.6.0" + +string-width@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + integrity sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M= + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + +"string-width@^1.0.2 || 2", string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + +string-width@^3.0.0, string-width@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" + integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== + dependencies: + emoji-regex "^7.0.1" + is-fullwidth-code-point "^2.0.0" + strip-ansi "^5.1.0" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.0.tgz#952182c46cc7b2c313d1596e623992bd163b72b5" + integrity sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.0" + +string.prototype.matchall@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz#48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e" + integrity sha512-N/jp6O5fMf9os0JU3E72Qhf590RSRZU/ungsL/qJUYVTNv7hTG0P/dbPjxINVN9jpscu3nzYwKESU3P3RY5tOg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.0" + has-symbols "^1.0.1" + internal-slot "^1.0.2" + regexp.prototype.flags "^1.3.0" + side-channel "^1.0.2" + +string.prototype.trimend@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz#85812a6b847ac002270f5808146064c995fb6913" + integrity sha512-LRPxFUaTtpqYsTeNKaFOw3R4bxIzWOnbQ837QfBylo8jIxtcbK/A/sMV7Q+OAV/vWo+7s25pOE10KYSjaSO06g== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string.prototype.trimleft@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimleft/-/string.prototype.trimleft-2.1.2.tgz#4408aa2e5d6ddd0c9a80739b087fbc067c03b3cc" + integrity sha512-gCA0tza1JBvqr3bfAIFJGqfdRTyPae82+KTnm3coDXkZN9wnuW3HjGgN386D7hfv5CHQYCI022/rJPVlqXyHSw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimstart "^1.0.0" + +string.prototype.trimright@^2.1.1: + version "2.1.2" + resolved "https://registry.yarnpkg.com/string.prototype.trimright/-/string.prototype.trimright-2.1.2.tgz#c76f1cef30f21bbad8afeb8db1511496cfb0f2a3" + integrity sha512-ZNRQ7sY3KroTaYjRS6EbNiiHrOkjihL9aQE/8gfQ4DtAC/aEBRHFJa44OmoWxGGqXuJlfKkZW4WcXErGr+9ZFg== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + string.prototype.trimend "^1.0.0" + +string.prototype.trimstart@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz#14af6d9f34b053f7cfc89b72f8f2ee14b9039a54" + integrity sha512-XxZn+QpvrBI1FOcg6dIpxUPgWCPuNXvMD72aaRaUQv1eD4e/Qy8i/hFTe0BUmD60p/QA6bh1avmuPTfNjqVWRw== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.5" + +string_decoder@^1.0.0, string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ= + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +stringify-entities@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/stringify-entities/-/stringify-entities-3.0.0.tgz#455abe501f8b7859ba5726a25a8872333c65b0a7" + integrity sha512-h7NJJIssprqlyjHT2eQt2W1F+MCcNmwPGlKb0bWEdET/3N44QN3QbUF/ueKCgAssyKRZ3Br9rQ7FcXjHr0qLHw== + dependencies: + character-entities-html4 "^1.0.0" + character-entities-legacy "^1.0.0" + is-alphanumerical "^1.0.0" + is-decimal "^1.0.2" + is-hexadecimal "^1.0.0" + +strip-ansi@3.0.1, strip-ansi@^3, strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= + dependencies: + ansi-regex "^2.0.0" + +strip-ansi@5.2.0, strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0: + version "5.2.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" + integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== + dependencies: + ansi-regex "^4.1.0" + +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= + dependencies: + ansi-regex "^3.0.0" + +strip-ansi@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" + integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== + dependencies: + ansi-regex "^5.0.0" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= + +strip-bom@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" + integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== + +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8= + +strip-final-newline@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" + integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== + +strip-json-comments@^3.0.1: + version "3.1.0" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.0.tgz#7638d31422129ecf4457440009fba03f9f9ac180" + integrity sha512-e6/d0eBu7gHtdCqFt0xJr642LdToM5/cN4Qb9DbHjVx1CP5RyeM+zH7pbecEmDv/lBqb0QH+6Uqq75rxFPkM0w== + +strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= + +style-loader@^0.23.1: + version "0.23.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.23.1.tgz#cb9154606f3e771ab6c4ab637026a1049174d925" + integrity sha512-XK+uv9kWwhZMZ1y7mysB+zoihsEj4wneFWAS5qoiLwzW0WzSqMrrsIy+a3zkQJq0ipFtBpX5W3MqyRIBF/WFGg== + dependencies: + loader-utils "^1.1.0" + schema-utils "^1.0.0" + +style-to-object@0.3.0, style-to-object@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.3.0.tgz#b1b790d205991cc783801967214979ee19a76e46" + integrity sha512-CzFnRRXhzWIdItT3OmF8SQfWyahHhjq3HwcMNCNLn+N7klOOqPjMeG/4JSu77D7ypZdGvSzvkrbyeTMizz2VrA== + dependencies: + inline-style-parser "0.1.1" + +style-to-object@^0.2.1: + version "0.2.3" + resolved "https://registry.yarnpkg.com/style-to-object/-/style-to-object-0.2.3.tgz#afcf42bc03846b1e311880c55632a26ad2780bcb" + integrity sha512-1d/k4EY2N7jVLOqf2j04dTc37TPOv/hHxZmvpg8Pdh8UYydxeu/C1W1U4vD8alzf5V2Gt7rLsmkr4dxAlDm9ng== + dependencies: + inline-style-parser "0.1.1" + +stylehacks@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" + integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== + dependencies: + browserslist "^4.0.0" + postcss "^7.0.0" + postcss-selector-parser "^3.0.0" + +subscriptions-transport-ws@^0.9.16: + version "0.9.16" + resolved "https://registry.yarnpkg.com/subscriptions-transport-ws/-/subscriptions-transport-ws-0.9.16.tgz#90a422f0771d9c32069294c08608af2d47f596ec" + integrity sha512-pQdoU7nC+EpStXnCfh/+ho0zE0Z+ma+i7xvj7bkXKb1dvYHSZxgRPaU6spRP+Bjzow67c/rRDoix5RT0uU9omw== + dependencies: + backo2 "^1.0.2" + eventemitter3 "^3.1.0" + iterall "^1.2.1" + symbol-observable "^1.0.4" + ws "^5.2.0" + +sudo-prompt@^8.2.0: + version "8.2.5" + resolved "https://registry.yarnpkg.com/sudo-prompt/-/sudo-prompt-8.2.5.tgz#cc5ef3769a134bb94b24a631cc09628d4d53603e" + integrity sha512-rlBo3HU/1zAJUrkY6jNxDOC9eVYliG6nS4JA8u8KAshITd07tafMc/Br7xQwCSseXwJ2iCcHCE8SNWX3q8Z+kw== + +supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= + +supports-color@^5.3.0, supports-color@^5.4.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" + integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.0.0, supports-color@^7.1.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.1.0.tgz#68e32591df73e25ad1c4b49108a2ec507962bfd1" + integrity sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g== + dependencies: + has-flag "^4.0.0" + +supports-hyperlinks@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47" + integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA== + dependencies: + has-flag "^4.0.0" + supports-color "^7.0.0" + +svg-tag-names@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/svg-tag-names/-/svg-tag-names-2.0.1.tgz#acf5655faaa2e4b173007599226b906be1b38a29" + integrity sha512-BEZ508oR+X/b5sh7bT0RqDJ7GhTpezjj3P1D4kugrOaPs6HijviWksoQ63PS81vZn0QCjZmVKjHDBniTo+Domg== + +svgo@^1.0.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" + integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== + dependencies: + chalk "^2.4.1" + coa "^2.0.2" + css-select "^2.0.0" + css-select-base-adapter "^0.1.1" + css-tree "1.0.0-alpha.37" + csso "^4.0.2" + js-yaml "^3.13.1" + mkdirp "~0.5.1" + object.values "^1.1.0" + sax "~1.2.4" + stable "^0.1.8" + unquote "~1.1.1" + util.promisify "~1.0.0" + +symbol-observable@^1.0.4, symbol-observable@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-1.2.0.tgz#c22688aed4eab3cdc2dfeacbb561660560a00804" + integrity sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ== + +table@^5.2.3: + version "5.4.6" + resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" + integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== + dependencies: + ajv "^6.10.2" + lodash "^4.17.14" + slice-ansi "^2.1.0" + string-width "^3.0.0" + +tapable@^1.0.0, tapable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-1.1.3.tgz#a1fccc06b58db61fd7a45da2da44f5f3a3e67ba2" + integrity sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA== + +tar@^4.4.2: + version "4.4.13" + resolved "https://registry.yarnpkg.com/tar/-/tar-4.4.13.tgz#43b364bc52888d555298637b10d60790254ab525" + integrity sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA== + dependencies: + chownr "^1.1.1" + fs-minipass "^1.2.5" + minipass "^2.8.6" + minizlib "^1.2.1" + mkdirp "^0.5.0" + safe-buffer "^5.1.2" + yallist "^3.0.3" + +term-size@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-1.2.0.tgz#458b83887f288fc56d6fffbfad262e26638efa69" + integrity sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk= + dependencies: + execa "^0.7.0" + +term-size@^2.1.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.0.tgz#1f16adedfe9bdc18800e1776821734086fcc6753" + integrity sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw== + +terminal-link@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994" + integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ== + dependencies: + ansi-escapes "^4.2.1" + supports-hyperlinks "^2.0.0" + +terser-webpack-plugin@^1.4.3: + version "1.4.3" + resolved "https://registry.yarnpkg.com/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz#5ecaf2dbdc5fb99745fd06791f46fc9ddb1c9a7c" + integrity sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA== + dependencies: + cacache "^12.0.2" + find-cache-dir "^2.1.0" + is-wsl "^1.1.0" + schema-utils "^1.0.0" + serialize-javascript "^2.1.2" + source-map "^0.6.1" + terser "^4.1.2" + webpack-sources "^1.4.0" + worker-farm "^1.7.0" + +terser@^4.1.2: + version "4.6.11" + resolved "https://registry.yarnpkg.com/terser/-/terser-4.6.11.tgz#12ff99fdd62a26de2a82f508515407eb6ccd8a9f" + integrity sha512-76Ynm7OXUG5xhOpblhytE7X58oeNSmC8xnNhjWVo8CksHit0U0kO4hfNbPrrYwowLWFgM2n9L176VNx2QaHmtA== + dependencies: + commander "^2.20.0" + source-map "~0.6.1" + source-map-support "~0.5.12" + +text-table@0.2.0, text-table@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ= + +through2@^2.0.0, through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +through@^2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU= + +thunky@^1.0.2: + version "1.1.0" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d" + integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA== + +timed-out@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" + integrity sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8= + +timers-browserify@^2.0.4: + version "2.0.11" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.11.tgz#800b1f3eee272e5bc53ee465a04d0e804c31211f" + integrity sha512-60aV6sgJ5YEbzUdn9c8kYGIqOubPoUdqQCul3SBAsRCZ40s6Y5cMcrW4dt3/k/EsbLVJNl9n6Vz3fTc+k2GeKQ== + dependencies: + setimmediate "^1.0.4" + +timsort@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" + integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= + +tmp@^0.0.33: + version "0.0.33" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.33.tgz#6d34335889768d21b2bcda0aa277ced3b1bfadf9" + integrity sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw== + dependencies: + os-tmpdir "~1.0.2" + +to-array@0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" + integrity sha1-F+bBH3PdTz10zaek/zI46a2b+JA= + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= + +to-fast-properties@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" + integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= + +to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= + dependencies: + kind-of "^3.0.2" + +to-readable-stream@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" + integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== + +to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + +toidentifier@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" + integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== + +trim-lines@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/trim-lines/-/trim-lines-1.1.3.tgz#839514be82428fd9e7ec89e35081afe8f6f93115" + integrity sha512-E0ZosSWYK2mkSu+KEtQ9/KqarVjA9HztOSX+9FDdNacRAq29RRV6ZQNgob3iuW8Htar9vAfEa6yyt5qBAHZDBA== + +trim-trailing-lines@^1.0.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/trim-trailing-lines/-/trim-trailing-lines-1.1.3.tgz#7f0739881ff76657b7776e10874128004b625a94" + integrity sha512-4ku0mmjXifQcTVfYDfR5lpgV7zVqPg6zV9rdZmwOPqq0+Zq19xDqEgagqVbc4pOOShbncuAOIs59R3+3gcF3ZA== + +trim@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" + integrity sha1-WFhUf2spB1fulczMZm+1AITEYN0= + +trough@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/trough/-/trough-1.0.5.tgz#b8b639cefad7d0bb2abd37d433ff8293efa5f406" + integrity sha512-rvuRbTarPXmMb79SmzEp8aqXNKcK+y0XaB298IXueQ8I2PsrATcPBCSPyK/dDNa2iWOhKlfNnOjdAOTBU/nkFA== + +"true-case-path@^2.2.1": + version "2.2.1" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-2.2.1.tgz#c5bf04a5bbec3fd118be4084461b3a27c4d796bf" + integrity sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q== + +ts-pnp@^1.1.6: + version "1.2.0" + resolved "https://registry.yarnpkg.com/ts-pnp/-/ts-pnp-1.2.0.tgz#a500ad084b0798f1c3071af391e65912c86bca92" + integrity sha512-csd+vJOb/gkzvcCHgTGSChYpy5f1/XKNsmvBGO4JXS+z1v2HobugDz4s1IeFXM3wZB44uczs+eazB5Q/ccdhQw== + +tslib@^1.10.0, tslib@^1.8.1, tslib@^1.9.0: + version "1.11.1" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.11.1.tgz#eb15d128827fbee2841549e171f45ed338ac7e35" + integrity sha512-aZW88SY8kQbU7gpV19lN24LtXh/yD4ZZg6qieAJDDg+YBsJcSmLGK9QpnUjAKVG/xefmvJGd1WUmfpT/g6AJGA== + +tsutils@^3.17.1: + version "3.17.1" + resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz#ed719917f11ca0dee586272b2ac49e015a2dd759" + integrity sha512-kzeQ5B8H3w60nFY2g8cJIuH7JDpsALXySGtwGJ0p2LSjLgay3NdIpqq5SoOBe46bKDW2iq25irHCr8wjomUS2g== + dependencies: + tslib "^1.8.1" + +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= + +type-check@~0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" + integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= + dependencies: + prelude-ls "~1.1.2" + +type-fest@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1" + integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ== + +type-fest@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.3.1.tgz#63d00d204e059474fe5e1b7c011112bbd1dc29e1" + integrity sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ== + +type-fest@^0.8.0, type-fest@^0.8.1: + version "0.8.1" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" + integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== + +type-is@~1.6.17, type-is@~1.6.18: + version "1.6.18" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.18.tgz#4e552cd05df09467dcbc4ef739de89f2cf37c131" + integrity sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g== + dependencies: + media-typer "0.3.0" + mime-types "~2.1.24" + +type-of@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/type-of/-/type-of-2.0.1.tgz#e72a1741896568e9f628378d816d6912f7f23972" + integrity sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI= + +typedarray-to-buffer@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" + integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== + dependencies: + is-typedarray "^1.0.0" + +typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= + +unc-path-regex@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/unc-path-regex/-/unc-path-regex-0.1.2.tgz#e73dd3d7b0d7c5ed86fbac6b0ae7d8c6a69d50fa" + integrity sha1-5z3T17DXxe2G+6xrCufYxqadUPo= + +unherit@^1.0.4: + version "1.1.3" + resolved "https://registry.yarnpkg.com/unherit/-/unherit-1.1.3.tgz#6c9b503f2b41b262330c80e91c8614abdaa69c22" + integrity sha512-Ft16BJcnapDKp0+J/rqFC3Rrk6Y/Ng4nzsC028k2jdDII/rdZ7Wd3pPT/6+vIIxRagwRc9K0IUX0Ra4fKvw+WQ== + dependencies: + inherits "^2.0.0" + xtend "^4.0.0" + +unicode-canonical-property-names-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" + integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== + +unicode-match-property-ecmascript@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" + integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== + dependencies: + unicode-canonical-property-names-ecmascript "^1.0.4" + unicode-property-aliases-ecmascript "^1.0.4" + +unicode-match-property-value-ecmascript@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" + integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== + +unicode-property-aliases-ecmascript@^1.0.4: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" + integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== + +unified@9.0.0: + version "9.0.0" + resolved "https://registry.yarnpkg.com/unified/-/unified-9.0.0.tgz#12b099f97ee8b36792dbad13d278ee2f696eed1d" + integrity sha512-ssFo33gljU3PdlWLjNp15Inqb77d6JnJSfyplGJPT/a+fNRNyCBeveBAYJdO5khKdF6WVHa/yYCC7Xl6BDwZUQ== + dependencies: + bail "^1.0.0" + extend "^3.0.0" + is-buffer "^2.0.0" + is-plain-obj "^2.0.0" + trough "^1.0.0" + vfile "^4.0.0" + +union-value@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" + integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^2.0.1" + +uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= + +uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= + +unique-filename@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.1.tgz#1d69769369ada0583103a1e6ae87681b56573230" + integrity sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ== + dependencies: + unique-slug "^2.0.0" + +unique-slug@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.2.tgz#baabce91083fc64e945b0f3ad613e264f7cd4e6c" + integrity sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w== + dependencies: + imurmurhash "^0.1.4" + +unique-string@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-1.0.0.tgz#9e1057cca851abb93398f8b33ae187b99caec11a" + integrity sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo= + dependencies: + crypto-random-string "^1.0.0" + +unique-string@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" + integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== + dependencies: + crypto-random-string "^2.0.0" + +unist-builder@2.0.3, unist-builder@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-builder/-/unist-builder-2.0.3.tgz#77648711b5d86af0942f334397a33c5e91516436" + integrity sha512-f98yt5pnlMWlzP539tPc4grGMsFaQQlP/vM396b00jngsiINumNmsY8rkXjfoi1c6QaM8nQ3vaGDuoKWbe/1Uw== + +unist-util-generated@^1.0.0: + version "1.1.5" + resolved "https://registry.yarnpkg.com/unist-util-generated/-/unist-util-generated-1.1.5.tgz#1e903e68467931ebfaea386dae9ea253628acd42" + integrity sha512-1TC+NxQa4N9pNdayCYA1EGUOCAO0Le3fVp7Jzns6lnua/mYgwHo0tz5WUAfrdpNch1RZLHc61VZ1SDgrtNXLSw== + +unist-util-is@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-3.0.0.tgz#d9e84381c2468e82629e4a5be9d7d05a2dd324cd" + integrity sha512-sVZZX3+kspVNmLWBPAB6r+7D9ZgAFPNWm66f7YNb420RlQSbn+n8rG8dGZSkrER7ZIXGQYNm5pqC3v3HopH24A== + +unist-util-is@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/unist-util-is/-/unist-util-is-4.0.2.tgz#c7d1341188aa9ce5b3cff538958de9895f14a5de" + integrity sha512-Ofx8uf6haexJwI1gxWMGg6I/dLnF2yE+KibhD3/diOqY2TinLcqHXCV6OI5gFVn3xQqDH+u0M625pfKwIwgBKQ== + +unist-util-position@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/unist-util-position/-/unist-util-position-3.1.0.tgz#1c42ee6301f8d52f47d14f62bbdb796571fa2d47" + integrity sha512-w+PkwCbYSFw8vpgWD0v7zRCl1FpY3fjDSQ3/N/wNd9Ffa4gPi8+4keqt99N3XW6F99t/mUzp2xAhNmfKWp95QA== + +unist-util-remove-position@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/unist-util-remove-position/-/unist-util-remove-position-2.0.1.tgz#5d19ca79fdba712301999b2b73553ca8f3b352cc" + integrity sha512-fDZsLYIe2uT+oGFnuZmy73K6ZxOPG/Qcm+w7jbEjaFcJgbQ6cqjs/eSPzXhsmGpAsWPkqZM9pYjww5QTn3LHMA== + dependencies: + unist-util-visit "^2.0.0" + +unist-util-remove@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unist-util-remove/-/unist-util-remove-2.0.0.tgz#32c2ad5578802f2ca62ab808173d505b2c898488" + integrity sha512-HwwWyNHKkeg/eXRnE11IpzY8JT55JNM1YCwwU9YNCnfzk6s8GhPXrVBBZWiwLeATJbI7euvoGSzcy9M29UeW3g== + dependencies: + unist-util-is "^4.0.0" + +unist-util-stringify-position@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/unist-util-stringify-position/-/unist-util-stringify-position-2.0.3.tgz#cce3bfa1cdf85ba7375d1d5b17bdc4cada9bd9da" + integrity sha512-3faScn5I+hy9VleOq/qNbAd6pAx7iH5jYBMS9I1HgQVijz/4mv5Bvw5iw1sC/90CODiKo81G/ps8AJrISn687g== + dependencies: + "@types/unist" "^2.0.2" + +unist-util-visit-parents@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/unist-util-visit-parents/-/unist-util-visit-parents-3.0.2.tgz#d4076af3011739c71d2ce99d05de37d545f4351d" + integrity sha512-yJEfuZtzFpQmg1OSCyS9M5NJRrln/9FbYosH3iW0MG402QbdbaB8ZESwUv9RO6nRfLAKvWcMxCwdLWOov36x/g== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + +unist-util-visit@2.0.2, unist-util-visit@^2.0.0, unist-util-visit@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/unist-util-visit/-/unist-util-visit-2.0.2.tgz#3843782a517de3d2357b4c193b24af2d9366afb7" + integrity sha512-HoHNhGnKj6y+Sq+7ASo2zpVdfdRifhTgX2KTU3B/sO/TTlZchp7E3S4vjRzDJ7L60KmrCPsQkVK3lEF3cz36XQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-is "^4.0.0" + unist-util-visit-parents "^3.0.0" + +universalify@^0.1.0: + version "0.1.2" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" + integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== + +unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= + +unquote@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" + integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= + +unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + +upath@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" + integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== + +update-notifier@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-3.0.1.tgz#78ecb68b915e2fd1be9f767f6e298ce87b736250" + integrity sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ== + dependencies: + boxen "^3.0.0" + chalk "^2.0.1" + configstore "^4.0.0" + has-yarn "^2.1.0" + import-lazy "^2.1.0" + is-ci "^2.0.0" + is-installed-globally "^0.1.0" + is-npm "^3.0.0" + is-yarn-global "^0.3.0" + latest-version "^5.0.0" + semver-diff "^2.0.0" + xdg-basedir "^3.0.0" + +uri-js@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.2.2.tgz#94c540e1ff772956e2299507c010aea6c8838eb0" + integrity sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ== + dependencies: + punycode "^2.1.0" + +urix@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= + +url-loader@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-1.1.2.tgz#b971d191b83af693c5e3fea4064be9e1f2d7f8d8" + integrity sha512-dXHkKmw8FhPqu8asTc1puBfe3TehOCo2+RmOOev5suNCIYBcT626kxiWg1NBVkwc4rO8BGa7gP70W7VXuqHrjg== + dependencies: + loader-utils "^1.1.0" + mime "^2.0.3" + schema-utils "^1.0.0" + +url-parse-lax@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" + integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= + dependencies: + prepend-http "^2.0.0" + +url-parse@^1.1.8, url-parse@^1.4.3: + version "1.4.7" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.4.7.tgz#a8a83535e8c00a316e403a5db4ac1b9b853ae278" + integrity sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg== + dependencies: + querystringify "^2.1.1" + requires-port "^1.0.0" + +url-to-options@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/url-to-options/-/url-to-options-1.0.1.tgz#1505a03a289a48cbd7a434efbaeec5055f5633a9" + integrity sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k= + +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= + dependencies: + punycode "1.3.2" + querystring "0.2.0" + +urql@^1.9.5: + version "1.9.7" + resolved "https://registry.yarnpkg.com/urql/-/urql-1.9.7.tgz#d3970a3af4a9d46528ec7c2f2e9839944875d8bf" + integrity sha512-zMLVeoAzY+C/RQGXjYYNC/XMqzMoyF1xjMNELTz4FNwXMEnk1wfCbgcQBbHyRVPql/9/CjY9Igq7AxUfY67Y5Q== + dependencies: + "@urql/core" "^1.11.0" + wonka "^4.0.9" + +use@^3.1.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" + integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= + +util.promisify@^1.0.1, util.promisify@~1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" + integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== + dependencies: + define-properties "^1.1.3" + es-abstract "^1.17.2" + has-symbols "^1.0.1" + object.getownpropertydescriptors "^2.1.0" + +util@0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= + dependencies: + inherits "2.0.1" + +util@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" + integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== + dependencies: + inherits "2.0.3" + +utila@^0.4.0, utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + integrity sha1-ihagXURWV6Oupe7MWxKk+lN5dyw= + +utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + integrity sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM= + +uuid@3.4.0, uuid@^3.0.0, uuid@^3.0.1, uuid@^3.3.2, uuid@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" + integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== + +v8-compile-cache@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" + integrity sha512-ejdrifsIydN1XDH7EuR2hn8ZrkRKUYF7tUcBjBy/lhrCvs2K+zRlbW9UHc0IQ9RsYFZJFqJrieoIHfkCa0DBRA== + +v8-compile-cache@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz#e14de37b31a6d194f5690d67efc4e7f6fc6ab30e" + integrity sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g== + +validate-npm-package-license@^3.0.1: + version "3.0.4" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" + integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + +vary@^1, vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= + +vendors@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" + integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== + +vfile-location@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/vfile-location/-/vfile-location-3.0.1.tgz#d78677c3546de0f7cd977544c367266764d31bb3" + integrity sha512-yYBO06eeN/Ki6Kh1QAkgzYpWT1d3Qln+ZCtSbJqFExPl1S3y2qqotJQXoh6qEvl/jDlgpUJolBn3PItVnnZRqQ== + +vfile-message@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vfile-message/-/vfile-message-2.0.4.tgz#5b43b88171d409eae58477d13f23dd41d52c371a" + integrity sha512-DjssxRGkMvifUOJre00juHoP9DPWuzjxKuMDrhNbk2TdaYYBNMStsNhEOt3idrtI12VQYM/1+iM0KOzXi4pxwQ== + dependencies: + "@types/unist" "^2.0.0" + unist-util-stringify-position "^2.0.0" + +vfile@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/vfile/-/vfile-4.1.0.tgz#d79248957f43225d57ff67a56effc67bef08946e" + integrity sha512-BaTPalregj++64xbGK6uIlsurN3BCRNM/P2Pg8HezlGzKd1O9PrwIac6bd9Pdx2uTb0QHoioZ+rXKolbVXEgJg== + dependencies: + "@types/unist" "^2.0.0" + is-buffer "^2.0.0" + replace-ext "1.0.0" + unist-util-stringify-position "^2.0.0" + vfile-message "^2.0.0" + +vm-browserify@^1.0.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" + integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== + +warning@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/warning/-/warning-3.0.0.tgz#32e5377cb572de4ab04753bdf8821c01ed605b7c" + integrity sha1-MuU3fLVy3kqwR1O9+IIcAe1gW3w= + dependencies: + loose-envify "^1.0.0" + +warning@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/warning/-/warning-4.0.3.tgz#16e9e077eb8a86d6af7d64aa1e05fd85b4678ca3" + integrity sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w== + dependencies: + loose-envify "^1.0.0" + +watchpack@^1.6.0: + version "1.6.1" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.6.1.tgz#280da0a8718592174010c078c7585a74cd8cd0e2" + integrity sha512-+IF9hfUFOrYOOaKyfaI7h7dquUIOgyEMoQMLA7OP5FxegKA2+XdXThAZ9TU2kucfhDH7rfMHs1oPYziVGWRnZA== + dependencies: + chokidar "^2.1.8" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + +wbuf@^1.1.0, wbuf@^1.7.3: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + integrity sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA== + dependencies: + minimalistic-assert "^1.0.0" + +web-namespaces@^1.0.0, web-namespaces@^1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/web-namespaces/-/web-namespaces-1.1.4.tgz#bc98a3de60dadd7faefc403d1076d529f5e030ec" + integrity sha512-wYxSGajtmoP4WxfejAPIr4l0fVh+jeMXZb08wNc0tMg6xsfZXj3cECqIK0G7ZAqUq0PP8WlMDtaOGVBTAWztNw== + +webpack-dev-middleware@^3.7.2: + version "3.7.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz#0019c3db716e3fa5cecbf64f2ab88a74bab331f3" + integrity sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw== + dependencies: + memory-fs "^0.4.1" + mime "^2.4.4" + mkdirp "^0.5.1" + range-parser "^1.2.1" + webpack-log "^2.0.0" + +webpack-dev-server@^3.10.3: + version "3.10.3" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-3.10.3.tgz#f35945036813e57ef582c2420ef7b470e14d3af0" + integrity sha512-e4nWev8YzEVNdOMcNzNeCN947sWJNd43E5XvsJzbAL08kGc2frm1tQ32hTJslRS+H65LCb/AaUCYU7fjHCpDeQ== + dependencies: + ansi-html "0.0.7" + bonjour "^3.5.0" + chokidar "^2.1.8" + compression "^1.7.4" + connect-history-api-fallback "^1.6.0" + debug "^4.1.1" + del "^4.1.1" + express "^4.17.1" + html-entities "^1.2.1" + http-proxy-middleware "0.19.1" + import-local "^2.0.0" + internal-ip "^4.3.0" + ip "^1.1.5" + is-absolute-url "^3.0.3" + killable "^1.0.1" + loglevel "^1.6.6" + opn "^5.5.0" + p-retry "^3.0.1" + portfinder "^1.0.25" + schema-utils "^1.0.0" + selfsigned "^1.10.7" + semver "^6.3.0" + serve-index "^1.9.1" + sockjs "0.3.19" + sockjs-client "1.4.0" + spdy "^4.0.1" + strip-ansi "^3.0.1" + supports-color "^6.1.0" + url "^0.11.0" + webpack-dev-middleware "^3.7.2" + webpack-log "^2.0.0" + ws "^6.2.1" + yargs "12.0.5" + +webpack-hot-middleware@^2.25.0: + version "2.25.0" + resolved "https://registry.yarnpkg.com/webpack-hot-middleware/-/webpack-hot-middleware-2.25.0.tgz#4528a0a63ec37f8f8ef565cf9e534d57d09fe706" + integrity sha512-xs5dPOrGPCzuRXNi8F6rwhawWvQQkeli5Ro48PRuQh8pYPCPmNnltP9itiUPT4xI8oW+y0m59lyyeQk54s5VgA== + dependencies: + ansi-html "0.0.7" + html-entities "^1.2.0" + querystring "^0.2.0" + strip-ansi "^3.0.0" + +webpack-log@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/webpack-log/-/webpack-log-2.0.0.tgz#5b7928e0637593f119d32f6227c1e0ac31e1b47f" + integrity sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg== + dependencies: + ansi-colors "^3.0.0" + uuid "^3.3.2" + +webpack-merge@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.2.2.tgz#a27c52ea783d1398afd2087f547d7b9d2f43634d" + integrity sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g== + dependencies: + lodash "^4.17.15" + +webpack-sources@^1.1.0, webpack-sources@^1.4.0, webpack-sources@^1.4.1: + version "1.4.3" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.4.3.tgz#eedd8ec0b928fbf1cbfe994e22d2d890f330a933" + integrity sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ== + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + +webpack-stats-plugin@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/webpack-stats-plugin/-/webpack-stats-plugin-0.3.1.tgz#1103c39a305a4e6ba15d5078db84bc0b35447417" + integrity sha512-pxqzFE055NlNTlNyfDG3xlB2QwT1EWdm/CF5dCJI/e+rRHVxrWhWg1rf1lfsWhI1/EePv8gi/A36YxO/+u0FgQ== + +webpack@~4.42.0: + version "4.42.1" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-4.42.1.tgz#ae707baf091f5ca3ef9c38b884287cfe8f1983ef" + integrity sha512-SGfYMigqEfdGchGhFFJ9KyRpQKnipvEvjc1TwrXEPCM6H5Wywu10ka8o3KGrMzSMxMQKt8aCHUFh5DaQ9UmyRg== + dependencies: + "@webassemblyjs/ast" "1.9.0" + "@webassemblyjs/helper-module-context" "1.9.0" + "@webassemblyjs/wasm-edit" "1.9.0" + "@webassemblyjs/wasm-parser" "1.9.0" + acorn "^6.2.1" + ajv "^6.10.2" + ajv-keywords "^3.4.1" + chrome-trace-event "^1.0.2" + enhanced-resolve "^4.1.0" + eslint-scope "^4.0.3" + json-parse-better-errors "^1.0.2" + loader-runner "^2.4.0" + loader-utils "^1.2.3" + memory-fs "^0.4.1" + micromatch "^3.1.10" + mkdirp "^0.5.3" + neo-async "^2.6.1" + node-libs-browser "^2.2.1" + schema-utils "^1.0.0" + tapable "^1.1.3" + terser-webpack-plugin "^1.4.3" + watchpack "^1.6.0" + webpack-sources "^1.4.1" + +websocket-driver@>=0.5.1: + version "0.7.3" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.3.tgz#a2d4e0d4f4f116f1e6297eba58b05d430100e9f9" + integrity sha512-bpxWlvbbB459Mlipc5GBzzZwhoZgGEZLuqPaR0INBGnPAY1vdBX6hPnoFXiw+3yWxDuHyQjO2oXTMyS8A5haFg== + dependencies: + http-parser-js ">=0.4.0 <0.4.11" + safe-buffer ">=5.1.0" + websocket-extensions ">=0.1.1" + +websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + integrity sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg== + +whatwg-fetch@2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz#dde6a5df315f9d39991aa17621853d720b85566f" + integrity sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng== + +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + integrity sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho= + +which@^1.2.14, which@^1.2.9, which@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" + integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== + dependencies: + isexe "^2.0.0" + +which@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" + integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== + dependencies: + isexe "^2.0.0" + +wide-align@^1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.3.tgz#ae074e6bdc0c14a431e804e624549c633b000457" + integrity sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA== + dependencies: + string-width "^1.0.2 || 2" + +widest-line@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-2.0.1.tgz#7438764730ec7ef4381ce4df82fb98a53142a3fc" + integrity sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA== + dependencies: + string-width "^2.1.1" + +widest-line@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" + integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== + dependencies: + string-width "^4.0.0" + +wonka@^4.0.9: + version "4.0.9" + resolved "https://registry.yarnpkg.com/wonka/-/wonka-4.0.9.tgz#b21d93621e1d5f3b45ca96d99d03711c7c1f7c55" + integrity sha512-he7Nn1254ToUN03zLbJok6QxKdRJd46/QHm8nUcJNViXQnCutCuUgAbZvzoxrX+VXzGb4sCFolC4XhkHsmvdaA== + +word-wrap@~1.2.3: + version "1.2.3" + resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" + integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== + +worker-farm@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8" + integrity sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw== + dependencies: + errno "~0.1.7" + +worker-rpc@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/worker-rpc/-/worker-rpc-0.1.1.tgz#cb565bd6d7071a8f16660686051e969ad32f54d5" + integrity sha512-P1WjMrUB3qgJNI9jfmpZ/htmBEjFh//6l/5y8SD9hg1Ef5zTTVVoRjTrTEzPrNBQvmhMxkoTsjOXN10GWU7aCg== + dependencies: + microevent.ts "~0.1.1" + +wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + integrity sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU= + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + +wrap-ansi@^5.0.0, wrap-ansi@^5.1.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-5.1.0.tgz#1fd1f67235d5b6d0fee781056001bfb694c03b09" + integrity sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q== + dependencies: + ansi-styles "^3.2.0" + string-width "^3.0.0" + strip-ansi "^5.0.0" + +wrap-ansi@^6.2.0: + version "6.2.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-6.2.0.tgz#e9393ba07102e6c91a3b221478f0257cd2856e53" + integrity sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= + +write-file-atomic@^2.0.0: + version "2.4.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-2.4.3.tgz#1fd2e9ae1df3e75b8d8c367443c692d4ca81f481" + integrity sha512-GaETH5wwsX+GcnzhPgKcKjJ6M2Cq3/iZp1WyY/X1CSqrW+jVNM9Y7D8EC2sM4ZG/V8wZlSniJnCKWPmBYAucRQ== + dependencies: + graceful-fs "^4.1.11" + imurmurhash "^0.1.4" + signal-exit "^3.0.2" + +write-file-atomic@^3.0.0: + version "3.0.3" + resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" + integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== + dependencies: + imurmurhash "^0.1.4" + is-typedarray "^1.0.0" + signal-exit "^3.0.2" + typedarray-to-buffer "^3.1.5" + +write@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" + integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== + dependencies: + mkdirp "^0.5.1" + +ws@^5.2.0: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" + integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== + dependencies: + async-limiter "~1.0.0" + +ws@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" + integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== + dependencies: + async-limiter "~1.0.0" + +ws@^7.1.2, ws@^7.2.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.2.3.tgz#a5411e1fb04d5ed0efee76d26d5c46d830c39b46" + integrity sha512-HTDl9G9hbkNDk98naoR/cHDws7+EyYMOdL1BmjsZXRUjf7d+MficC4B7HLUPlSiho0vg+CWKrGIt/VJBd1xunQ== + +ws@~6.1.0: + version "6.1.4" + resolved "https://registry.yarnpkg.com/ws/-/ws-6.1.4.tgz#5b5c8800afab925e94ccb29d153c8d02c1776ef9" + integrity sha512-eqZfL+NE/YQc1/ZynhojeV8q+H050oR8AZ2uIev7RU10svA9ZnJUddHcOUZTJLinZ9yEfdA2kSATS2qZK5fhJA== + dependencies: + async-limiter "~1.0.0" + +xdg-basedir@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-3.0.0.tgz#496b2cc109eca8dbacfe2dc72b603c17c5870ad4" + integrity sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ= + +xdg-basedir@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" + integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== + +xmlhttprequest-ssl@~1.5.4: + version "1.5.5" + resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz#c2876b06168aadc40e57d97e81191ac8f4398b3e" + integrity sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4= + +xregexp@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/xregexp/-/xregexp-4.3.0.tgz#7e92e73d9174a99a59743f67a4ce879a04b5ae50" + integrity sha512-7jXDIFXh5yJ/orPn4SXjuVrWWoi4Cr8jfV1eHv9CixKSbU+jY4mxfrBwAuDvupPNKpMUY+FeIqsVw/JLT9+B8g== + dependencies: + "@babel/runtime-corejs3" "^7.8.3" + +xstate@^4.8.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/xstate/-/xstate-4.9.1.tgz#da883ae0993b129ba0b54592c59b069963b0fe0a" + integrity sha512-cfNnRaBebnr1tvs0nHBUTyomfJx36+8MWwXceyNTZfjyELMM8nIoiBDcUzfKmpNlnAvs2ZPREos19cw6Zl4nng== + +xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +"y18n@^3.2.1 || ^4.0.0", y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + integrity sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w== + +yallist@^2.0.0, yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI= + +yallist@^3.0.0, yallist@^3.0.2, yallist@^3.0.3: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" + integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== + +yaml-loader@^0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/yaml-loader/-/yaml-loader-0.5.0.tgz#86b1982d84a8e429e6647d93de9a0169e1c15827" + integrity sha512-p9QIzcFSNm4mCw/m5NdyMfN4RE4aFZJWRRb01ERVNGCym8VNbKtw3OYZXnvUIkim6U/EjqE/2yIh9F/msShH9A== + dependencies: + js-yaml "^3.5.2" + +yaml@^1.7.2: + version "1.9.2" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.9.2.tgz#f0cfa865f003ab707663e4f04b3956957ea564ed" + integrity sha512-HPT7cGGI0DuRcsO51qC1j9O16Dh1mZ2bnXwsi0jrSpsLz0WxOLSLXfkABVl6bZO629py3CU+OMJtpNHDLB97kg== + dependencies: + "@babel/runtime" "^7.9.2" + +yargs-parser@^11.1.1: + version "11.1.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" + integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs-parser@^13.1.2: + version "13.1.2" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-13.1.2.tgz#130f09702ebaeef2650d54ce6e3e5706f7a4fb38" + integrity sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg== + dependencies: + camelcase "^5.0.0" + decamelize "^1.2.0" + +yargs@12.0.5, yargs@^12.0.5: + version "12.0.5" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" + integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== + dependencies: + cliui "^4.0.0" + decamelize "^1.2.0" + find-up "^3.0.0" + get-caller-file "^1.0.1" + os-locale "^3.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1 || ^4.0.0" + yargs-parser "^11.1.1" + +yargs@^13.2.4: + version "13.3.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-13.3.2.tgz#ad7ffefec1aa59565ac915f82dccb38a9c31a2dd" + integrity sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw== + dependencies: + cliui "^5.0.0" + find-up "^3.0.0" + get-caller-file "^2.0.1" + require-directory "^2.1.1" + require-main-filename "^2.0.0" + set-blocking "^2.0.0" + string-width "^3.0.0" + which-module "^2.0.0" + y18n "^4.0.0" + yargs-parser "^13.1.2" + +yeast@0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" + integrity sha1-AI4G2AlDIMNy28L47XagymyKxBk= + +yoga-layout-prebuilt@^1.9.3: + version "1.9.5" + resolved "https://registry.yarnpkg.com/yoga-layout-prebuilt/-/yoga-layout-prebuilt-1.9.5.tgz#bb25ae106eb4ba48c13b650e75269c582a8b43e5" + integrity sha512-+G5Ojl4/sG78mk5masCL3SRaZtkKXRBhMGf5c+4C1j32jN9KpS4lxVFdYyBi15EHN4gMeK5sIRf83T33TOaDkA== + dependencies: + "@types/yoga-layout" "1.9.1" + +yurnalist@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/yurnalist/-/yurnalist-1.1.2.tgz#0fce283f1c53ea25ec278e2d1ab58537323b63e0" + integrity sha512-y7bsTXqL+YMJQ2De2CBtSftJNLQnB7gWIzzKm10GDyC8Fg4Dsmd2LG5YhT8pudvUiuotic80WVXt/g1femRVQg== + dependencies: + babel-runtime "^6.26.0" + chalk "^2.4.2" + cli-table3 "^0.5.1" + debug "^4.1.1" + deep-equal "^1.1.0" + detect-indent "^6.0.0" + inquirer "^7.0.0" + invariant "^2.2.0" + is-builtin-module "^3.0.0" + is-ci "^2.0.0" + leven "^3.1.0" + loud-rejection "^2.2.0" + node-emoji "^1.10.0" + object-path "^0.11.2" + read "^1.0.7" + rimraf "^3.0.0" + semver "^6.3.0" + strip-ansi "^5.2.0" + strip-bom "^4.0.0" + +zwitch@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zwitch/-/zwitch-1.0.5.tgz#d11d7381ffed16b742f6af7b3f223d5cd9fe9920" + integrity sha512-V50KMwwzqJV0NpZIZFwfOD5/lyny3WlSzRiXgA0G7VUnRlqttta1L6UQIHzd6EuBY/cHGfwTIck7w1yH6Q5zUw== diff --git a/_nodejs/.nvm/.dockerignore b/_nodejs/.nvm/.dockerignore new file mode 100644 index 0000000..fc578cc --- /dev/null +++ b/_nodejs/.nvm/.dockerignore @@ -0,0 +1,16 @@ +HEAD +.cache +v* +alias + +# For testing +test/bak +.urchin.log +.urchin_stdout +test/**/test_output + +node_modules/ +npm-debug.log + +.DS_Store +current diff --git a/_nodejs/.nvm/.editorconfig b/_nodejs/.nvm/.editorconfig new file mode 100644 index 0000000..c1b7c13 --- /dev/null +++ b/_nodejs/.nvm/.editorconfig @@ -0,0 +1,22 @@ +root = true + +[*] +tab_width = 2 +indent_size = 2 +charset = utf-8 +end_of_line = lf +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true + +[*.txt] +indent_size = false + +[test/fast/Listing versions/Running "nvm ls" calls into nvm_alias] +indent_size = false + +[test/fast/Listing versions/Running "nvm ls --no-alias" does not call into nvm_alias] +indent_size = false + +[Makefile] +indent_style = tab diff --git a/_nodejs/.nvm/.gitattributes b/_nodejs/.nvm/.gitattributes new file mode 100644 index 0000000..fae8897 --- /dev/null +++ b/_nodejs/.nvm/.gitattributes @@ -0,0 +1 @@ +* eol=lf diff --git a/_nodejs/.nvm/.github/FUNDING.yml b/_nodejs/.nvm/.github/FUNDING.yml new file mode 100644 index 0000000..cb0ece6 --- /dev/null +++ b/_nodejs/.nvm/.github/FUNDING.yml @@ -0,0 +1,12 @@ +# These are supported funding model platforms + +github: [ljharb] +patreon: # Replace with a single Patreon username +open_collective: # Replace with a single Open Collective username +ko_fi: # Replace with a single Ko-fi username +tidelift: npm/nvm +community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry +liberapay: # Replace with a single Liberapay username +issuehunt: # Replace with a single IssueHunt username +otechie: # Replace with a single Otechie username +custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] diff --git a/_nodejs/.nvm/.github/ISSUE_TEMPLATE.md b/_nodejs/.nvm/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..d8309e2 --- /dev/null +++ b/_nodejs/.nvm/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,44 @@ + + + +#### Operating system and version: + +#### `nvm debug` output: +
+ + +```sh + +``` +
+ +#### `nvm ls` output: +
+ + +```sh + +``` +
+ +#### How did you install `nvm`? + + +#### What steps did you perform? + +#### What happened? + +#### What did you expect to happen? + +#### Is there anything in any of your profile files that modifies the `PATH`? + + + +#### If you are having installation issues, or getting "N/A", what does `curl -I --compressed -v https://nodejs.org/dist/` print out? +
+ + +```sh + +``` +
diff --git a/_nodejs/.nvm/.gitignore b/_nodejs/.nvm/.gitignore new file mode 100644 index 0000000..fcf59f8 --- /dev/null +++ b/_nodejs/.nvm/.gitignore @@ -0,0 +1,23 @@ +# gitignore +HEAD +.cache +v* +alias + +# For testing +test/bak +.urchin.log +.urchin_stdout +test/**/test_output + +node_modules/ +npm-debug.log + +.DS_Store +current +/default-packages + +# Only apps should have lockfiles +npm-shrinkwrap.json +package-lock.json +yarn.lock diff --git a/_nodejs/.nvm/.mailmap b/_nodejs/.nvm/.mailmap new file mode 100644 index 0000000..1f2f86f --- /dev/null +++ b/_nodejs/.nvm/.mailmap @@ -0,0 +1 @@ +Michał Gołębiowski-Owczarek diff --git a/_nodejs/.nvm/.npmrc b/_nodejs/.nvm/.npmrc new file mode 100644 index 0000000..43c97e7 --- /dev/null +++ b/_nodejs/.nvm/.npmrc @@ -0,0 +1 @@ +package-lock=false diff --git a/_nodejs/.nvm/.travis.yml b/_nodejs/.nvm/.travis.yml new file mode 100644 index 0000000..3deb676 --- /dev/null +++ b/_nodejs/.nvm/.travis.yml @@ -0,0 +1,97 @@ +language: generic +dist: xenial +sudo: required +addons: + apt: + packages: + - zsh + # - ksh + # - gcc-4.8 + # - g++-4.8 + +cache: + ccache: true + directories: + - $HOME/.npm + - $TRAVIS_BUILD_DIR/.cache + - $TRAVIS_BUILD_DIR/node_modules +before_install: + - $SHELL --version 2> /dev/null || dpkg -s $SHELL 2> /dev/null || which $SHELL + - curl --version + - wget --version + - shellcheck --version +install: + - if [ -z "${SHELLCHECK-}" ]; then nvm install node && npm install && npm prune && npm ls urchin doctoc eclint dockerfile_lint; fi + - '[ -z "$WITHOUT_CURL" ] || sudo apt-get remove curl -y' +script: + - if [ -n "${MAKE_RELEASE-}" ]; then export GIT_EDITOR="sed -i '1 s/^/99.99.99 make release test/'" && git fetch --unshallow --tags && echo proceed | make TAG=99.99.99 release ; fi + - if [ -n "${DOCTOCCHECK-}" ]; then cp README.md README.md.orig && npm run doctoc && diff -q README.md README.md.orig ; fi + - if [ -n "${ECLINT-}" ]; then npm run eclint ; fi + - if [ -n "${DOCKERFILE_LINT-}" ]; then npm run dockerfile_lint ; fi + - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash nvm.sh && shellcheck -s sh nvm.sh && shellcheck -s dash nvm.sh && shellcheck -s ksh nvm.sh ; fi + - if [ -n "${SHELLCHECK-}" ]; then shellcheck -s bash install.sh bash_completion nvm-exec ; fi + - if [ -n "${SHELL-}" ] && [ -n "${TEST_SUITE}" ]; then if [ "${TEST_SUITE}" = 'installation_iojs' ]; then travis_retry make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL ; else make TEST_SUITE=$TEST_SUITE URCHIN="$(npm bin)/urchin" test-$SHELL; fi; fi +before_cache: + - if [ -n "$WITHOUT_CURL" ]; then sudo apt-get install curl -y ; fi + - if [ -n "${NODE-}" ]; then . nvm.sh && set -ex && nvm install --latest-npm "${NODE}" && npm --version; fi +env: + global: + - CXX=g++ + - CC=gcc + - PATH="$(echo $PATH | sed 's/::/:/')" + - PATH="/usr/lib/ccache/:$PATH" + - NVM_DIR="${TRAVIS_BUILD_DIR}" + matrix: + - MAKE_RELEASE=true + - DOCTOCCHECK=true + - SHELLCHECK=true + - ECLINT=true + - DOCKERFILE_LINT=true + - SHELL=bash TEST_SUITE=install_script + - SHELL=sh TEST_SUITE=fast + - SHELL=dash TEST_SUITE=fast + - SHELL=bash TEST_SUITE=fast + - SHELL=zsh TEST_SUITE=fast + # - SHELL=ksh TEST_SUITE=fast + - SHELL=sh TEST_SUITE=sourcing + - SHELL=dash TEST_SUITE=sourcing + - SHELL=bash TEST_SUITE=sourcing + - SHELL=zsh TEST_SUITE=sourcing + # - SHELL=ksh TEST_SUITE=sourcing + - SHELL=sh TEST_SUITE=slow + - SHELL=dash TEST_SUITE=slow + - SHELL=bash TEST_SUITE=slow + - SHELL=zsh TEST_SUITE=slow + # - SHELL=ksh TEST_SUITE=slow + - SHELL=sh TEST_SUITE=installation_node + - SHELL=sh TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=installation_node + - SHELL=dash TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=installation_node + - SHELL=bash TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=installation_node + - SHELL=zsh TEST_SUITE=installation_node WITHOUT_CURL=1 + # - SHELL=ksh TEST_SUITE=installation_node + # - SHELL=ksh TEST_SUITE=installation_node WITHOUT_CURL=1 + - SHELL=sh TEST_SUITE=installation_iojs + - SHELL=sh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=dash TEST_SUITE=installation_iojs + - SHELL=dash TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=bash TEST_SUITE=installation_iojs + - SHELL=bash TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - SHELL=zsh TEST_SUITE=installation_iojs + - SHELL=zsh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + # - SHELL=ksh TEST_SUITE=installation_iojs + # - SHELL=ksh TEST_SUITE=installation_iojs WITHOUT_CURL=1 + - NODE=10 TEST="nvm install-latest-npm" + - NODE=9 TEST="nvm install-latest-npm" + - NODE=8 TEST="nvm install-latest-npm" + - NODE=7 TEST="nvm install-latest-npm" + - NODE=6 TEST="nvm install-latest-npm" + - NODE=5 TEST="nvm install-latest-npm" + - NODE=5.9 TEST="nvm install-latest-npm" + - NODE=4 TEST="nvm install-latest-npm" + - NODE=4.6 TEST="nvm install-latest-npm" + - NODE=4.5 TEST="nvm install-latest-npm" + - NODE=4.4 TEST="nvm install-latest-npm" + - NODE=2 TEST="nvm install-latest-npm" diff --git a/_nodejs/.nvm/CONTRIBUTING.md b/_nodejs/.nvm/CONTRIBUTING.md new file mode 100644 index 0000000..dc3d18a --- /dev/null +++ b/_nodejs/.nvm/CONTRIBUTING.md @@ -0,0 +1,21 @@ +Thanks for contributing to `nvm`! + +We love pull requests and issues, they're our favorite. + +However, before submitting, please review the following: + +For bug reports: + + - Please make sure the bug is reproducible, and give us the steps to reproduce it, so that we can dig into the problem. + - Please give us as much detail as possible about your environment, so we can more easily confirm the problem. + +For pull requests: + + - Please include tests. Changes with tests will be merged very quickly. + - Please manually confirm that your changes work in `bash`, `sh`/`dash`, `ksh`, and `zsh`. Fast tests do run in these shells, but it's nice to manually verify also. + - Please maintain consistent whitespace - 2-space indentation, trailing newlines in all files, etc. + - Any time you make a change to your PR, please rebase freshly on top of master. Nobody likes merge commits. + +Even if you don't have all of these items covered, please still feel free to submit a PR/issue! Someone else may be inspired and volunteer to complete it for you. + +Thanks again! diff --git a/_nodejs/.nvm/Dockerfile b/_nodejs/.nvm/Dockerfile new file mode 100644 index 0000000..3b121e7 --- /dev/null +++ b/_nodejs/.nvm/Dockerfile @@ -0,0 +1,116 @@ +# Dockerized nvm development environment +# +# This Dockerfile is for building nvm development environment only, +# not for any distribution/production usage. +# +# Please note that it'll use about 1.2 GB disk space and about 15 minutes to +# build this image, it depends on your hardware. + +# Use Ubuntu Trusty Tahr as base image as we're using on Travis CI +# I also tested with Ubuntu 16.04, should be good with it! +FROM ubuntu:14.04 +LABEL maintainer="Peter Dave Hello " +LABEL name="nvm-dev-env" +LABEL version="latest" + +# Set the SHELL to bash with pipefail option +SHELL ["/bin/bash", "-o", "pipefail", "-c"] + +# Prevent dialog during apt install +ENV DEBIAN_FRONTEND noninteractive + +# ShellCheck version +ENV SHELLCHECK_VERSION=0.6.0 + +# Pick a Ubuntu apt mirror site for better speed +# ref: https://launchpad.net/ubuntu/+archivemirrors +ENV UBUNTU_APT_SITE ubuntu.cs.utah.edu + +# Disable src package source +RUN sed -i 's/^deb-src\ /\#deb-src\ /g' /etc/apt/sources.list + +# Replace origin apt package site with the mirror site +RUN sed -E -i "s/([a-z]+.)?archive.ubuntu.com/$UBUNTU_APT_SITE/g" /etc/apt/sources.list +RUN sed -i "s/security.ubuntu.com/$UBUNTU_APT_SITE/g" /etc/apt/sources.list + +# Install apt packages +RUN apt update && \ + apt upgrade -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" && \ + apt install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" \ + coreutils \ + util-linux \ + bsdutils \ + file \ + openssl \ + libssl-dev \ + ca-certificates \ + ssh \ + wget \ + patch \ + sudo \ + htop \ + dstat \ + vim \ + tmux \ + curl \ + git \ + jq \ + realpath \ + zsh \ + ksh \ + gcc-4.8 \ + g++-4.8 \ + xz-utils \ + build-essential \ + bash-completion && \ + apt-get clean + +# ShellCheck with Ubuntu 14.04 container workaround +RUN wget https://storage.googleapis.com/shellcheck/shellcheck-v$SHELLCHECK_VERSION.linux.x86_64.tar.xz -O- | \ + tar xJvf - shellcheck-v$SHELLCHECK_VERSION/shellcheck && \ + mv shellcheck-v$SHELLCHECK_VERSION/shellcheck /bin && \ + rmdir shellcheck-v$SHELLCHECK_VERSION && \ + touch /tmp/libc.so.6 && \ + echo "alias shellcheck='LD_LIBRARY_PATH=/tmp /bin/shellcheck'" >> /etc/bash.bashrc +RUN LD_LIBRARY_PATH=/tmp shellcheck -V + +# Set locale +RUN locale-gen en_US.UTF-8 + +# Print tool versions +RUN bash --version | head -n 1 +RUN zsh --version +RUN ksh --version || true +RUN dpkg -s dash | grep ^Version | awk '{print $2}' +RUN git --version +RUN curl --version +RUN wget --version + +# Add user "nvm" as non-root user +RUN useradd -ms /bin/bash nvm + +# Copy and set permission for nvm directory +COPY . /home/nvm/.nvm/ +RUN chown nvm:nvm -R "home/nvm/.nvm" + +# Set sudoer for "nvm" +RUN echo 'nvm ALL=(ALL) NOPASSWD: ALL' >> /etc/sudoers + +# Switch to user "nvm" from now +USER nvm + +# nvm +RUN echo 'export NVM_DIR="$HOME/.nvm"' >> "$HOME/.bashrc" +RUN echo '[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh" # This loads nvm' >> "$HOME/.bashrc" +RUN echo '[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion" # This loads nvm bash_completion' >> "$HOME/.bashrc" + +# nodejs and tools +RUN bash -c 'source $HOME/.nvm/nvm.sh && \ + nvm install node && \ + npm install -g doctoc urchin eclint dockerfile_lint && \ + npm install --prefix "$HOME/.nvm/"' + +# Set WORKDIR to nvm directory +WORKDIR /home/nvm/.nvm + +ENTRYPOINT ["/bin/bash"] diff --git a/_nodejs/.nvm/LICENSE.md b/_nodejs/.nvm/LICENSE.md new file mode 100644 index 0000000..54a112f --- /dev/null +++ b/_nodejs/.nvm/LICENSE.md @@ -0,0 +1,22 @@ +The MIT License (MIT) + +Copyright (c) 2010 Tim Caswell + +Copyright (c) 2014 Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy of +this software and associated documentation files (the "Software"), to deal in +the Software without restriction, including without limitation the rights to +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of +the Software, and to permit persons to whom the Software is furnished to do so, +subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/_nodejs/.nvm/README.md b/_nodejs/.nvm/README.md new file mode 100644 index 0000000..365b8e4 --- /dev/null +++ b/_nodejs/.nvm/README.md @@ -0,0 +1,750 @@ +# Node Version Manager [![Build Status](https://travis-ci.org/nvm-sh/nvm.svg?branch=master)][3] [![nvm version](https://img.shields.io/badge/version-v0.35.3-yellow.svg)][4] [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/684/badge)](https://bestpractices.coreinfrastructure.org/projects/684) + + + + +## Table of Contents + +- [About](#about) +- [Installing and Updating](#installing-and-updating) + - [Install & Update Script](#install--update-script) + - [Additional Notes](#additional-notes) + - [Troubleshooting on Linux](#troubleshooting-on-linux) + - [Troubleshooting on macOS](#troubleshooting-on-macos) + - [Ansible](#ansible) + - [Verify Installation](#verify-installation) + - [Important Notes](#important-notes) + - [Git Install](#git-install) + - [Manual Install](#manual-install) + - [Manual Upgrade](#manual-upgrade) +- [Usage](#usage) + - [Long-term Support](#long-term-support) + - [Migrating Global Packages While Installing](#migrating-global-packages-while-installing) + - [Default Global Packages From File While Installing](#default-global-packages-from-file-while-installing) + - [io.js](#iojs) + - [System Version of Node](#system-version-of-node) + - [Listing Versions](#listing-versions) + - [Suppressing colorized output](#suppressing-colorized-output) + - [.nvmrc](#nvmrc) + - [Deeper Shell Integration](#deeper-shell-integration) + - [bash](#bash) + - [Automatically call `nvm use`](#automatically-call-nvm-use) + - [zsh](#zsh) + - [Calling `nvm use` automatically in a directory with a `.nvmrc` file](#calling-nvm-use-automatically-in-a-directory-with-a-nvmrc-file) +- [License](#license) +- [Running Tests](#running-tests) +- [Bash Completion](#bash-completion) + - [Usage](#usage-1) +- [Compatibility Issues](#compatibility-issues) +- [Installing nvm on Alpine Linux](#installing-nvm-on-alpine-linux) +- [Uninstalling / Removal](#uninstalling--removal) + - [Manual Uninstall](#manual-uninstall) +- [Docker For Development Environment](#docker-for-development-environment) +- [Problems](#problems) +- [macOS Troubleshooting](#macos-troubleshooting) + + + +## About +nvm is a version manager for [node.js](https://nodejs.org/en/), designed to be installed per-user, and invoked per-shell. `nvm` works on any POSIX-compliant shell (sh, dash, ksh, zsh, bash), in particular on these platforms: unix, macOS, and windows WSL. + + + +## Installing and Updating + +### Install & Update Script + +To **install** or **update** nvm, you should run the [install script][2]. To do that, you may either download and run the script manually, or use the following cURL or Wget command: +```sh +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash +``` +```sh +wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash +``` + +Running either of the above commands downloads a script and runs it. The script clones the nvm repository to `~/.nvm`, and attempts to add the source lines from the snippet below to the correct profile file (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). + + +```sh +export NVM_DIR="$([ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm")" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +``` + +#### Additional Notes + +- If the environment variable `$XDG_CONFIG_HOME` is present, it will place the `nvm` files there. + +- You can add `--no-use` to the end of the above script (...`nvm.sh --no-use`) to postpone using `nvm` until you manually [`use`](#usage) it. + +- You can customize the install source, directory, profile, and version using the `NVM_SOURCE`, `NVM_DIR`, `PROFILE`, and `NODE_VERSION` variables. +Eg: `curl ... | NVM_DIR="path/to/nvm"`. Ensure that the `NVM_DIR` does not contain a trailing slash. + +- The installer can use `git`, `curl`, or `wget` to download `nvm`, whichever is available. + +#### Troubleshooting on Linux + +On Linux, after running the install script, if you get `nvm: command not found` or see no feedback from your terminal after you type `command -v nvm`, simply close your current terminal, open a new terminal, and try verifying again. + +#### Troubleshooting on macOS + +Since OS X 10.9, `/usr/bin/git` has been preset by Xcode command line tools, which means we can't properly detect if Git is installed or not. You need to manually install the Xcode command line tools before running the install script, otherwise, it'll fail. (see [#1782](https://github.com/nvm-sh/nvm/issues/1782)) + +If you get `nvm: command not found` after running the install script, one of the following might be the reason: + + - Your system may not have a `.bash_profile` file where the command is set up. Create one with `touch ~/.bash_profile` and run the install script again + + - You might need to restart your terminal instance. Try opening a new tab/window in your terminal and retry. + +If the above doesn't fix the problem, you may try the following: + + - If you use bash, it may be that your `.bash_profile` (or `~/.profile`) does not source your `~/.bashrc` properly. You could fix this by adding `source ~/` to it or follow the next step below. + + - Try adding [the snippet from the install section](#profile_snippet), that finds the correct nvm directory and loads nvm, to your usual profile (`~/.bash_profile`, `~/.zshrc`, `~/.profile`, or `~/.bashrc`). + + - For more information about this issue and possible workarounds, please [refer here](https://github.com/nvm-sh/nvm/issues/576) + +#### Ansible + +You can use a task: + +``` +- name: nvm + shell: > + curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash + args: + creates: "{{ ansible_env.HOME }}/.nvm/nvm.sh" +``` + +### Verify Installation + +To verify that nvm has been installed, do: + +```sh +command -v nvm +``` + +which should output `nvm` if the installation was successful. Please note that `which nvm` will not work, since `nvm` is a sourced shell function, not an executable binary. + +### Important Notes + +If you're running a system without prepackaged binary available, which means you're going to install nodejs or io.js from its source code, you need to make sure your system has a C++ compiler. For OS X, Xcode will work, for Debian/Ubuntu based GNU/Linux, the `build-essential` and `libssl-dev` packages work. + +**Note:** `nvm` does not support Windows (see [#284](https://github.com/nvm-sh/nvm/issues/284)), but may work in WSL (Windows Subsystem for Linux) depending on the version of WSL. For Windows, two alternatives exist, which are neither supported nor developed by us: + + - [nvm-windows](https://github.com/coreybutler/nvm-windows) + - [nodist](https://github.com/marcelklehr/nodist) + +**Note:** `nvm` does not support [Fish] either (see [#303](https://github.com/nvm-sh/nvm/issues/303)). Alternatives exist, which are neither supported nor developed by us: + + - [bass](https://github.com/edc/bass) allows you to use utilities written for Bash in fish shell + - [fast-nvm-fish](https://github.com/brigand/fast-nvm-fish) only works with version numbers (not aliases) but doesn't significantly slow your shell startup + - [plugin-nvm](https://github.com/derekstavis/plugin-nvm) plugin for [Oh My Fish](https://github.com/oh-my-fish/oh-my-fish), which makes nvm and its completions available in fish shell + - [fnm](https://github.com/fisherman/fnm) - [fisherman](https://github.com/fisherman/fisherman)-based version manager for fish + - [fish-nvm](https://github.com/FabioAntunes/fish-nvm) - Wrapper around nvm for fish, delays sourcing nvm until it's actually used. + +**Note:** We still have some problems with FreeBSD, because there is no official pre-built binary for FreeBSD, and building from source may need [patches](https://www.freshports.org/www/node/files/patch-deps_v8_src_base_platform_platform-posix.cc); see the issue ticket: + + - [[#900] [Bug] nodejs on FreeBSD may need to be patched](https://github.com/nvm-sh/nvm/issues/900) + - [nodejs/node#3716](https://github.com/nodejs/node/issues/3716) + +**Note:** On OS X, if you do not have Xcode installed and you do not wish to download the ~4.3GB file, you can install the `Command Line Tools`. You can check out this blog post on how to just that: + + - [How to Install Command Line Tools in OS X Mavericks & Yosemite (Without Xcode)](http://osxdaily.com/2014/02/12/install-command-line-tools-mac-os-x/) + +**Note:** On OS X, if you have/had a "system" node installed and want to install modules globally, keep in mind that: + + - When using `nvm` you do not need `sudo` to globally install a module with `npm -g`, so instead of doing `sudo npm install -g grunt`, do instead `npm install -g grunt` + - If you have an `~/.npmrc` file, make sure it does not contain any `prefix` settings (which is not compatible with `nvm`) + - You can (but should not?) keep your previous "system" node install, but `nvm` will only be available to your user account (the one used to install nvm). This might cause version mismatches, as other users will be using `/usr/local/lib/node_modules/*` VS your user account using `~/.nvm/versions/node/vX.X.X/lib/node_modules/*` + +Homebrew installation is not supported. If you have issues with homebrew-installed `nvm`, please `brew uninstall` it, and install it using the instructions below, before filing an issue. + +**Note:** If you're using `zsh` you can easily install `nvm` as a zsh plugin. Install [`zsh-nvm`](https://github.com/lukechilds/zsh-nvm) and run `nvm upgrade` to upgrade. + +**Note:** Git versions before v1.7 may face a problem of cloning `nvm` source from GitHub via https protocol, and there is also different behavior of git before v1.6, and git prior to [v1.17.10](https://github.com/git/git/commit/5a7d5b683f869d3e3884a89775241afa515da9e7) can not clone tags, so the minimum required git version is v1.7.10. If you are interested in the problem we mentioned here, please refer to GitHub's [HTTPS cloning errors](https://help.github.com/articles/https-cloning-errors/) article. + +### Git Install + +If you have `git` installed (requires git v1.7.10+): + +1. clone this repo in the root of your user profile + - `cd ~/` from anywhere then `git clone https://github.com/nvm-sh/nvm.git .nvm` +1. `cd ~/.nvm` and check out the latest version with `git checkout v0.35.3` +1. activate `nvm` by sourcing it from your shell: `. nvm.sh` + +Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: +(you may have to add to more than one of the above files) + +```sh +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion +``` + +### Manual Install + +For a fully manual install, execute the following lines to first clone the `nvm` repository into `$HOME/.nvm`, and then load `nvm`: + +```sh +export NVM_DIR="$HOME/.nvm" && ( + git clone https://github.com/nvm-sh/nvm.git "$NVM_DIR" + cd "$NVM_DIR" + git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)` +) && \. "$NVM_DIR/nvm.sh" +``` + +Now add these lines to your `~/.bashrc`, `~/.profile`, or `~/.zshrc` file to have it automatically sourced upon login: +(you may have to add to more than one of the above files) + +```sh +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +``` + +### Manual Upgrade + +For manual upgrade with `git` (requires git v1.7.10+): + +1. change to the `$NVM_DIR` +1. pull down the latest changes +1. check out the latest version +1. activate the new version + +```sh +( + cd "$NVM_DIR" + git fetch --tags origin + git checkout `git describe --abbrev=0 --tags --match "v[0-9]*" $(git rev-list --tags --max-count=1)` +) && \. "$NVM_DIR/nvm.sh" +``` + +## Usage + +To download, compile, and install the latest release of node, do this: + +```sh +nvm install node # "node" is an alias for the latest version +``` + +To install a specific version of node: + +```sh +nvm install 6.14.4 # or 10.10.0, 8.9.1, etc +``` + +The first version installed becomes the default. New shells will start with the default version of node (e.g., `nvm alias default`). + +You can list available versions using `ls-remote`: + +```sh +nvm ls-remote +``` + +And then in any new shell just use the installed version: + +```sh +nvm use node +``` + +Or you can just run it: + +```sh +nvm run node --version +``` + +Or, you can run any arbitrary command in a subshell with the desired version of node: + +```sh +nvm exec 4.2 node --version +``` + +You can also get the path to the executable to where it was installed: + +```sh +nvm which 5.0 +``` + +In place of a version pointer like "0.10" or "5.0" or "4.2.1", you can use the following special default aliases with `nvm install`, `nvm use`, `nvm run`, `nvm exec`, `nvm which`, etc: + + - `node`: this installs the latest version of [`node`](https://nodejs.org/en/) + - `iojs`: this installs the latest version of [`io.js`](https://iojs.org/en/) + - `stable`: this alias is deprecated, and only truly applies to `node` `v0.12` and earlier. Currently, this is an alias for `node`. + - `unstable`: this alias points to `node` `v0.11` - the last "unstable" node release, since post-1.0, all node versions are stable. (in SemVer, versions communicate breakage, not stability). + +### Long-term Support + +Node has a [schedule](https://github.com/nodejs/Release#release-schedule) for long-term support (LTS) You can reference LTS versions in aliases and `.nvmrc` files with the notation `lts/*` for the latest LTS, and `lts/argon` for LTS releases from the "argon" line, for example. In addition, the following commands support LTS arguments: + + - `nvm install --lts` / `nvm install --lts=argon` / `nvm install 'lts/*'` / `nvm install lts/argon` + - `nvm uninstall --lts` / `nvm uninstall --lts=argon` / `nvm uninstall 'lts/*'` / `nvm uninstall lts/argon` + - `nvm use --lts` / `nvm use --lts=argon` / `nvm use 'lts/*'` / `nvm use lts/argon` + - `nvm exec --lts` / `nvm exec --lts=argon` / `nvm exec 'lts/*'` / `nvm exec lts/argon` + - `nvm run --lts` / `nvm run --lts=argon` / `nvm run 'lts/*'` / `nvm run lts/argon` + - `nvm ls-remote --lts` / `nvm ls-remote --lts=argon` `nvm ls-remote 'lts/*'` / `nvm ls-remote lts/argon` + - `nvm version-remote --lts` / `nvm version-remote --lts=argon` / `nvm version-remote 'lts/*'` / `nvm version-remote lts/argon` + +Any time your local copy of `nvm` connects to https://nodejs.org, it will re-create the appropriate local aliases for all available LTS lines. These aliases (stored under `$NVM_DIR/alias/lts`), are managed by `nvm`, and you should not modify, remove, or create these files - expect your changes to be undone, and expect meddling with these files to cause bugs that will likely not be supported. + +### Migrating Global Packages While Installing + +If you want to install a new version of Node.js and migrate npm packages from a previous version: + +```sh +nvm install node --reinstall-packages-from=node +``` + +This will first use "nvm version node" to identify the current version you're migrating packages from. Then it resolves the new version to install from the remote server and installs it. Lastly, it runs "nvm reinstall-packages" to reinstall the npm packages from your prior version of Node to the new one. + +You can also install and migrate npm packages from specific versions of Node like this: + +```sh +nvm install 6 --reinstall-packages-from=5 +nvm install v4.2 --reinstall-packages-from=iojs +``` + +Note that reinstalling packages _explicitly does not update the npm version_ — this is to ensure that npm isn't accidentally upgraded to a broken version for the new node version. + +To update npm at the same time add the `--latest-npm` flag, like this: + +```sh +nvm install lts/* --reinstall-packages-from=default --latest-npm +``` + +or, you can at any time run the following command to get the latest supported npm version on the current node version: +```sh +nvm install-latest-npm +``` + +If you've already gotten an error to the effect of "npm does not support Node.js", you'll need to (1) revert to a previous node version (`nvm ls` & `nvm use `, (2) delete the newly created node version (`nvm uninstall `), then (3) rerun your `nvm install` with the `--latest-npm` flag. + + +### Default Global Packages From File While Installing + +If you have a list of default packages you want installed every time you install a new version, we support that too -- just add the package names, one per line, to the file `$NVM_DIR/default-packages`. You can add anything npm would accept as a package argument on the command line. + +```sh +# $NVM_DIR/default-packages + +rimraf +object-inspect@1.0.2 +stevemao/left-pad +``` + +### io.js + +If you want to install [io.js](https://github.com/iojs/io.js/): + +```sh +nvm install iojs +``` + +If you want to install a new version of io.js and migrate npm packages from a previous version: + +```sh +nvm install iojs --reinstall-packages-from=iojs +``` + +The same guidelines mentioned for migrating npm packages in node are applicable to io.js. + +### System Version of Node + +If you want to use the system-installed version of node, you can use the special default alias "system": + +```sh +nvm use system +nvm run system --version +``` + +### Listing Versions + +If you want to see what versions are installed: + +```sh +nvm ls +``` + +If you want to see what versions are available to install: + +```sh +nvm ls-remote +``` + +#### Suppressing colorized output + +`nvm ls`, `nvm ls-remote` and `nvm alias` usually produce colorized output. You can disable colors with the `--no-colors` option (or by setting the environment variable `TERM=dumb`): + +```sh +nvm ls --no-colors +TERM=dumb nvm ls +``` + +To restore your PATH, you can deactivate it: + +```sh +nvm deactivate +``` + +To set a default Node version to be used in any new shell, use the alias 'default': + +```sh +nvm alias default node +``` + +To use a mirror of the node binaries, set `$NVM_NODEJS_ORG_MIRROR`: + +```sh +export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist +nvm install node + +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist nvm install 4.2 +``` + +To use a mirror of the io.js binaries, set `$NVM_IOJS_ORG_MIRROR`: + +```sh +export NVM_IOJS_ORG_MIRROR=https://iojs.org/dist +nvm install iojs-v1.0.3 + +NVM_IOJS_ORG_MIRROR=https://iojs.org/dist nvm install iojs-v1.0.3 +``` + +`nvm use` will not, by default, create a "current" symlink. Set `$NVM_SYMLINK_CURRENT` to "true" to enable this behavior, which is sometimes useful for IDEs. Note that using `nvm` in multiple shell tabs with this environment variable enabled can cause race conditions. + +### .nvmrc + +You can create a `.nvmrc` file containing a node version number (or any other string that `nvm` understands; see `nvm --help` for details) in the project root directory (or any parent directory). +Afterwards, `nvm use`, `nvm install`, `nvm exec`, `nvm run`, and `nvm which` will use the version specified in the `.nvmrc` file if no version is supplied on the command line. + +For example, to make nvm default to the latest 5.9 release, the latest LTS version, or the latest node version for the current directory: + +```sh +$ echo "5.9" > .nvmrc + +$ echo "lts/*" > .nvmrc # to default to the latest LTS version + +$ echo "node" > .nvmrc # to default to the latest version +``` + +Then when you run nvm: + +```sh +$ nvm use +Found '/path/to/project/.nvmrc' with version <5.9> +Now using node v5.9.1 (npm v3.7.3) +``` + +`nvm use` et. al. will traverse directory structure upwards from the current directory looking for the `.nvmrc` file. In other words, running `nvm use` et. al. in any subdirectory of a directory with an `.nvmrc` will result in that `.nvmrc` being utilized. + +The contents of a `.nvmrc` file **must** be the `` (as described by `nvm --help`) followed by a newline. No trailing spaces are allowed, and the trailing newline is required. + +### Deeper Shell Integration + +You can use [`avn`](https://github.com/wbyoung/avn) to deeply integrate into your shell and automatically invoke `nvm` when changing directories. `avn` is **not** supported by the `nvm` development team. Please [report issues to the `avn` team](https://github.com/wbyoung/avn/issues/new). + +If you prefer a lighter-weight solution, the recipes below have been contributed by `nvm` users. They are **not** supported by the `nvm` development team. We are, however, accepting pull requests for more examples. + +#### bash + +##### Automatically call `nvm use` + +Put the following at the end of your `$HOME/.bashrc`: + +```bash +find-up () { + path=$(pwd) + while [[ "$path" != "" && ! -e "$path/$1" ]]; do + path=${path%/*} + done + echo "$path" +} + +cdnvm(){ + cd "$@"; + nvm_path=$(find-up .nvmrc | tr -d '[:space:]') + + # If there are no .nvmrc file, use the default nvm version + if [[ ! $nvm_path = *[^[:space:]]* ]]; then + + declare default_version; + default_version=$(nvm version default); + + # If there is no default version, set it to `node` + # This will use the latest version on your machine + if [[ $default_version == "N/A" ]]; then + nvm alias default node; + default_version=$(nvm version default); + fi + + # If the current version is not the default version, set it to use the default version + if [[ $(nvm current) != "$default_version" ]]; then + nvm use default; + fi + + elif [[ -s $nvm_path/.nvmrc && -r $nvm_path/.nvmrc ]]; then + declare nvm_version + nvm_version=$(<"$nvm_path"/.nvmrc) + + declare locally_resolved_nvm_version + # `nvm ls` will check all locally-available versions + # If there are multiple matching versions, take the latest one + # Remove the `->` and `*` characters and spaces + # `locally_resolved_nvm_version` will be `N/A` if no local versions are found + locally_resolved_nvm_version=$(nvm ls --no-colors "$nvm_version" | tail -1 | tr -d '\->*' | tr -d '[:space:]') + + # If it is not already installed, install it + # `nvm install` will implicitly use the newly-installed version + if [[ "$locally_resolved_nvm_version" == "N/A" ]]; then + nvm install "$nvm_version"; + elif [[ $(nvm current) != "$locally_resolved_nvm_version" ]]; then + nvm use "$nvm_version"; + fi + fi +} +alias cd='cdnvm' +``` + +This alias would search 'up' from your current directory in order to detect a `.nvmrc` file. If it finds it, it will switch to that version; if not, it will use the default version. + +#### zsh + +##### Calling `nvm use` automatically in a directory with a `.nvmrc` file + +Put this into your `$HOME/.zshrc` to call `nvm use` automatically whenever you enter a directory that contains an +`.nvmrc` file with a string telling nvm which node to `use`: + +```zsh +# place this after nvm initialization! +autoload -U add-zsh-hook +load-nvmrc() { + local node_version="$(nvm version)" + local nvmrc_path="$(nvm_find_nvmrc)" + + if [ -n "$nvmrc_path" ]; then + local nvmrc_node_version=$(nvm version "$(cat "${nvmrc_path}")") + + if [ "$nvmrc_node_version" = "N/A" ]; then + nvm install + elif [ "$nvmrc_node_version" != "$node_version" ]; then + nvm use + fi + elif [ "$node_version" != "$(nvm version default)" ]; then + echo "Reverting to nvm default version" + nvm use default + fi +} +add-zsh-hook chpwd load-nvmrc +load-nvmrc +``` + +## License + +nvm is released under the MIT license. + + +Copyright (C) 2010 Tim Caswell and Jordan Harband + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +## Running Tests + +Tests are written in [Urchin]. Install Urchin (and other dependencies) like so: + + npm install + +There are slow tests and fast tests. The slow tests do things like install node +and check that the right versions are used. The fast tests fake this to test +things like aliases and uninstalling. From the root of the nvm git repository, +run the fast tests like this: + + npm run test/fast + +Run the slow tests like this: + + npm run test/slow + +Run all of the tests like this: + + npm test + +Nota bene: Avoid running nvm while the tests are running. + +## Bash Completion + +To activate, you need to source `bash_completion`: + +```sh +[[ -r $NVM_DIR/bash_completion ]] && \. $NVM_DIR/bash_completion +``` + +Put the above sourcing line just below the sourcing line for nvm in your profile (`.bashrc`, `.bash_profile`). + +### Usage + +nvm: +> $ nvm Tab + +``` +alias deactivate install ls run unload +clear-cache exec list ls-remote unalias use +current help list-remote reinstall-packages uninstall version +``` + +nvm alias: +> $ nvm alias Tab + +``` +default +``` + +> $ nvm alias my_alias Tab + +``` +v0.6.21 v0.8.26 v0.10.28 +``` + +nvm use: +> $ nvm use Tab + +``` +my_alias default v0.6.21 v0.8.26 v0.10.28 +``` + +nvm uninstall: +> $ nvm uninstall Tab + +``` +my_alias default v0.6.21 v0.8.26 v0.10.28 +``` + +## Compatibility Issues + +`nvm` will encounter some issues if you have some non-default settings set. (see [#606](/../../issues/606)) +The following are known to cause issues: + +Inside `~/.npmrc`: + +```sh +prefix='some/path' +``` + +Environment Variables: + +```sh +$NPM_CONFIG_PREFIX +$PREFIX +``` + +Shell settings: + +```sh +set -e +``` + +## Installing nvm on Alpine Linux + +In order to provide the best performance (and other optimisations), nvm will download and install pre-compiled binaries for Node (and npm) when you run `nvm install X`. The Node project compiles, tests and hosts/provides these pre-compiled binaries which are built for mainstream/traditional Linux distributions (such as Debian, Ubuntu, CentOS, RedHat et al). + +Alpine Linux, unlike mainstream/traditional Linux distributions, is based on [BusyBox](https://www.busybox.net/), a very compact (~5MB) Linux distribution. BusyBox (and thus Alpine Linux) uses a different C/C++ stack to most mainstream/traditional Linux distributions - [musl](https://www.musl-libc.org/). This makes binary programs built for such mainstream/traditional incompatible with Alpine Linux, thus we cannot simply `nvm install X` on Alpine Linux and expect the downloaded binary to run correctly - you'll likely see "...does not exist" errors if you try that. + +There is a `-s` flag for `nvm install` which requests nvm download Node source and compile it locally. + +If installing nvm on Alpine Linux *is* still what you want or need to do, you should be able to achieve this by running the following from you Alpine Linux shell: + +```sh +apk add -U curl bash ca-certificates openssl ncurses coreutils python2 make gcc g++ libgcc linux-headers grep util-linux binutils findutils +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash +``` + +The Node project has some desire but no concrete plans (due to the overheads of building, testing and support) to offer Alpine-compatible binaries. + +As a potential alternative, @mhart (a Node contributor) has some [Docker images for Alpine Linux with Node and optionally, npm, pre-installed](https://github.com/mhart/alpine-node). + + +## Uninstalling / Removal + +### Manual Uninstall + +To remove `nvm` manually, execute the following: + +```sh +$ rm -rf "$NVM_DIR" +``` + +Edit `~/.bashrc` (or other shell resource config) and remove the lines below: + +```sh +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm +[[ -r $NVM_DIR/bash_completion ]] && \. $NVM_DIR/bash_completion +``` + +## Docker For Development Environment + +To make the development and testing work easier, we have a Dockerfile for development usage, which is based on Ubuntu 14.04 base image, prepared with essential and useful tools for `nvm` development, to build the docker image of the environment, run the docker command at the root of `nvm` repository: + +```sh +$ docker build -t nvm-dev . +``` + +This will package your current nvm repository with our pre-defined development environment into a docker image named `nvm-dev`, once it's built with success, validate your image via `docker images`: + +```sh +$ docker images + +REPOSITORY TAG IMAGE ID CREATED SIZE +nvm-dev latest 9ca4c57a97d8 7 days ago 650 MB +``` + +If you got no error message, now you can easily involve in: + +```sh +$ docker run -h nvm-dev -it nvm-dev + +nvm@nvm-dev:~/.nvm$ +``` + +Please note that it'll take about 8 minutes to build the image and the image size would be about 650MB, so it's not suitable for production usage. + +For more information and documentation about docker, please refer to its official website: + + - https://www.docker.com/ + - https://docs.docker.com/ + +## Problems + + - If you try to install a node version and the installation fails, be sure to run `nvm cache clear` to delete cached node downloads, or you might get an error like the following: + + curl: (33) HTTP server doesn't seem to support byte ranges. Cannot resume. + + - Where's my `sudo node`? Check out [#43](https://github.com/nvm-sh/nvm/issues/43) + + - After the v0.8.6 release of node, nvm tries to install from binary packages. But in some systems, the official binary packages don't work due to incompatibility of shared libs. In such cases, use `-s` option to force install from source: + +```sh +nvm install -s 0.8.6 +``` + + - If setting the `default` alias does not establish the node version in new shells (i.e. `nvm current` yields `system`), ensure that the system's node `PATH` is set before the `nvm.sh` source line in your shell profile (see [#658](https://github.com/nvm-sh/nvm/issues/658)) + +## macOS Troubleshooting + +**nvm node version not found in vim shell** + +If you set node version to a version other than your system node version `nvm use 6.2.1` and open vim and run `:!node -v` you should see `v6.2.1` if you see your system version `v0.12.7`. You need to run: + +```shell +sudo chmod ugo-x /usr/libexec/path_helper +``` + +More on this issue in [dotphiles/dotzsh](https://github.com/dotphiles/dotzsh#mac-os-x). + +[1]: https://github.com/nvm-sh/nvm.git +[2]: https://github.com/nvm-sh/nvm/blob/v0.35.3/install.sh +[3]: https://travis-ci.org/nvm-sh/nvm +[4]: https://github.com/nvm-sh/nvm/releases/tag/v0.35.3 +[Urchin]: https://github.com/scraperwiki/urchin +[Fish]: http://fishshell.com diff --git a/_nodejs/.nvm/ROADMAP.md b/_nodejs/.nvm/ROADMAP.md new file mode 100644 index 0000000..28d4b49 --- /dev/null +++ b/_nodejs/.nvm/ROADMAP.md @@ -0,0 +1,9 @@ +# nvm Road Map + +This is a list of the primary features planned for `nvm`: + +- [x] Rewriting installation code paths to support installing `io.js` and `node` `v4+` [from source](https://github.com/nvm-sh/nvm/issues/1188). + - This will include [reusing previously downloaded tarballs](https://github.com/nvm-sh/nvm/issues/1193) that match checksums, which is a nice performance and bandwidth bonus. +- [ ] Adding opt-in environment variable support to list, download, and install `node` [release candidates](https://github.com/nvm-sh/nvm/issues/779), and [nightly builds](https://github.com/nvm-sh/nvm/issues/1053). +- [ ] [`nvm update`](https://github.com/nvm-sh/nvm/issues/400): the ability to autoupdate `nvm` itself +- [ ] [v1.0.0](https://github.com/nvm-sh/nvm/milestone/1), including updating the [nvm on npm](https://github.com/nvm-sh/nvm/issues/304) to auto-install nvm properly diff --git a/_nodejs/.nvm/bash_completion b/_nodejs/.nvm/bash_completion new file mode 100644 index 0000000..0c872ee --- /dev/null +++ b/_nodejs/.nvm/bash_completion @@ -0,0 +1,95 @@ +#!/usr/bin/env bash + +# bash completion for Node Version Manager (NVM) + +if ! command -v nvm &> /dev/null; then + return +fi + +__nvm_generate_completion() { + declare current_word + current_word="${COMP_WORDS[COMP_CWORD]}" + # shellcheck disable=SC2207 + COMPREPLY=($(compgen -W "$1" -- "${current_word}")) + return 0 +} + +__nvm_commands() { + declare current_word + declare command + + current_word="${COMP_WORDS[COMP_CWORD]}" + + COMMANDS=' + help install uninstall use run exec + alias unalias reinstall-packages + current list ls list-remote ls-remote + install-latest-npm + cache deactivate unload + version version-remote which' + + if [ ${#COMP_WORDS[@]} == 4 ]; then + + command="${COMP_WORDS[COMP_CWORD - 2]}" + case "${command}" in + alias) __nvm_installed_nodes ;; + esac + + else + + case "${current_word}" in + -*) __nvm_options ;; + *) __nvm_generate_completion "${COMMANDS}" ;; + esac + + fi +} + +__nvm_options() { + OPTIONS='' + __nvm_generate_completion "${OPTIONS}" +} + +__nvm_installed_nodes() { + __nvm_generate_completion "$(nvm_ls) $(__nvm_aliases)" +} + +__nvm_aliases() { + declare aliases + aliases="" + if [ -d "${NVM_DIR}/alias" ]; then + aliases="$(cd "${NVM_DIR}/alias" && command find "${PWD}" -type f | command sed "s:${PWD}/::")" + fi + echo "${aliases} node stable unstable iojs" +} + +__nvm_alias() { + __nvm_generate_completion "$(__nvm_aliases)" +} + +__nvm() { + declare previous_word + previous_word="${COMP_WORDS[COMP_CWORD - 1]}" + + case "${previous_word}" in + use | run | exec | ls | list | uninstall) __nvm_installed_nodes ;; + alias | unalias) __nvm_alias ;; + *) __nvm_commands ;; + esac + + return 0 +} + +# complete is a bash builtin, but recent versions of ZSH come with a function +# called bashcompinit that will create a complete in ZSH. If the user is in +# ZSH, load and run bashcompinit before calling the complete function. +if [[ -n ${ZSH_VERSION-} ]]; then + autoload -U +X bashcompinit && bashcompinit + autoload -U +X compinit && if [[ ${ZSH_DISABLE_COMPFIX-} = true ]]; then + compinit -u + else + compinit + fi +fi + +complete -o default -F __nvm nvm diff --git a/_nodejs/.nvm/install.sh b/_nodejs/.nvm/install.sh new file mode 100755 index 0000000..0ea9a0a --- /dev/null +++ b/_nodejs/.nvm/install.sh @@ -0,0 +1,425 @@ +#!/usr/bin/env bash + +{ # this ensures the entire script is downloaded # + +nvm_has() { + type "$1" > /dev/null 2>&1 +} + +nvm_default_install_dir() { + [ -z "${XDG_CONFIG_HOME-}" ] && printf %s "${HOME}/.nvm" || printf %s "${XDG_CONFIG_HOME}/nvm" +} + +nvm_install_dir() { + if [ -n "$NVM_DIR" ]; then + printf %s "${NVM_DIR}" + else + nvm_default_install_dir + fi +} + +nvm_latest_version() { + echo "v0.35.3" +} + +nvm_profile_is_bash_or_zsh() { + local TEST_PROFILE + TEST_PROFILE="${1-}" + case "${TEST_PROFILE-}" in + *"/.bashrc" | *"/.bash_profile" | *"/.zshrc") + return + ;; + *) + return 1 + ;; + esac +} + +# +# Outputs the location to NVM depending on: +# * The availability of $NVM_SOURCE +# * The method used ("script" or "git" in the script, defaults to "git") +# NVM_SOURCE always takes precedence unless the method is "script-nvm-exec" +# +nvm_source() { + local NVM_METHOD + NVM_METHOD="$1" + local NVM_SOURCE_URL + NVM_SOURCE_URL="$NVM_SOURCE" + if [ "_$NVM_METHOD" = "_script-nvm-exec" ]; then + NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/nvm-exec" + elif [ "_$NVM_METHOD" = "_script-nvm-bash-completion" ]; then + NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/bash_completion" + elif [ -z "$NVM_SOURCE_URL" ]; then + if [ "_$NVM_METHOD" = "_script" ]; then + NVM_SOURCE_URL="https://raw.githubusercontent.com/nvm-sh/nvm/$(nvm_latest_version)/nvm.sh" + elif [ "_$NVM_METHOD" = "_git" ] || [ -z "$NVM_METHOD" ]; then + NVM_SOURCE_URL="https://github.com/nvm-sh/nvm.git" + else + echo >&2 "Unexpected value \"$NVM_METHOD\" for \$NVM_METHOD" + return 1 + fi + fi + echo "$NVM_SOURCE_URL" +} + +# +# Node.js version to install +# +nvm_node_version() { + echo "$NODE_VERSION" +} + +nvm_download() { + if nvm_has "curl"; then + curl --compressed -q "$@" + elif nvm_has "wget"; then + # Emulate curl with wget + ARGS=$(echo "$*" | command sed -e 's/--progress-bar /--progress=bar /' \ + -e 's/-L //' \ + -e 's/--compressed //' \ + -e 's/-I /--server-response /' \ + -e 's/-s /-q /' \ + -e 's/-o /-O /' \ + -e 's/-C - /-c /') + # shellcheck disable=SC2086 + eval wget $ARGS + fi +} + +install_nvm_from_git() { + local INSTALL_DIR + INSTALL_DIR="$(nvm_install_dir)" + + if [ -d "$INSTALL_DIR/.git" ]; then + echo "=> nvm is already installed in $INSTALL_DIR, trying to update using git" + command printf '\r=> ' + command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" fetch origin tag "$(nvm_latest_version)" --depth=1 2> /dev/null || { + echo >&2 "Failed to update nvm, run 'git fetch' in $INSTALL_DIR yourself." + exit 1 + } + else + # Cloning to $INSTALL_DIR + echo "=> Downloading nvm from git to '$INSTALL_DIR'" + command printf '\r=> ' + mkdir -p "${INSTALL_DIR}" + if [ "$(ls -A "${INSTALL_DIR}")" ]; then + command git init "${INSTALL_DIR}" || { + echo >&2 'Failed to initialize nvm repo. Please report this!' + exit 2 + } + command git --git-dir="${INSTALL_DIR}/.git" remote add origin "$(nvm_source)" 2> /dev/null \ + || command git --git-dir="${INSTALL_DIR}/.git" remote set-url origin "$(nvm_source)" || { + echo >&2 'Failed to add remote "origin" (or set the URL). Please report this!' + exit 2 + } + command git --git-dir="${INSTALL_DIR}/.git" fetch origin tag "$(nvm_latest_version)" --depth=1 || { + echo >&2 'Failed to fetch origin with tags. Please report this!' + exit 2 + } + else + command git -c advice.detachedHead=false clone "$(nvm_source)" -b "$(nvm_latest_version)" --depth=1 "${INSTALL_DIR}" || { + echo >&2 'Failed to clone nvm repo. Please report this!' + exit 2 + } + fi + fi + command git -c advice.detachedHead=false --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" checkout -f --quiet "$(nvm_latest_version)" + if [ -n "$(command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" show-ref refs/heads/master)" ]; then + if command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet 2>/dev/null; then + command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch --quiet -D master >/dev/null 2>&1 + else + echo >&2 "Your version of git is out of date. Please update it!" + command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" branch -D master >/dev/null 2>&1 + fi + fi + + echo "=> Compressing and cleaning up git repository" + if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" reflog expire --expire=now --all; then + echo >&2 "Your version of git is out of date. Please update it!" + fi + if ! command git --git-dir="$INSTALL_DIR"/.git --work-tree="$INSTALL_DIR" gc --auto --aggressive --prune=now ; then + echo >&2 "Your version of git is out of date. Please update it!" + fi + return +} + +# +# Automatically install Node.js +# +nvm_install_node() { + local NODE_VERSION_LOCAL + NODE_VERSION_LOCAL="$(nvm_node_version)" + + if [ -z "$NODE_VERSION_LOCAL" ]; then + return 0 + fi + + echo "=> Installing Node.js version $NODE_VERSION_LOCAL" + nvm install "$NODE_VERSION_LOCAL" + local CURRENT_NVM_NODE + + CURRENT_NVM_NODE="$(nvm_version current)" + if [ "$(nvm_version "$NODE_VERSION_LOCAL")" == "$CURRENT_NVM_NODE" ]; then + echo "=> Node.js version $NODE_VERSION_LOCAL has been successfully installed" + else + echo >&2 "Failed to install Node.js $NODE_VERSION_LOCAL" + fi +} + +install_nvm_as_script() { + local INSTALL_DIR + INSTALL_DIR="$(nvm_install_dir)" + local NVM_SOURCE_LOCAL + NVM_SOURCE_LOCAL="$(nvm_source script)" + local NVM_EXEC_SOURCE + NVM_EXEC_SOURCE="$(nvm_source script-nvm-exec)" + local NVM_BASH_COMPLETION_SOURCE + NVM_BASH_COMPLETION_SOURCE="$(nvm_source script-nvm-bash-completion)" + + # Downloading to $INSTALL_DIR + mkdir -p "$INSTALL_DIR" + if [ -f "$INSTALL_DIR/nvm.sh" ]; then + echo "=> nvm is already installed in $INSTALL_DIR, trying to update the script" + else + echo "=> Downloading nvm as script to '$INSTALL_DIR'" + fi + nvm_download -s "$NVM_SOURCE_LOCAL" -o "$INSTALL_DIR/nvm.sh" || { + echo >&2 "Failed to download '$NVM_SOURCE_LOCAL'" + return 1 + } & + nvm_download -s "$NVM_EXEC_SOURCE" -o "$INSTALL_DIR/nvm-exec" || { + echo >&2 "Failed to download '$NVM_EXEC_SOURCE'" + return 2 + } & + nvm_download -s "$NVM_BASH_COMPLETION_SOURCE" -o "$INSTALL_DIR/bash_completion" || { + echo >&2 "Failed to download '$NVM_BASH_COMPLETION_SOURCE'" + return 2 + } & + for job in $(jobs -p | command sort) + do + wait "$job" || return $? + done + chmod a+x "$INSTALL_DIR/nvm-exec" || { + echo >&2 "Failed to mark '$INSTALL_DIR/nvm-exec' as executable" + return 3 + } +} + +nvm_try_profile() { + if [ -z "${1-}" ] || [ ! -f "${1}" ]; then + return 1 + fi + echo "${1}" +} + +# +# Detect profile file if not specified as environment variable +# (eg: PROFILE=~/.myprofile) +# The echo'ed path is guaranteed to be an existing file +# Otherwise, an empty string is returned +# +nvm_detect_profile() { + if [ "${PROFILE-}" = '/dev/null' ]; then + # the user has specifically requested NOT to have nvm touch their profile + return + fi + + if [ -n "${PROFILE}" ] && [ -f "${PROFILE}" ]; then + echo "${PROFILE}" + return + fi + + local DETECTED_PROFILE + DETECTED_PROFILE='' + + if [ -n "${BASH_VERSION-}" ]; then + if [ -f "$HOME/.bashrc" ]; then + DETECTED_PROFILE="$HOME/.bashrc" + elif [ -f "$HOME/.bash_profile" ]; then + DETECTED_PROFILE="$HOME/.bash_profile" + fi + elif [ -n "${ZSH_VERSION-}" ]; then + DETECTED_PROFILE="$HOME/.zshrc" + fi + + if [ -z "$DETECTED_PROFILE" ]; then + for EACH_PROFILE in ".profile" ".bashrc" ".bash_profile" ".zshrc" + do + if DETECTED_PROFILE="$(nvm_try_profile "${HOME}/${EACH_PROFILE}")"; then + break + fi + done + fi + + if [ -n "$DETECTED_PROFILE" ]; then + echo "$DETECTED_PROFILE" + fi +} + +# +# Check whether the user has any globally-installed npm modules in their system +# Node, and warn them if so. +# +nvm_check_global_modules() { + command -v npm >/dev/null 2>&1 || return 0 + + local NPM_VERSION + NPM_VERSION="$(npm --version)" + NPM_VERSION="${NPM_VERSION:--1}" + [ "${NPM_VERSION%%[!-0-9]*}" -gt 0 ] || return 0 + + local NPM_GLOBAL_MODULES + NPM_GLOBAL_MODULES="$( + npm list -g --depth=0 | + command sed -e '/ npm@/d' -e '/ (empty)$/d' + )" + + local MODULE_COUNT + MODULE_COUNT="$( + command printf %s\\n "$NPM_GLOBAL_MODULES" | + command sed -ne '1!p' | # Remove the first line + wc -l | command tr -d ' ' # Count entries + )" + + if [ "${MODULE_COUNT}" != '0' ]; then + # shellcheck disable=SC2016 + echo '=> You currently have modules installed globally with `npm`. These will no' + # shellcheck disable=SC2016 + echo '=> longer be linked to the active version of Node when you install a new node' + # shellcheck disable=SC2016 + echo '=> with `nvm`; and they may (depending on how you construct your `$PATH`)' + # shellcheck disable=SC2016 + echo '=> override the binaries of modules installed with `nvm`:' + echo + + command printf %s\\n "$NPM_GLOBAL_MODULES" + echo '=> If you wish to uninstall them at a later point (or re-install them under your' + # shellcheck disable=SC2016 + echo '=> `nvm` Nodes), you can remove them from the system Node as follows:' + echo + echo ' $ nvm use system' + echo ' $ npm uninstall -g a_module' + echo + fi +} + +nvm_do_install() { + if [ -n "${NVM_DIR-}" ] && ! [ -d "${NVM_DIR}" ]; then + if [ -e "${NVM_DIR}" ]; then + echo >&2 "File \"${NVM_DIR}\" has the same name as installation directory." + exit 1 + fi + + if [ "${NVM_DIR}" = "$(nvm_default_install_dir)" ]; then + mkdir "${NVM_DIR}" + else + echo >&2 "You have \$NVM_DIR set to \"${NVM_DIR}\", but that directory does not exist. Check your profile files and environment." + exit 1 + fi + fi + if [ -z "${METHOD}" ]; then + # Autodetect install method + if nvm_has git; then + install_nvm_from_git + elif nvm_has nvm_download; then + install_nvm_as_script + else + echo >&2 'You need git, curl, or wget to install nvm' + exit 1 + fi + elif [ "${METHOD}" = 'git' ]; then + if ! nvm_has git; then + echo >&2 "You need git to install nvm" + exit 1 + fi + install_nvm_from_git + elif [ "${METHOD}" = 'script' ]; then + if ! nvm_has nvm_download; then + echo >&2 "You need curl or wget to install nvm" + exit 1 + fi + install_nvm_as_script + else + echo >&2 "The environment variable \$METHOD is set to \"${METHOD}\", which is not recognized as a valid installation method." + exit 1 + fi + + echo + + local NVM_PROFILE + NVM_PROFILE="$(nvm_detect_profile)" + local PROFILE_INSTALL_DIR + PROFILE_INSTALL_DIR="$(nvm_install_dir | command sed "s:^$HOME:\$HOME:")" + + SOURCE_STR="\\nexport NVM_DIR=\"${PROFILE_INSTALL_DIR}\"\\n[ -s \"\$NVM_DIR/nvm.sh\" ] && \\. \"\$NVM_DIR/nvm.sh\" # This loads nvm\\n" + + # shellcheck disable=SC2016 + COMPLETION_STR='[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion\n' + BASH_OR_ZSH=false + + if [ -z "${NVM_PROFILE-}" ] ; then + local TRIED_PROFILE + if [ -n "${PROFILE}" ]; then + TRIED_PROFILE="${NVM_PROFILE} (as defined in \$PROFILE), " + fi + echo "=> Profile not found. Tried ${TRIED_PROFILE-}~/.bashrc, ~/.bash_profile, ~/.zshrc, and ~/.profile." + echo "=> Create one of them and run this script again" + echo " OR" + echo "=> Append the following lines to the correct file yourself:" + command printf "${SOURCE_STR}" + echo + else + if nvm_profile_is_bash_or_zsh "${NVM_PROFILE-}"; then + BASH_OR_ZSH=true + fi + if ! command grep -qc '/nvm.sh' "$NVM_PROFILE"; then + echo "=> Appending nvm source string to $NVM_PROFILE" + command printf "${SOURCE_STR}" >> "$NVM_PROFILE" + else + echo "=> nvm source string already in ${NVM_PROFILE}" + fi + # shellcheck disable=SC2016 + if ${BASH_OR_ZSH} && ! command grep -qc '$NVM_DIR/bash_completion' "$NVM_PROFILE"; then + echo "=> Appending bash_completion source string to $NVM_PROFILE" + command printf "$COMPLETION_STR" >> "$NVM_PROFILE" + else + echo "=> bash_completion source string already in ${NVM_PROFILE}" + fi + fi + if ${BASH_OR_ZSH} && [ -z "${NVM_PROFILE-}" ] ; then + echo "=> Please also append the following lines to the if you are using bash/zsh shell:" + command printf "${COMPLETION_STR}" + fi + + # Source nvm + # shellcheck source=/dev/null + \. "$(nvm_install_dir)/nvm.sh" + + nvm_check_global_modules + + nvm_install_node + + nvm_reset + + echo "=> Close and reopen your terminal to start using nvm or run the following to use it now:" + command printf "${SOURCE_STR}" + if ${BASH_OR_ZSH} ; then + command printf "${COMPLETION_STR}" + fi +} + +# +# Unsets the various functions defined +# during the execution of the install script +# +nvm_reset() { + unset -f nvm_has nvm_install_dir nvm_latest_version nvm_profile_is_bash_or_zsh \ + nvm_source nvm_node_version nvm_download install_nvm_from_git nvm_install_node \ + install_nvm_as_script nvm_try_profile nvm_detect_profile nvm_check_global_modules \ + nvm_do_install nvm_reset nvm_default_install_dir +} + +[ "_$NVM_ENV" = "_testing" ] || nvm_do_install + +} # this ensures the entire script is downloaded # diff --git a/_nodejs/.nvm/nvm-exec b/_nodejs/.nvm/nvm-exec new file mode 100755 index 0000000..c47cd06 --- /dev/null +++ b/_nodejs/.nvm/nvm-exec @@ -0,0 +1,15 @@ +#!/usr/bin/env bash + +DIR="$(command cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +# shellcheck disable=SC1090 +\. "$DIR/nvm.sh" --no-use + +if [ -n "$NODE_VERSION" ]; then + nvm use "$NODE_VERSION" > /dev/null || exit 127 +elif ! nvm use >/dev/null 2>&1; then + echo "No NODE_VERSION provided; no .nvmrc file found" >&2 + exit 127 +fi + +exec "$@" diff --git a/_nodejs/.nvm/nvm.sh b/_nodejs/.nvm/nvm.sh new file mode 100644 index 0000000..7ba32d8 --- /dev/null +++ b/_nodejs/.nvm/nvm.sh @@ -0,0 +1,3722 @@ +# Node Version Manager +# Implemented as a POSIX-compliant function +# Should work on sh, dash, bash, ksh, zsh +# To use source this file from your bash profile +# +# Implemented by Tim Caswell +# with much bash help from Matthew Ranney + +# "local" warning, quote expansion warning +# shellcheck disable=SC2039,SC2016,SC2001 +{ # this ensures the entire script is downloaded # + +NVM_SCRIPT_SOURCE="$_" + +nvm_is_zsh() { + [ -n "${ZSH_VERSION-}" ] +} + +nvm_stdout_is_terminal() { + [ -t 1 ] +} + +nvm_echo() { + command printf %s\\n "$*" 2>/dev/null +} + +nvm_cd() { + \cd "$@" +} + +nvm_err() { + >&2 nvm_echo "$@" +} + +nvm_grep() { + GREP_OPTIONS='' command grep "$@" +} + +nvm_has() { + type "${1-}" >/dev/null 2>&1 +} + +nvm_has_non_aliased() { + nvm_has "${1-}" && ! nvm_is_alias "${1-}" +} + +nvm_is_alias() { + # this is intentionally not "command alias" so it works in zsh. + \alias "${1-}" >/dev/null 2>&1 +} + +nvm_command_info() { + local COMMAND + local INFO + COMMAND="${1}" + if type "${COMMAND}" | nvm_grep -q hashed; then + INFO="$(type "${COMMAND}" | command sed -E 's/\(|\)//g' | command awk '{print $4}')" + elif type "${COMMAND}" | nvm_grep -q aliased; then + # shellcheck disable=SC2230 + INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4="" ;print }' | command sed -e 's/^\ *//g' -Ee "s/\`|'//g"))" + elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is an alias for"; then + # shellcheck disable=SC2230 + INFO="$(which "${COMMAND}") ($(type "${COMMAND}" | command awk '{ $1=$2=$3=$4=$5="" ;print }' | command sed 's/^\ *//g'))" + elif type "${COMMAND}" | nvm_grep -q "^${COMMAND} is \\/"; then + INFO="$(type "${COMMAND}" | command awk '{print $3}')" + else + INFO="$(type "${COMMAND}")" + fi + nvm_echo "${INFO}" +} + +nvm_has_colors() { + local NVM_COLORS + if nvm_has tput; then + NVM_COLORS="$(tput -T "${TERM:-vt100}" colors)" + fi + [ "${NVM_COLORS:--1}" -ge 8 ] +} + +nvm_curl_libz_support() { + curl -V 2>/dev/null | nvm_grep "^Features:" | nvm_grep -q "libz" +} + +nvm_curl_use_compression() { + nvm_curl_libz_support && nvm_version_greater_than_or_equal_to "$(nvm_curl_version)" 7.21.0 +} + +nvm_get_latest() { + local NVM_LATEST_URL + local CURL_COMPRESSED_FLAG + if nvm_has "curl"; then + if nvm_curl_use_compression; then + CURL_COMPRESSED_FLAG="--compressed" + fi + NVM_LATEST_URL="$(curl ${CURL_COMPRESSED_FLAG:-} -q -w "%{url_effective}\\n" -L -s -S http://latest.nvm.sh -o /dev/null)" + elif nvm_has "wget"; then + NVM_LATEST_URL="$(wget -q http://latest.nvm.sh --server-response -O /dev/null 2>&1 | command awk '/^ Location: /{DEST=$2} END{ print DEST }')" + else + nvm_err 'nvm needs curl or wget to proceed.' + return 1 + fi + if [ -z "${NVM_LATEST_URL}" ]; then + nvm_err "http://latest.nvm.sh did not redirect to the latest release on GitHub" + return 2 + fi + nvm_echo "${NVM_LATEST_URL##*/}" +} + +nvm_download() { + local CURL_COMPRESSED_FLAG + if nvm_has "curl"; then + if nvm_curl_use_compression; then + CURL_COMPRESSED_FLAG="--compressed" + fi + curl --fail ${CURL_COMPRESSED_FLAG:-} -q "$@" + elif nvm_has "wget"; then + # Emulate curl with wget + ARGS=$(nvm_echo "$@" | command sed -e 's/--progress-bar /--progress=bar /' \ + -e 's/--compressed //' \ + -e 's/--fail //' \ + -e 's/-L //' \ + -e 's/-I /--server-response /' \ + -e 's/-s /-q /' \ + -e 's/-sS /-nv /' \ + -e 's/-o /-O /' \ + -e 's/-C - /-c /') + # shellcheck disable=SC2086 + eval wget $ARGS + fi +} + +nvm_has_system_node() { + [ "$(nvm deactivate >/dev/null 2>&1 && command -v node)" != '' ] +} + +nvm_has_system_iojs() { + [ "$(nvm deactivate >/dev/null 2>&1 && command -v iojs)" != '' ] +} + +nvm_is_version_installed() { + [ -n "${1-}" ] && [ -x "$(nvm_version_path "$1" 2>/dev/null)"/bin/node ] +} + +nvm_print_npm_version() { + if nvm_has "npm"; then + command printf " (npm v$(npm --version 2>/dev/null))" + fi +} + +nvm_install_latest_npm() { + nvm_echo 'Attempting to upgrade to the latest working version of npm...' + local NODE_VERSION + NODE_VERSION="$(nvm_strip_iojs_prefix "$(nvm_ls_current)")" + if [ "${NODE_VERSION}" = 'system' ]; then + NODE_VERSION="$(node --version)" + elif [ "${NODE_VERSION}" = 'none' ]; then + nvm_echo "Detected node version ${NODE_VERSION}, npm version v${NPM_VERSION}" + NODE_VERSION='' + fi + if [ -z "${NODE_VERSION}" ]; then + nvm_err 'Unable to obtain node version.' + return 1 + fi + local NPM_VERSION + NPM_VERSION="$(npm --version 2>/dev/null)" + if [ -z "${NPM_VERSION}" ]; then + nvm_err 'Unable to obtain npm version.' + return 2 + fi + + local NVM_NPM_CMD + NVM_NPM_CMD='npm' + if [ "${NVM_DEBUG-}" = 1 ]; then + nvm_echo "Detected node version ${NODE_VERSION}, npm version v${NPM_VERSION}" + NVM_NPM_CMD='nvm_echo npm' + fi + + local NVM_IS_0_6 + NVM_IS_0_6=0 + if nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 0.6.0 && nvm_version_greater 0.7.0 "${NODE_VERSION}"; then + NVM_IS_0_6=1 + fi + local NVM_IS_0_9 + NVM_IS_0_9=0 + if nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 0.9.0 && nvm_version_greater 0.10.0 "${NODE_VERSION}"; then + NVM_IS_0_9=1 + fi + + if [ $NVM_IS_0_6 -eq 1 ]; then + nvm_echo '* `node` v0.6.x can only upgrade to `npm` v1.3.x' + $NVM_NPM_CMD install -g npm@1.3 + elif [ $NVM_IS_0_9 -eq 0 ]; then + # node 0.9 breaks here, for some reason + if nvm_version_greater_than_or_equal_to "${NPM_VERSION}" 1.0.0 && nvm_version_greater 2.0.0 "${NPM_VERSION}"; then + nvm_echo '* `npm` v1.x needs to first jump to `npm` v1.4.28 to be able to upgrade further' + $NVM_NPM_CMD install -g npm@1.4.28 + elif nvm_version_greater_than_or_equal_to "${NPM_VERSION}" 2.0.0 && nvm_version_greater 3.0.0 "${NPM_VERSION}"; then + nvm_echo '* `npm` v2.x needs to first jump to the latest v2 to be able to upgrade further' + $NVM_NPM_CMD install -g npm@2 + fi + fi + + if [ $NVM_IS_0_9 -eq 1 ] || [ $NVM_IS_0_6 -eq 1 ]; then + nvm_echo '* node v0.6 and v0.9 are unable to upgrade further' + elif nvm_version_greater 1.1.0 "${NODE_VERSION}"; then + nvm_echo '* `npm` v4.5.x is the last version that works on `node` versions < v1.1.0' + $NVM_NPM_CMD install -g npm@4.5 + elif nvm_version_greater 4.0.0 "${NODE_VERSION}"; then + nvm_echo '* `npm` v5 and higher do not work on `node` versions below v4.0.0' + $NVM_NPM_CMD install -g npm@4 + elif [ $NVM_IS_0_9 -eq 0 ] && [ $NVM_IS_0_6 -eq 0 ]; then + local NVM_IS_4_4_OR_BELOW + NVM_IS_4_4_OR_BELOW=0 + if nvm_version_greater 4.5.0 "${NODE_VERSION}"; then + NVM_IS_4_4_OR_BELOW=1 + fi + + local NVM_IS_5_OR_ABOVE + NVM_IS_5_OR_ABOVE=0 + if [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 5.0.0; then + NVM_IS_5_OR_ABOVE=1 + fi + + local NVM_IS_6_OR_ABOVE + NVM_IS_6_OR_ABOVE=0 + local NVM_IS_6_2_OR_ABOVE + NVM_IS_6_2_OR_ABOVE=0 + if [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 6.0.0; then + NVM_IS_6_OR_ABOVE=1 + if nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 6.2.0; then + NVM_IS_6_2_OR_ABOVE=1 + fi + fi + + local NVM_IS_9_OR_ABOVE + NVM_IS_9_OR_ABOVE=0 + local NVM_IS_9_3_OR_ABOVE + NVM_IS_9_3_OR_ABOVE=0 + if [ $NVM_IS_6_2_OR_ABOVE -eq 1 ] && nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 9.0.0; then + NVM_IS_9_OR_ABOVE=1 + if nvm_version_greater_than_or_equal_to "${NODE_VERSION}" 9.3.0; then + NVM_IS_9_3_OR_ABOVE=1 + fi + fi + + if [ $NVM_IS_4_4_OR_BELOW -eq 1 ] || { + [ $NVM_IS_5_OR_ABOVE -eq 1 ] && nvm_version_greater 5.10.0 "${NODE_VERSION}"; \ + }; then + nvm_echo '* `npm` `v5.3.x` is the last version that works on `node` 4.x versions below v4.4, or 5.x versions below v5.10, due to `Buffer.alloc`' + $NVM_NPM_CMD install -g npm@5.3 + elif [ $NVM_IS_4_4_OR_BELOW -eq 0 ] && nvm_version_greater 4.7.0 "${NODE_VERSION}"; then + nvm_echo '* `npm` `v5.4.1` is the last version that works on `node` `v4.5` and `v4.6`' + $NVM_NPM_CMD install -g npm@5.4.1 + elif [ $NVM_IS_6_OR_ABOVE -eq 0 ]; then + nvm_echo '* `npm` `v5.x` is the last version that works on `node` below `v6.0.0`' + $NVM_NPM_CMD install -g npm@5 + elif \ + { [ $NVM_IS_6_OR_ABOVE -eq 1 ] && [ $NVM_IS_6_2_OR_ABOVE -eq 0 ]; } \ + || { [ $NVM_IS_9_OR_ABOVE -eq 1 ] && [ $NVM_IS_9_3_OR_ABOVE -eq 0 ]; } \ + ; then + nvm_echo '* `npm` `v6.9` is the last version that works on `node` `v6.0.x`, `v6.1.x`, `v9.0.x`, `v9.1.x`, or `v9.2.x`' + $NVM_NPM_CMD install -g npm@6.9 + else + nvm_echo '* Installing latest `npm`; if this does not work on your node version, please report a bug!' + $NVM_NPM_CMD install -g npm + fi + fi + nvm_echo "* npm upgraded to: v$(npm --version 2>/dev/null)" +} + +# Make zsh glob matching behave same as bash +# This fixes the "zsh: no matches found" errors +if [ -z "${NVM_CD_FLAGS-}" ]; then + export NVM_CD_FLAGS='' +fi +if nvm_is_zsh; then + NVM_CD_FLAGS="-q" +fi + +# Auto detect the NVM_DIR when not set +if [ -z "${NVM_DIR-}" ]; then + # shellcheck disable=SC2128 + if [ -n "${BASH_SOURCE-}" ]; then + # shellcheck disable=SC2169 + NVM_SCRIPT_SOURCE="${BASH_SOURCE[0]}" + fi + NVM_DIR="$(nvm_cd ${NVM_CD_FLAGS} "$(dirname "${NVM_SCRIPT_SOURCE:-$0}")" >/dev/null && \pwd)" + export NVM_DIR +else + # https://unix.stackexchange.com/a/198289 + case $NVM_DIR in + *[!/]*/) + NVM_DIR="${NVM_DIR%"${NVM_DIR##*[!/]}"}" + export NVM_DIR + nvm_err "Warning: \$NVM_DIR should not have trailing slashes" + ;; + esac +fi +unset NVM_SCRIPT_SOURCE 2>/dev/null + +nvm_tree_contains_path() { + local tree + tree="${1-}" + local node_path + node_path="${2-}" + + if [ "@${tree}@" = "@@" ] || [ "@${node_path}@" = "@@" ]; then + nvm_err "both the tree and the node path are required" + return 2 + fi + + local pathdir + pathdir=$(dirname "${node_path}") + while [ "${pathdir}" != "" ] && [ "${pathdir}" != "." ] && [ "${pathdir}" != "/" ] && [ "${pathdir}" != "${tree}" ]; do + pathdir=$(dirname "${pathdir}") + done + [ "${pathdir}" = "${tree}" ] +} + +# Traverse up in directory tree to find containing folder +nvm_find_up() { + local path_ + path_="${PWD}" + while [ "${path_}" != "" ] && [ ! -f "${path_}/${1-}" ]; do + path_=${path_%/*} + done + nvm_echo "${path_}" +} + +nvm_find_nvmrc() { + local dir + dir="$(nvm_find_up '.nvmrc')" + if [ -e "${dir}/.nvmrc" ]; then + nvm_echo "${dir}/.nvmrc" + fi +} + +# Obtain nvm version from rc file +nvm_rc_version() { + export NVM_RC_VERSION='' + local NVMRC_PATH + NVMRC_PATH="$(nvm_find_nvmrc)" + if [ ! -e "${NVMRC_PATH}" ]; then + nvm_err "No .nvmrc file found" + return 1 + fi + NVM_RC_VERSION="$(command head -n 1 "${NVMRC_PATH}" | command tr -d '\r')" || command printf '' + if [ -z "${NVM_RC_VERSION}" ]; then + nvm_err "Warning: empty .nvmrc file found at \"${NVMRC_PATH}\"" + return 2 + fi + nvm_echo "Found '${NVMRC_PATH}' with version <${NVM_RC_VERSION}>" +} + +nvm_clang_version() { + clang --version | command awk '{ if ($2 == "version") print $3; else if ($3 == "version") print $4 }' | command sed 's/-.*$//g' +} + +nvm_curl_version() { + curl -V | command awk '{ if ($1 == "curl") print $2 }' | command sed 's/-.*$//g' +} + +nvm_version_greater() { + command awk 'BEGIN { + if (ARGV[1] == "" || ARGV[2] == "") exit(1) + split(ARGV[1], a, /\./); + split(ARGV[2], b, /\./); + for (i=1; i<=3; i++) { + if (a[i] && a[i] !~ /^[0-9]+$/) exit(2); + if (b[i] && b[i] !~ /^[0-9]+$/) { exit(0); } + if (a[i] < b[i]) exit(3); + else if (a[i] > b[i]) exit(0); + } + exit(4) + }' "${1#v}" "${2#v}" +} + +nvm_version_greater_than_or_equal_to() { + command awk 'BEGIN { + if (ARGV[1] == "" || ARGV[2] == "") exit(1) + split(ARGV[1], a, /\./); + split(ARGV[2], b, /\./); + for (i=1; i<=3; i++) { + if (a[i] && a[i] !~ /^[0-9]+$/) exit(2); + if (a[i] < b[i]) exit(3); + else if (a[i] > b[i]) exit(0); + } + exit(0) + }' "${1#v}" "${2#v}" +} + +nvm_version_dir() { + local NVM_WHICH_DIR + NVM_WHICH_DIR="${1-}" + if [ -z "${NVM_WHICH_DIR}" ] || [ "${NVM_WHICH_DIR}" = "new" ]; then + nvm_echo "${NVM_DIR}/versions/node" + elif [ "_${NVM_WHICH_DIR}" = "_iojs" ]; then + nvm_echo "${NVM_DIR}/versions/io.js" + elif [ "_${NVM_WHICH_DIR}" = "_old" ]; then + nvm_echo "${NVM_DIR}" + else + nvm_err 'unknown version dir' + return 3 + fi +} + +nvm_alias_path() { + nvm_echo "$(nvm_version_dir old)/alias" +} + +nvm_version_path() { + local VERSION + VERSION="${1-}" + if [ -z "${VERSION}" ]; then + nvm_err 'version is required' + return 3 + elif nvm_is_iojs_version "${VERSION}"; then + nvm_echo "$(nvm_version_dir iojs)/$(nvm_strip_iojs_prefix "${VERSION}")" + elif nvm_version_greater 0.12.0 "${VERSION}"; then + nvm_echo "$(nvm_version_dir old)/${VERSION}" + else + nvm_echo "$(nvm_version_dir new)/${VERSION}" + fi +} + +nvm_ensure_version_installed() { + local PROVIDED_VERSION + PROVIDED_VERSION="${1-}" + if [ "${PROVIDED_VERSION}" = 'system' ]; then + if nvm_has_system_iojs || nvm_has_system_node; then + return 0 + fi + nvm_err "N/A: no system version of node/io.js is installed." + return 1 + fi + local LOCAL_VERSION + local EXIT_CODE + LOCAL_VERSION="$(nvm_version "${PROVIDED_VERSION}")" + EXIT_CODE="$?" + local NVM_VERSION_DIR + if [ "${EXIT_CODE}" != "0" ] || ! nvm_is_version_installed "${LOCAL_VERSION}"; then + if VERSION="$(nvm_resolve_alias "${PROVIDED_VERSION}")"; then + nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed." + else + local PREFIXED_VERSION + PREFIXED_VERSION="$(nvm_ensure_version_prefix "${PROVIDED_VERSION}")" + nvm_err "N/A: version \"${PREFIXED_VERSION:-$PROVIDED_VERSION}\" is not yet installed." + fi + nvm_err "" + nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." + return 1 + fi +} + +# Expand a version using the version cache +nvm_version() { + local PATTERN + PATTERN="${1-}" + local VERSION + # The default version is the current one + if [ -z "${PATTERN}" ]; then + PATTERN='current' + fi + + if [ "${PATTERN}" = "current" ]; then + nvm_ls_current + return $? + fi + + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + case "_${PATTERN}" in + "_${NVM_NODE_PREFIX}" | "_${NVM_NODE_PREFIX}-") + PATTERN="stable" + ;; + esac + VERSION="$(nvm_ls "${PATTERN}" | command tail -1)" + if [ -z "${VERSION}" ] || [ "_${VERSION}" = "_N/A" ]; then + nvm_echo "N/A" + return 3 + fi + nvm_echo "${VERSION}" +} + +nvm_remote_version() { + local PATTERN + PATTERN="${1-}" + local VERSION + if nvm_validate_implicit_alias "${PATTERN}" 2>/dev/null; then + case "${PATTERN}" in + "$(nvm_iojs_prefix)") + VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote_iojs | command tail -1)" &&: + ;; + *) + VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN}")" &&: + ;; + esac + else + VERSION="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "${PATTERN}" | command tail -1)" + fi + if [ -n "${NVM_VERSION_ONLY-}" ]; then + command awk 'BEGIN { + n = split(ARGV[1], a); + print a[1] + }' "${VERSION}" + else + nvm_echo "${VERSION}" + fi + if [ "${VERSION}" = 'N/A' ]; then + return 3 + fi +} + +nvm_remote_versions() { + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + + local PATTERN + PATTERN="${1-}" + + local NVM_FLAVOR + if [ -n "${NVM_LTS-}" ]; then + NVM_FLAVOR="${NVM_NODE_PREFIX}" + fi + + case "${PATTERN}" in + "${NVM_IOJS_PREFIX}" | "io.js") + NVM_FLAVOR="${NVM_IOJS_PREFIX}" + unset PATTERN + ;; + "${NVM_NODE_PREFIX}") + NVM_FLAVOR="${NVM_NODE_PREFIX}" + unset PATTERN + ;; + esac + + if nvm_validate_implicit_alias "${PATTERN-}" 2>/dev/null; then + nvm_err 'Implicit aliases are not supported in nvm_remote_versions.' + return 1 + fi + + local NVM_LS_REMOTE_EXIT_CODE + NVM_LS_REMOTE_EXIT_CODE=0 + local NVM_LS_REMOTE_PRE_MERGED_OUTPUT + NVM_LS_REMOTE_PRE_MERGED_OUTPUT='' + local NVM_LS_REMOTE_POST_MERGED_OUTPUT + NVM_LS_REMOTE_POST_MERGED_OUTPUT='' + if [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_NODE_PREFIX}" ]; then + local NVM_LS_REMOTE_OUTPUT + # extra space is needed here to avoid weird behavior when `nvm_ls_remote` ends in a `*` + NVM_LS_REMOTE_OUTPUT="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${PATTERN-}") " &&: + NVM_LS_REMOTE_EXIT_CODE=$? + # split output into two + NVM_LS_REMOTE_PRE_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT%%v4\.0\.0*}" + NVM_LS_REMOTE_POST_MERGED_OUTPUT="${NVM_LS_REMOTE_OUTPUT#$NVM_LS_REMOTE_PRE_MERGED_OUTPUT}" + fi + + local NVM_LS_REMOTE_IOJS_EXIT_CODE + NVM_LS_REMOTE_IOJS_EXIT_CODE=0 + local NVM_LS_REMOTE_IOJS_OUTPUT + NVM_LS_REMOTE_IOJS_OUTPUT='' + if [ -z "${NVM_LTS-}" ] && { + [ -z "${NVM_FLAVOR-}" ] || [ "${NVM_FLAVOR-}" = "${NVM_IOJS_PREFIX}" ]; + }; then + NVM_LS_REMOTE_IOJS_OUTPUT=$(nvm_ls_remote_iojs "${PATTERN-}") &&: + NVM_LS_REMOTE_IOJS_EXIT_CODE=$? + fi + + # the `sed` removes both blank lines, and only-whitespace lines (see "weird behavior" ~19 lines up) + VERSIONS="$(nvm_echo "${NVM_LS_REMOTE_PRE_MERGED_OUTPUT} +${NVM_LS_REMOTE_IOJS_OUTPUT} +${NVM_LS_REMOTE_POST_MERGED_OUTPUT}" | nvm_grep -v "N/A" | command sed '/^ *$/d')" + + if [ -z "${VERSIONS}" ]; then + nvm_echo 'N/A' + return 3 + fi + # the `sed` is to remove trailing whitespaces (see "weird behavior" ~25 lines up) + nvm_echo "${VERSIONS}" | command sed 's/ *$//g' + return $NVM_LS_REMOTE_EXIT_CODE || $NVM_LS_REMOTE_IOJS_EXIT_CODE +} + +nvm_is_valid_version() { + if nvm_validate_implicit_alias "${1-}" 2>/dev/null; then + return 0 + fi + case "${1-}" in + "$(nvm_iojs_prefix)" | \ + "$(nvm_node_prefix)") + return 0 + ;; + *) + local VERSION + VERSION="$(nvm_strip_iojs_prefix "${1-}")" + nvm_version_greater_than_or_equal_to "${VERSION}" 0 + ;; + esac +} + +nvm_normalize_version() { + command awk 'BEGIN { + split(ARGV[1], a, /\./); + printf "%d%06d%06d\n", a[1], a[2], a[3]; + exit; + }' "${1#v}" +} + +nvm_ensure_version_prefix() { + local NVM_VERSION + NVM_VERSION="$(nvm_strip_iojs_prefix "${1-}" | command sed -e 's/^\([0-9]\)/v\1/g')" + if nvm_is_iojs_version "${1-}"; then + nvm_add_iojs_prefix "${NVM_VERSION}" + else + nvm_echo "${NVM_VERSION}" + fi +} + +nvm_format_version() { + local VERSION + VERSION="$(nvm_ensure_version_prefix "${1-}")" + local NUM_GROUPS + NUM_GROUPS="$(nvm_num_version_groups "${VERSION}")" + if [ "${NUM_GROUPS}" -lt 3 ]; then + nvm_format_version "${VERSION%.}.0" + else + nvm_echo "${VERSION}" | command cut -f1-3 -d. + fi +} + +nvm_num_version_groups() { + local VERSION + VERSION="${1-}" + VERSION="${VERSION#v}" + VERSION="${VERSION%.}" + if [ -z "${VERSION}" ]; then + nvm_echo "0" + return + fi + local NVM_NUM_DOTS + NVM_NUM_DOTS=$(nvm_echo "${VERSION}" | command sed -e 's/[^\.]//g') + local NVM_NUM_GROUPS + NVM_NUM_GROUPS=".${NVM_NUM_DOTS}" # add extra dot, since it's (n - 1) dots at this point + nvm_echo "${#NVM_NUM_GROUPS}" +} + +nvm_strip_path() { + if [ -z "${NVM_DIR-}" ]; then + nvm_err '${NVM_DIR} not set!' + return 1 + fi + nvm_echo "${1-}" | command sed \ + -e "s#${NVM_DIR}/[^/]*${2-}[^:]*:##g" \ + -e "s#:${NVM_DIR}/[^/]*${2-}[^:]*##g" \ + -e "s#${NVM_DIR}/[^/]*${2-}[^:]*##g" \ + -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*:##g" \ + -e "s#:${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*##g" \ + -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*##g" +} + +nvm_change_path() { + # if there’s no initial path, just return the supplementary path + if [ -z "${1-}" ]; then + nvm_echo "${3-}${2-}" + # if the initial path doesn’t contain an nvm path, prepend the supplementary + # path + elif ! nvm_echo "${1-}" | nvm_grep -q "${NVM_DIR}/[^/]*${2-}" \ + && ! nvm_echo "${1-}" | nvm_grep -q "${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then + nvm_echo "${3-}${2-}:${1-}" + # if the initial path contains BOTH an nvm path (checked for above) and + # that nvm path is preceded by a system binary path, just prepend the + # supplementary path instead of replacing it. + # https://github.com/nvm-sh/nvm/issues/1652#issuecomment-342571223 + elif nvm_echo "${1-}" | nvm_grep -Eq "(^|:)(/usr(/local)?)?${2-}:.*${NVM_DIR}/[^/]*${2-}" \ + || nvm_echo "${1-}" | nvm_grep -Eq "(^|:)(/usr(/local)?)?${2-}:.*${NVM_DIR}/versions/[^/]*/[^/]*${2-}"; then + nvm_echo "${3-}${2-}:${1-}" + # use sed to replace the existing nvm path with the supplementary path. This + # preserves the order of the path. + else + nvm_echo "${1-}" | command sed \ + -e "s#${NVM_DIR}/[^/]*${2-}[^:]*#${3-}${2-}#" \ + -e "s#${NVM_DIR}/versions/[^/]*/[^/]*${2-}[^:]*#${3-}${2-}#" + fi +} + +nvm_binary_available() { + # binaries started with node 0.8.6 + nvm_version_greater_than_or_equal_to "$(nvm_strip_iojs_prefix "${1-}")" v0.8.6 +} + +nvm_print_formatted_alias() { + local ALIAS + ALIAS="${1-}" + local DEST + DEST="${2-}" + local VERSION + VERSION="${3-}" + if [ -z "${VERSION}" ]; then + VERSION="$(nvm_version "${DEST}")" ||: + fi + local VERSION_FORMAT + local ALIAS_FORMAT + local DEST_FORMAT + ALIAS_FORMAT='%s' + DEST_FORMAT='%s' + VERSION_FORMAT='%s' + local NEWLINE + NEWLINE='\n' + if [ "_${DEFAULT}" = '_true' ]; then + NEWLINE=' (default)\n' + fi + local ARROW + ARROW='->' + if [ -z "${NVM_NO_COLORS}" ] && nvm_has_colors; then + ARROW='\033[0;90m->\033[0m' + if [ "_${DEFAULT}" = '_true' ]; then + NEWLINE=' \033[0;37m(default)\033[0m\n' + fi + if [ "_${VERSION}" = "_${NVM_CURRENT-}" ]; then + ALIAS_FORMAT='\033[0;32m%s\033[0m' + DEST_FORMAT='\033[0;32m%s\033[0m' + VERSION_FORMAT='\033[0;32m%s\033[0m' + elif nvm_is_version_installed "${VERSION}"; then + ALIAS_FORMAT='\033[0;34m%s\033[0m' + DEST_FORMAT='\033[0;34m%s\033[0m' + VERSION_FORMAT='\033[0;34m%s\033[0m' + elif [ "${VERSION}" = '∞' ] || [ "${VERSION}" = 'N/A' ]; then + ALIAS_FORMAT='\033[1;31m%s\033[0m' + DEST_FORMAT='\033[1;31m%s\033[0m' + VERSION_FORMAT='\033[1;31m%s\033[0m' + fi + if [ "_${NVM_LTS-}" = '_true' ]; then + ALIAS_FORMAT='\033[1;33m%s\033[0m' + fi + if [ "_${DEST%/*}" = "_lts" ]; then + DEST_FORMAT='\033[1;33m%s\033[0m' + fi + elif [ "_${VERSION}" != '_∞' ] && [ "_${VERSION}" != '_N/A' ]; then + VERSION_FORMAT='%s *' + fi + if [ "${DEST}" = "${VERSION}" ]; then + command printf -- "${ALIAS_FORMAT} ${ARROW} ${VERSION_FORMAT}${NEWLINE}" "${ALIAS}" "${DEST}" + else + command printf -- "${ALIAS_FORMAT} ${ARROW} ${DEST_FORMAT} (${ARROW} ${VERSION_FORMAT})${NEWLINE}" "${ALIAS}" "${DEST}" "${VERSION}" + fi +} + +nvm_print_alias_path() { + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="${1-}" + if [ -z "${NVM_ALIAS_DIR}" ]; then + nvm_err 'An alias dir is required.' + return 1 + fi + local ALIAS_PATH + ALIAS_PATH="${2-}" + if [ -z "${ALIAS_PATH}" ]; then + nvm_err 'An alias path is required.' + return 2 + fi + local ALIAS + ALIAS="${ALIAS_PATH##${NVM_ALIAS_DIR}\/}" + local DEST + DEST="$(nvm_alias "${ALIAS}" 2>/dev/null)" ||: + if [ -n "${DEST}" ]; then + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS="${NVM_LTS-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${DEST}" + fi +} + +nvm_print_default_alias() { + local ALIAS + ALIAS="${1-}" + if [ -z "${ALIAS}" ]; then + nvm_err 'A default alias is required.' + return 1 + fi + local DEST + DEST="$(nvm_print_implicit_alias local "${ALIAS}")" + if [ -n "${DEST}" ]; then + NVM_NO_COLORS="${NVM_NO_COLORS-}" DEFAULT=true nvm_print_formatted_alias "${ALIAS}" "${DEST}" + fi +} + +nvm_make_alias() { + local ALIAS + ALIAS="${1-}" + if [ -z "${ALIAS}" ]; then + nvm_err "an alias name is required" + return 1 + fi + local VERSION + VERSION="${2-}" + if [ -z "${VERSION}" ]; then + nvm_err "an alias target version is required" + return 2 + fi + nvm_echo "${VERSION}" | tee "$(nvm_alias_path)/${ALIAS}" >/dev/null +} + +nvm_list_aliases() { + local ALIAS + ALIAS="${1-}" + + local NVM_CURRENT + NVM_CURRENT="$(nvm_ls_current)" + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="$(nvm_alias_path)" + command mkdir -p "${NVM_ALIAS_DIR}/lts" + + ( + local ALIAS_PATH + for ALIAS_PATH in "${NVM_ALIAS_DIR}/${ALIAS}"*; do + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}" & + done + wait + ) | sort + + ( + local ALIAS_NAME + for ALIAS_NAME in "$(nvm_node_prefix)" "stable" "unstable"; do + { + if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && { [ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]; }; then + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" + fi + } & + done + wait + ALIAS_NAME="$(nvm_iojs_prefix)" + if [ ! -f "${NVM_ALIAS_DIR}/${ALIAS_NAME}" ] && { [ -z "${ALIAS}" ] || [ "${ALIAS_NAME}" = "${ALIAS}" ]; }; then + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT}" nvm_print_default_alias "${ALIAS_NAME}" + fi + ) | sort + + ( + local LTS_ALIAS + for ALIAS_PATH in "${NVM_ALIAS_DIR}/lts/${ALIAS}"*; do + { + LTS_ALIAS="$(NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_LTS=true nvm_print_alias_path "${NVM_ALIAS_DIR}" "${ALIAS_PATH}")" + if [ -n "${LTS_ALIAS}" ]; then + nvm_echo "${LTS_ALIAS}" + fi + } & + done + wait + ) | sort + return +} + +nvm_alias() { + local ALIAS + ALIAS="${1-}" + if [ -z "${ALIAS}" ]; then + nvm_err 'An alias is required.' + return 1 + fi + + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="$(nvm_alias_path)" + + if [ "$(expr "${ALIAS}" : '^lts/-[1-9][0-9]*$')" -gt 0 ]; then + local N + N="$(echo "${ALIAS}" | cut -d '-' -f 2)" + local RESULT + RESULT="$(command ls "${NVM_ALIAS_DIR}/lts" | command tail -n "${N}" | command head -n 1)" + if [ "${RESULT}" != '*' ]; then + nvm_alias "lts/${RESULT}" + return $? + else + nvm_err 'That many LTS releases do not exist yet.' + return 2 + fi + fi + + local NVM_ALIAS_PATH + NVM_ALIAS_PATH="${NVM_ALIAS_DIR}/${ALIAS}" + if [ ! -f "${NVM_ALIAS_PATH}" ]; then + nvm_err 'Alias does not exist.' + return 2 + fi + + command cat "${NVM_ALIAS_PATH}" +} + +nvm_ls_current() { + local NVM_LS_CURRENT_NODE_PATH + if ! NVM_LS_CURRENT_NODE_PATH="$(command which node 2>/dev/null)"; then + nvm_echo 'none' + elif nvm_tree_contains_path "$(nvm_version_dir iojs)" "${NVM_LS_CURRENT_NODE_PATH}"; then + nvm_add_iojs_prefix "$(iojs --version 2>/dev/null)" + elif nvm_tree_contains_path "${NVM_DIR}" "${NVM_LS_CURRENT_NODE_PATH}"; then + local VERSION + VERSION="$(node --version 2>/dev/null)" + if [ "${VERSION}" = "v0.6.21-pre" ]; then + nvm_echo 'v0.6.21' + else + nvm_echo "${VERSION}" + fi + else + nvm_echo 'system' + fi +} + +nvm_resolve_alias() { + if [ -z "${1-}" ]; then + return 1 + fi + + local PATTERN + PATTERN="${1-}" + + local ALIAS + ALIAS="${PATTERN}" + local ALIAS_TEMP + + local SEEN_ALIASES + SEEN_ALIASES="${ALIAS}" + while true; do + ALIAS_TEMP="$(nvm_alias "${ALIAS}" 2>/dev/null || nvm_echo)" + + if [ -z "${ALIAS_TEMP}" ]; then + break + fi + + if command printf "${SEEN_ALIASES}" | nvm_grep -q -e "^${ALIAS_TEMP}$"; then + ALIAS="∞" + break + fi + + SEEN_ALIASES="${SEEN_ALIASES}\\n${ALIAS_TEMP}" + ALIAS="${ALIAS_TEMP}" + done + + if [ -n "${ALIAS}" ] && [ "_${ALIAS}" != "_${PATTERN}" ]; then + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + case "${ALIAS}" in + '∞' | \ + "${NVM_IOJS_PREFIX}" | "${NVM_IOJS_PREFIX}-" | \ + "${NVM_NODE_PREFIX}") + nvm_echo "${ALIAS}" + ;; + *) + nvm_ensure_version_prefix "${ALIAS}" + ;; + esac + return 0 + fi + + if nvm_validate_implicit_alias "${PATTERN}" 2>/dev/null; then + local IMPLICIT + IMPLICIT="$(nvm_print_implicit_alias local "${PATTERN}" 2>/dev/null)" + if [ -n "${IMPLICIT}" ]; then + nvm_ensure_version_prefix "${IMPLICIT}" + fi + fi + + return 2 +} + +nvm_resolve_local_alias() { + if [ -z "${1-}" ]; then + return 1 + fi + + local VERSION + local EXIT_CODE + VERSION="$(nvm_resolve_alias "${1-}")" + EXIT_CODE=$? + if [ -z "${VERSION}" ]; then + return $EXIT_CODE + fi + if [ "_${VERSION}" != '_∞' ]; then + nvm_version "${VERSION}" + else + nvm_echo "${VERSION}" + fi +} + +nvm_iojs_prefix() { + nvm_echo 'iojs' +} +nvm_node_prefix() { + nvm_echo 'node' +} + +nvm_is_iojs_version() { + case "${1-}" in iojs-*) return 0 ;; esac + return 1 +} + +nvm_add_iojs_prefix() { + nvm_echo "$(nvm_iojs_prefix)-$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "${1-}")")" +} + +nvm_strip_iojs_prefix() { + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + if [ "${1-}" = "${NVM_IOJS_PREFIX}" ]; then + nvm_echo + else + nvm_echo "${1#${NVM_IOJS_PREFIX}-}" + fi +} + +nvm_ls() { + local PATTERN + PATTERN="${1-}" + local VERSIONS + VERSIONS='' + if [ "${PATTERN}" = 'current' ]; then + nvm_ls_current + return + fi + + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + local NVM_VERSION_DIR_IOJS + NVM_VERSION_DIR_IOJS="$(nvm_version_dir "${NVM_IOJS_PREFIX}")" + local NVM_VERSION_DIR_NEW + NVM_VERSION_DIR_NEW="$(nvm_version_dir new)" + local NVM_VERSION_DIR_OLD + NVM_VERSION_DIR_OLD="$(nvm_version_dir old)" + + case "${PATTERN}" in + "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}") + PATTERN="${PATTERN}-" + ;; + *) + if nvm_resolve_local_alias "${PATTERN}"; then + return + fi + PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")" + ;; + esac + if [ "${PATTERN}" = 'N/A' ]; then + return + fi + # If it looks like an explicit version, don't do anything funny + local NVM_PATTERN_STARTS_WITH_V + case $PATTERN in + v*) NVM_PATTERN_STARTS_WITH_V=true ;; + *) NVM_PATTERN_STARTS_WITH_V=false ;; + esac + if [ $NVM_PATTERN_STARTS_WITH_V = true ] && [ "_$(nvm_num_version_groups "${PATTERN}")" = "_3" ]; then + if nvm_is_version_installed "${PATTERN}"; then + VERSIONS="${PATTERN}" + elif nvm_is_version_installed "$(nvm_add_iojs_prefix "${PATTERN}")"; then + VERSIONS="$(nvm_add_iojs_prefix "${PATTERN}")" + fi + else + case "${PATTERN}" in + "${NVM_IOJS_PREFIX}-" | "${NVM_NODE_PREFIX}-" | "system") ;; + *) + local NUM_VERSION_GROUPS + NUM_VERSION_GROUPS="$(nvm_num_version_groups "${PATTERN}")" + if [ "${NUM_VERSION_GROUPS}" = "2" ] || [ "${NUM_VERSION_GROUPS}" = "1" ]; then + PATTERN="${PATTERN%.}." + fi + ;; + esac + + nvm_is_zsh && setopt local_options shwordsplit + + local NVM_DIRS_TO_SEARCH1 + NVM_DIRS_TO_SEARCH1='' + local NVM_DIRS_TO_SEARCH2 + NVM_DIRS_TO_SEARCH2='' + local NVM_DIRS_TO_SEARCH3 + NVM_DIRS_TO_SEARCH3='' + local NVM_ADD_SYSTEM + NVM_ADD_SYSTEM=false + if nvm_is_iojs_version "${PATTERN}"; then + NVM_DIRS_TO_SEARCH1="${NVM_VERSION_DIR_IOJS}" + PATTERN="$(nvm_strip_iojs_prefix "${PATTERN}")" + if nvm_has_system_iojs; then + NVM_ADD_SYSTEM=true + fi + elif [ "${PATTERN}" = "${NVM_NODE_PREFIX}-" ]; then + NVM_DIRS_TO_SEARCH1="${NVM_VERSION_DIR_OLD}" + NVM_DIRS_TO_SEARCH2="${NVM_VERSION_DIR_NEW}" + PATTERN='' + if nvm_has_system_node; then + NVM_ADD_SYSTEM=true + fi + else + NVM_DIRS_TO_SEARCH1="${NVM_VERSION_DIR_OLD}" + NVM_DIRS_TO_SEARCH2="${NVM_VERSION_DIR_NEW}" + NVM_DIRS_TO_SEARCH3="${NVM_VERSION_DIR_IOJS}" + if nvm_has_system_iojs || nvm_has_system_node; then + NVM_ADD_SYSTEM=true + fi + fi + + if ! [ -d "${NVM_DIRS_TO_SEARCH1}" ] || ! (command ls -1qA "${NVM_DIRS_TO_SEARCH1}" | nvm_grep -q .); then + NVM_DIRS_TO_SEARCH1='' + fi + if ! [ -d "${NVM_DIRS_TO_SEARCH2}" ] || ! (command ls -1qA "${NVM_DIRS_TO_SEARCH2}" | nvm_grep -q .); then + NVM_DIRS_TO_SEARCH2="${NVM_DIRS_TO_SEARCH1}" + fi + if ! [ -d "${NVM_DIRS_TO_SEARCH3}" ] || ! (command ls -1qA "${NVM_DIRS_TO_SEARCH3}" | nvm_grep -q .); then + NVM_DIRS_TO_SEARCH3="${NVM_DIRS_TO_SEARCH2}" + fi + + local SEARCH_PATTERN + if [ -z "${PATTERN}" ]; then + PATTERN='v' + SEARCH_PATTERN='.*' + else + SEARCH_PATTERN="$(nvm_echo "${PATTERN}" | command sed 's#\.#\\\.#g;')" + fi + if [ -n "${NVM_DIRS_TO_SEARCH1}${NVM_DIRS_TO_SEARCH2}${NVM_DIRS_TO_SEARCH3}" ]; then + VERSIONS="$(command find "${NVM_DIRS_TO_SEARCH1}"/* "${NVM_DIRS_TO_SEARCH2}"/* "${NVM_DIRS_TO_SEARCH3}"/* -name . -o -type d -prune -o -path "${PATTERN}*" \ + | command sed -e " + s#${NVM_VERSION_DIR_IOJS}/#versions/${NVM_IOJS_PREFIX}/#; + s#^${NVM_DIR}/##; + \\#^[^v]# d; + \\#^versions\$# d; + s#^versions/##; + s#^v#${NVM_NODE_PREFIX}/v#; + \\#${SEARCH_PATTERN}# !d; + " \ + -e 's#^\([^/]\{1,\}\)/\(.*\)$#\2.\1#;' \ + | command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n \ + | command sed -e 's#\(.*\)\.\([^\.]\{1,\}\)$#\2-\1#;' \ + -e "s#^${NVM_NODE_PREFIX}-##;" \ + )" + fi + fi + + if [ "${NVM_ADD_SYSTEM-}" = true ]; then + if [ -z "${PATTERN}" ] || [ "${PATTERN}" = 'v' ]; then + VERSIONS="${VERSIONS}$(command printf '\n%s' 'system')" + elif [ "${PATTERN}" = 'system' ]; then + VERSIONS="$(command printf '%s' 'system')" + fi + fi + + if [ -z "${VERSIONS}" ]; then + nvm_echo 'N/A' + return 3 + fi + + nvm_echo "${VERSIONS}" +} + +nvm_ls_remote() { + local PATTERN + PATTERN="${1-}" + if nvm_validate_implicit_alias "${PATTERN}" 2>/dev/null ; then + local IMPLICIT + IMPLICIT="$(nvm_print_implicit_alias remote "${PATTERN}")" + if [ -z "${IMPLICIT-}" ] || [ "${IMPLICIT}" = 'N/A' ]; then + nvm_echo "N/A" + return 3 + fi + PATTERN="$(NVM_LTS="${NVM_LTS-}" nvm_ls_remote "${IMPLICIT}" | command tail -1 | command awk '{ print $1 }')" + elif [ -n "${PATTERN}" ]; then + PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")" + else + PATTERN=".*" + fi + NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab node std "${PATTERN}" +} + +nvm_ls_remote_iojs() { + NVM_LTS="${NVM_LTS-}" nvm_ls_remote_index_tab iojs std "${1-}" +} + +# args flavor, type, version +nvm_ls_remote_index_tab() { + local LTS + LTS="${NVM_LTS-}" + if [ "$#" -lt 3 ]; then + nvm_err 'not enough arguments' + return 5 + fi + + local FLAVOR + FLAVOR="${1-}" + + local TYPE + TYPE="${2-}" + + local MIRROR + MIRROR="$(nvm_get_mirror "${FLAVOR}" "${TYPE}")" + if [ -z "${MIRROR}" ]; then + return 3 + fi + + local PREFIX + PREFIX='' + case "${FLAVOR}-${TYPE}" in + iojs-std) PREFIX="$(nvm_iojs_prefix)-" ;; + node-std) PREFIX='' ;; + iojs-*) + nvm_err 'unknown type of io.js release' + return 4 + ;; + *) + nvm_err 'unknown type of node.js release' + return 4 + ;; + esac + local SORT_COMMAND + SORT_COMMAND='command sort' + case "${FLAVOR}" in + node) SORT_COMMAND='command sort -t. -u -k 1.2,1n -k 2,2n -k 3,3n' ;; + esac + + local PATTERN + PATTERN="${3-}" + + local VERSIONS + if [ -n "${PATTERN}" ] && [ "${PATTERN}" != '*' ]; then + if [ "${FLAVOR}" = 'iojs' ]; then + PATTERN="$(nvm_ensure_version_prefix "$(nvm_strip_iojs_prefix "${PATTERN}")")" + else + PATTERN="$(nvm_ensure_version_prefix "${PATTERN}")" + fi + else + unset PATTERN + fi + + nvm_is_zsh && setopt local_options shwordsplit + local VERSION_LIST + VERSION_LIST="$(nvm_download -L -s "${MIRROR}/index.tab" -o - \ + | command sed " + 1d; + s/^/${PREFIX}/; + " \ + )" + local LTS_ALIAS + local LTS_VERSION + command mkdir -p "$(nvm_alias_path)/lts" + nvm_echo "${VERSION_LIST}" \ + | command awk '{ + if ($10 ~ /^\-?$/) { next } + if ($10 && !a[tolower($10)]++) { + if (alias) { print alias, version } + alias_name = "lts/" tolower($10) + if (!alias) { print "lts/*", alias_name } + alias = alias_name + version = $1 + } + } + END { + if (alias) { + print alias, version + } + }' \ + | while read -r LTS_ALIAS_LINE; do + LTS_ALIAS="${LTS_ALIAS_LINE%% *}" + LTS_VERSION="${LTS_ALIAS_LINE#* }" + nvm_make_alias "${LTS_ALIAS}" "${LTS_VERSION}" >/dev/null 2>&1 + done + + VERSIONS="$({ command awk -v lts="${LTS-}" '{ + if (!$1) { next } + if (lts && $10 ~ /^\-?$/) { next } + if (lts && lts != "*" && tolower($10) !~ tolower(lts)) { next } + if ($10 !~ /^\-?$/) { + if ($10 && $10 != prev) { + print $1, $10, "*" + } else { + print $1, $10 + } + } else { + print $1 + } + prev=$10; + }' \ + | nvm_grep -w "${PATTERN:-.*}" \ + | $SORT_COMMAND; } << EOF +$VERSION_LIST +EOF +)" + if [ -z "${VERSIONS}" ]; then + nvm_echo 'N/A' + return 3 + fi + nvm_echo "${VERSIONS}" +} + +nvm_get_checksum_alg() { + if nvm_has_non_aliased "sha256sum"; then + nvm_echo 'sha-256' + elif nvm_has_non_aliased "shasum"; then + nvm_echo 'sha-256' + elif nvm_has_non_aliased "sha256"; then + nvm_echo 'sha-256' + elif nvm_has_non_aliased "gsha256sum"; then + nvm_echo 'sha-256' + elif nvm_has_non_aliased "openssl"; then + nvm_echo 'sha-256' + elif nvm_has_non_aliased "bssl"; then + nvm_echo 'sha-256' + elif nvm_has_non_aliased "sha1sum"; then + nvm_echo 'sha-1' + elif nvm_has_non_aliased "sha1"; then + nvm_echo 'sha-1' + elif nvm_has_non_aliased "shasum"; then + nvm_echo 'sha-1' + else + nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, or bssl not found.' + nvm_err 'Unaliased sha1sum, sha1, or shasum not found.' + return 1 + fi +} + +nvm_compute_checksum() { + local FILE + FILE="${1-}" + if [ -z "${FILE}" ]; then + nvm_err 'Provided file to checksum is empty.' + return 2 + elif ! [ -f "${FILE}" ]; then + nvm_err 'Provided file to checksum does not exist.' + return 1 + fi + + if nvm_has_non_aliased "sha256sum"; then + nvm_err 'Computing checksum with sha256sum' + command sha256sum "${FILE}" | command awk '{print $1}' + elif nvm_has_non_aliased "shasum"; then + nvm_err 'Computing checksum with shasum -a 256' + command shasum -a 256 "${FILE}" | command awk '{print $1}' + elif nvm_has_non_aliased "sha256"; then + nvm_err 'Computing checksum with sha256 -q' + command sha256 -q "${FILE}" | command awk '{print $1}' + elif nvm_has_non_aliased "gsha256sum"; then + nvm_err 'Computing checksum with gsha256sum' + command gsha256sum "${FILE}" | command awk '{print $1}' + elif nvm_has_non_aliased "openssl"; then + nvm_err 'Computing checksum with openssl dgst -sha256' + command openssl dgst -sha256 "${FILE}" | command awk '{print $NF}' + elif nvm_has_non_aliased "bssl"; then + nvm_err 'Computing checksum with bssl sha256sum' + command bssl sha256sum "${FILE}" | command awk '{print $1}' + elif nvm_has_non_aliased "sha1sum"; then + nvm_err 'Computing checksum with sha1sum' + command sha1sum "${FILE}" | command awk '{print $1}' + elif nvm_has_non_aliased "sha1"; then + nvm_err 'Computing checksum with sha1 -q' + command sha1 -q "${FILE}" + elif nvm_has_non_aliased "shasum"; then + nvm_err 'Computing checksum with shasum' + command shasum "${FILE}" | command awk '{print $1}' + fi +} + +nvm_compare_checksum() { + local FILE + FILE="${1-}" + if [ -z "${FILE}" ]; then + nvm_err 'Provided file to checksum is empty.' + return 4 + elif ! [ -f "${FILE}" ]; then + nvm_err 'Provided file to checksum does not exist.' + return 3 + fi + + local COMPUTED_SUM + COMPUTED_SUM="$(nvm_compute_checksum "${FILE}")" + + local CHECKSUM + CHECKSUM="${2-}" + if [ -z "${CHECKSUM}" ]; then + nvm_err 'Provided checksum to compare to is empty.' + return 2 + fi + + if [ -z "${COMPUTED_SUM}" ]; then + nvm_err "Computed checksum of '${FILE}' is empty." # missing in raspberry pi binary + nvm_err 'WARNING: Continuing *without checksum verification*' + return + elif [ "${COMPUTED_SUM}" != "${CHECKSUM}" ]; then + nvm_err "Checksums do not match: '${COMPUTED_SUM}' found, '${CHECKSUM}' expected." + return 1 + fi + nvm_err 'Checksums matched!' +} + +# args: flavor, type, version, slug, compression +nvm_get_checksum() { + local FLAVOR + case "${1-}" in + node | iojs) FLAVOR="${1}" ;; + *) + nvm_err 'supported flavors: node, iojs' + return 2 + ;; + esac + + local MIRROR + MIRROR="$(nvm_get_mirror "${FLAVOR}" "${2-}")" + if [ -z "${MIRROR}" ]; then + return 1 + fi + + local SHASUMS_URL + if [ "$(nvm_get_checksum_alg)" = 'sha-256' ]; then + SHASUMS_URL="${MIRROR}/${3}/SHASUMS256.txt" + else + SHASUMS_URL="${MIRROR}/${3}/SHASUMS.txt" + fi + + nvm_download -L -s "${SHASUMS_URL}" -o - | command awk "{ if (\"${4}.tar.${5}\" == \$2) print \$1}" +} + +nvm_checksum() { + local NVM_CHECKSUM + if [ -z "${3-}" ] || [ "${3-}" = 'sha1' ]; then + if nvm_has_non_aliased "sha1sum"; then + NVM_CHECKSUM="$(command sha1sum "${1-}" | command awk '{print $1}')" + elif nvm_has_non_aliased "sha1"; then + NVM_CHECKSUM="$(command sha1 -q "${1-}")" + elif nvm_has_non_aliased "shasum"; then + NVM_CHECKSUM="$(command shasum "${1-}" | command awk '{print $1}')" + else + nvm_err 'Unaliased sha1sum, sha1, or shasum not found.' + return 2 + fi + else + if nvm_has_non_aliased "sha256sum"; then + NVM_CHECKSUM="$(command sha256sum "${1-}" | command awk '{print $1}')" + elif nvm_has_non_aliased "shasum"; then + NVM_CHECKSUM="$(command shasum -a 256 "${1-}" | command awk '{print $1}')" + elif nvm_has_non_aliased "sha256"; then + NVM_CHECKSUM="$(command sha256 -q "${1-}" | command awk '{print $1}')" + elif nvm_has_non_aliased "gsha256sum"; then + NVM_CHECKSUM="$(command gsha256sum "${1-}" | command awk '{print $1}')" + elif nvm_has_non_aliased "openssl"; then + NVM_CHECKSUM="$(command openssl dgst -sha256 "${1-}" | command awk '{print $NF}')" + elif nvm_has_non_aliased "bssl"; then + NVM_CHECKSUM="$(command bssl sha256sum "${1-}" | command awk '{print $1}')" + else + nvm_err 'Unaliased sha256sum, shasum, sha256, gsha256sum, openssl, or bssl not found.' + nvm_err 'WARNING: Continuing *without checksum verification*' + return + fi + fi + + if [ "_${NVM_CHECKSUM}" = "_${2-}" ]; then + return + elif [ -z "${2-}" ]; then + nvm_echo 'Checksums empty' #missing in raspberry pi binary + return + fi + nvm_err 'Checksums do not match.' + return 1 +} + +nvm_print_versions() { + local VERSION + local LTS + local FORMAT + local NVM_CURRENT + NVM_CURRENT=$(nvm_ls_current) + local NVM_HAS_COLORS + if [ -z "${NVM_NO_COLORS-}" ] && nvm_has_colors; then + NVM_HAS_COLORS=1 + fi + local LTS_LENGTH + local LTS_FORMAT + nvm_echo "${1-}" \ + | command sed '1!G;h;$!d' \ + | command awk '{ if ($2 && $3 && $3 == "*") { print $1, "(Latest LTS: " $2 ")" } else if ($2) { print $1, "(LTS: " $2 ")" } else { print $1 } }' \ + | command sed '1!G;h;$!d' \ + | while read -r VERSION_LINE; do + VERSION="${VERSION_LINE%% *}" + LTS="${VERSION_LINE#* }" + FORMAT='%15s' + if [ "_${VERSION}" = "_${NVM_CURRENT}" ]; then + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + FORMAT='\033[0;32m-> %12s\033[0m' + else + FORMAT='-> %12s *' + fi + elif [ "${VERSION}" = "system" ]; then + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + FORMAT='\033[0;33m%15s\033[0m' + else + FORMAT='%15s *' + fi + elif nvm_is_version_installed "${VERSION}"; then + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + FORMAT='\033[0;34m%15s\033[0m' + else + FORMAT='%15s *' + fi + fi + if [ "${LTS}" != "${VERSION}" ]; then + case "${LTS}" in + *Latest*) + LTS="${LTS##Latest }" + LTS_LENGTH="${#LTS}" + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + LTS_FORMAT=" \\033[1;32m%${LTS_LENGTH}s\\033[0m" + else + LTS_FORMAT=" %${LTS_LENGTH}s" + fi + ;; + *) + LTS_LENGTH="${#LTS}" + if [ "${NVM_HAS_COLORS-}" = '1' ]; then + LTS_FORMAT=" \\033[0;37m%${LTS_LENGTH}s\\033[0m" + else + LTS_FORMAT=" %${LTS_LENGTH}s" + fi + ;; + esac + command printf -- "${FORMAT}${LTS_FORMAT}\\n" "${VERSION}" " ${LTS}" + else + command printf -- "${FORMAT}\\n" "${VERSION}" + fi + done +} + +nvm_validate_implicit_alias() { + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + + case "$1" in + "stable" | "unstable" | "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}") + return + ;; + *) + nvm_err "Only implicit aliases 'stable', 'unstable', '${NVM_IOJS_PREFIX}', and '${NVM_NODE_PREFIX}' are supported." + return 1 + ;; + esac +} + +nvm_print_implicit_alias() { + if [ "_$1" != "_local" ] && [ "_$1" != "_remote" ]; then + nvm_err "nvm_print_implicit_alias must be specified with local or remote as the first argument." + return 1 + fi + + local NVM_IMPLICIT + NVM_IMPLICIT="$2" + if ! nvm_validate_implicit_alias "${NVM_IMPLICIT}"; then + return 2 + fi + + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + local NVM_COMMAND + local NVM_ADD_PREFIX_COMMAND + local LAST_TWO + case "${NVM_IMPLICIT}" in + "${NVM_IOJS_PREFIX}") + NVM_COMMAND="nvm_ls_remote_iojs" + NVM_ADD_PREFIX_COMMAND="nvm_add_iojs_prefix" + if [ "_$1" = "_local" ]; then + NVM_COMMAND="nvm_ls ${NVM_IMPLICIT}" + fi + + nvm_is_zsh && setopt local_options shwordsplit + + local NVM_IOJS_VERSION + local EXIT_CODE + NVM_IOJS_VERSION="$(${NVM_COMMAND})" &&: + EXIT_CODE="$?" + if [ "_${EXIT_CODE}" = "_0" ]; then + NVM_IOJS_VERSION="$(nvm_echo "${NVM_IOJS_VERSION}" | command sed "s/^${NVM_IMPLICIT}-//" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq | command tail -1)" + fi + + if [ "_$NVM_IOJS_VERSION" = "_N/A" ]; then + nvm_echo 'N/A' + else + ${NVM_ADD_PREFIX_COMMAND} "${NVM_IOJS_VERSION}" + fi + return $EXIT_CODE + ;; + "${NVM_NODE_PREFIX}") + nvm_echo 'stable' + return + ;; + *) + NVM_COMMAND="nvm_ls_remote" + if [ "_$1" = "_local" ]; then + NVM_COMMAND="nvm_ls node" + fi + + nvm_is_zsh && setopt local_options shwordsplit + + LAST_TWO=$($NVM_COMMAND | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2 | uniq) + ;; + esac + local MINOR + local STABLE + local UNSTABLE + local MOD + local NORMALIZED_VERSION + + nvm_is_zsh && setopt local_options shwordsplit + for MINOR in $LAST_TWO; do + NORMALIZED_VERSION="$(nvm_normalize_version "$MINOR")" + if [ "_0${NORMALIZED_VERSION#?}" != "_$NORMALIZED_VERSION" ]; then + STABLE="$MINOR" + else + MOD="$(awk 'BEGIN { print int(ARGV[1] / 1000000) % 2 ; exit(0) }' "${NORMALIZED_VERSION}")" + if [ "${MOD}" -eq 0 ]; then + STABLE="${MINOR}" + elif [ "${MOD}" -eq 1 ]; then + UNSTABLE="${MINOR}" + fi + fi + done + + if [ "_$2" = '_stable' ]; then + nvm_echo "${STABLE}" + elif [ "_$2" = '_unstable' ]; then + nvm_echo "${UNSTABLE:-"N/A"}" + fi +} + +nvm_get_os() { + local NVM_UNAME + NVM_UNAME="$(command uname -a)" + local NVM_OS + case "${NVM_UNAME}" in + Linux\ *) NVM_OS=linux ;; + Darwin\ *) NVM_OS=darwin ;; + SunOS\ *) NVM_OS=sunos ;; + FreeBSD\ *) NVM_OS=freebsd ;; + AIX\ *) NVM_OS=aix ;; + esac + nvm_echo "${NVM_OS-}" +} + +nvm_get_arch() { + local HOST_ARCH + local NVM_OS + local EXIT_CODE + + NVM_OS="$(nvm_get_os)" + # If the OS is SunOS, first try to use pkgsrc to guess + # the most appropriate arch. If it's not available, use + # isainfo to get the instruction set supported by the + # kernel. + if [ "_${NVM_OS}" = "_sunos" ]; then + if HOST_ARCH=$(pkg_info -Q MACHINE_ARCH pkg_install); then + HOST_ARCH=$(nvm_echo "${HOST_ARCH}" | command tail -1) + else + HOST_ARCH=$(isainfo -n) + fi + elif [ "_${NVM_OS}" = "_aix" ]; then + HOST_ARCH=ppc64 + else + HOST_ARCH="$(command uname -m)" + fi + + local NVM_ARCH + case "${HOST_ARCH}" in + x86_64 | amd64) NVM_ARCH="x64" ;; + i*86) NVM_ARCH="x86" ;; + aarch64) NVM_ARCH="arm64" ;; + *) NVM_ARCH="${HOST_ARCH}" ;; + esac + nvm_echo "${NVM_ARCH}" +} + +nvm_get_minor_version() { + local VERSION + VERSION="$1" + + if [ -z "${VERSION}" ]; then + nvm_err 'a version is required' + return 1 + fi + + case "${VERSION}" in + v | .* | *..* | v*[!.0123456789]* | [!v]*[!.0123456789]* | [!v0123456789]* | v[!0123456789]*) + nvm_err 'invalid version number' + return 2 + ;; + esac + + local PREFIXED_VERSION + PREFIXED_VERSION="$(nvm_format_version "${VERSION}")" + + local MINOR + MINOR="$(nvm_echo "${PREFIXED_VERSION}" | nvm_grep -e '^v' | command cut -c2- | command cut -d . -f 1,2)" + if [ -z "${MINOR}" ]; then + nvm_err 'invalid version number! (please report this)' + return 3 + fi + nvm_echo "${MINOR}" +} + +nvm_ensure_default_set() { + local VERSION + VERSION="$1" + if [ -z "${VERSION}" ]; then + nvm_err 'nvm_ensure_default_set: a version is required' + return 1 + elif nvm_alias default >/dev/null 2>&1; then + # default already set + return 0 + fi + local OUTPUT + OUTPUT="$(nvm alias default "${VERSION}")" + local EXIT_CODE + EXIT_CODE="$?" + nvm_echo "Creating default alias: ${OUTPUT}" + return $EXIT_CODE +} + +nvm_is_merged_node_version() { + nvm_version_greater_than_or_equal_to "$1" v4.0.0 +} + +nvm_get_mirror() { + case "${1}-${2}" in + node-std) nvm_echo "${NVM_NODEJS_ORG_MIRROR:-https://nodejs.org/dist}" ;; + iojs-std) nvm_echo "${NVM_IOJS_ORG_MIRROR:-https://iojs.org/dist}" ;; + *) + nvm_err 'unknown type of node.js or io.js release' + return 1 + ;; + esac +} + +# args: flavor, type, version, reinstall +nvm_install_binary() { + local FLAVOR + case "${1-}" in + node | iojs) FLAVOR="${1}" ;; + *) + nvm_err 'supported flavors: node, iojs' + return 4 + ;; + esac + + local TYPE + TYPE="${2-}" + + local PREFIXED_VERSION + PREFIXED_VERSION="${3-}" + if [ -z "${PREFIXED_VERSION}" ]; then + nvm_err 'A version number is required.' + return 3 + fi + + local VERSION + VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")" + + if [ -z "$(nvm_get_os)" ]; then + return 2 + fi + + local tar_compression_flag + tar_compression_flag='z' + if nvm_supports_xz "${VERSION}"; then + tar_compression_flag='J' + fi + + local TARBALL + local TMPDIR + local VERSION_PATH + + local PROGRESS_BAR + local NODE_OR_IOJS + if [ "${FLAVOR}" = 'node' ]; then + NODE_OR_IOJS="${FLAVOR}" + elif [ "${FLAVOR}" = 'iojs' ]; then + NODE_OR_IOJS="io.js" + fi + if [ "${NVM_NO_PROGRESS-}" = "1" ]; then + # --silent, --show-error, use short option as @samrocketman mentions the compatibility issue. + PROGRESS_BAR="-sS" + else + PROGRESS_BAR="--progress-bar" + fi + nvm_echo "Downloading and installing ${NODE_OR_IOJS-} ${VERSION}..." + TARBALL="$(PROGRESS_BAR="${PROGRESS_BAR}" nvm_download_artifact "${FLAVOR}" binary "${TYPE-}" "${VERSION}" | command tail -1)" + if [ -f "${TARBALL}" ]; then + TMPDIR="$(dirname "${TARBALL}")/files" + fi + local tar + tar='tar' + if [ "${NVM_OS}" = 'aix' ]; then + tar='gtar' + fi + if ( + [ -n "${TMPDIR-}" ] && \ + command mkdir -p "${TMPDIR}" && \ + command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ + VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \ + command mkdir -p "${VERSION_PATH}" && \ + command mv "${TMPDIR}/"* "${VERSION_PATH}" && \ + command rm -rf "${TMPDIR}" + ); then + return 0 + fi + + nvm_err 'Binary download failed, trying source.' + if [ -n "${TMPDIR-}" ]; then + command rm -rf "${TMPDIR}" + fi + return 1 +} + +# args: flavor, kind, version +nvm_get_download_slug() { + local FLAVOR + case "${1-}" in + node | iojs) FLAVOR="${1}" ;; + *) + nvm_err 'supported flavors: node, iojs' + return 1 + ;; + esac + + local KIND + case "${2-}" in + binary | source) KIND="${2}" ;; + *) + nvm_err 'supported kinds: binary, source' + return 2 + ;; + esac + + local VERSION + VERSION="${3-}" + + local NVM_OS + NVM_OS="$(nvm_get_os)" + + local NVM_ARCH + NVM_ARCH="$(nvm_get_arch)" + if ! nvm_is_merged_node_version "${VERSION}"; then + if [ "${NVM_ARCH}" = 'armv6l' ] || [ "${NVM_ARCH}" = 'armv7l' ]; then + NVM_ARCH="arm-pi" + fi + fi + + if [ "${KIND}" = 'binary' ]; then + nvm_echo "${FLAVOR}-${VERSION}-${NVM_OS}-${NVM_ARCH}" + elif [ "${KIND}" = 'source' ]; then + nvm_echo "${FLAVOR}-${VERSION}" + fi +} + +# args: flavor, kind, type, version +nvm_download_artifact() { + local FLAVOR + case "${1-}" in + node | iojs) FLAVOR="${1}" ;; + *) + nvm_err 'supported flavors: node, iojs' + return 1 + ;; + esac + + local KIND + case "${2-}" in + binary | source) KIND="${2}" ;; + *) + nvm_err 'supported kinds: binary, source' + return 1 + ;; + esac + + local TYPE + TYPE="${3-}" + + local MIRROR + MIRROR="$(nvm_get_mirror "${FLAVOR}" "${TYPE}")" + if [ -z "${MIRROR}" ]; then + return 2 + fi + + local VERSION + VERSION="${4}" + + if [ -z "${VERSION}" ]; then + nvm_err 'A version number is required.' + return 3 + fi + + if [ "${KIND}" = 'binary' ] && ! nvm_binary_available "${VERSION}"; then + nvm_err "No precompiled binary available for ${VERSION}." + return + fi + + local SLUG + SLUG="$(nvm_get_download_slug "${FLAVOR}" "${KIND}" "${VERSION}")" + + local COMPRESSION + COMPRESSION='gz' + if nvm_supports_xz "${VERSION}"; then + COMPRESSION='xz' + fi + + local CHECKSUM + CHECKSUM="$(nvm_get_checksum "${FLAVOR}" "${TYPE}" "${VERSION}" "${SLUG}" "${COMPRESSION}")" + + local tmpdir + if [ "${KIND}" = 'binary' ]; then + tmpdir="$(nvm_cache_dir)/bin/${SLUG}" + else + tmpdir="$(nvm_cache_dir)/src/${SLUG}" + fi + command mkdir -p "${tmpdir}/files" || ( + nvm_err "creating directory ${tmpdir}/files failed" + return 3 + ) + + local TARBALL + TARBALL="${tmpdir}/${SLUG}.tar.${COMPRESSION}" + local TARBALL_URL + if nvm_version_greater_than_or_equal_to "${VERSION}" 0.1.14; then + TARBALL_URL="${MIRROR}/${VERSION}/${SLUG}.tar.${COMPRESSION}" + else + # node <= 0.1.13 does not have a directory + TARBALL_URL="${MIRROR}/${SLUG}.tar.${COMPRESSION}" + fi + + if [ -r "${TARBALL}" ]; then + nvm_err "Local cache found: $(nvm_sanitize_path "${TARBALL}")" + if nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" >/dev/null 2>&1; then + nvm_err "Checksums match! Using existing downloaded archive $(nvm_sanitize_path "${TARBALL}")" + nvm_echo "${TARBALL}" + return 0 + fi + nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" + nvm_err "Checksum check failed!" + nvm_err "Removing the broken local cache..." + command rm -rf "${TARBALL}" + fi + nvm_err "Downloading ${TARBALL_URL}..." + nvm_download -L -C - "${PROGRESS_BAR}" "${TARBALL_URL}" -o "${TARBALL}" || ( + command rm -rf "${TARBALL}" "${tmpdir}" + nvm_err "Binary download from ${TARBALL_URL} failed, trying source." + return 4 + ) + + if nvm_grep '404 Not Found' "${TARBALL}" >/dev/null; then + command rm -rf "${TARBALL}" "${tmpdir}" + nvm_err "HTTP 404 at URL ${TARBALL_URL}" + return 5 + fi + + nvm_compare_checksum "${TARBALL}" "${CHECKSUM}" || ( + command rm -rf "${tmpdir}/files" + return 6 + ) + + nvm_echo "${TARBALL}" +} + +nvm_get_make_jobs() { + if nvm_is_natural_num "${1-}"; then + NVM_MAKE_JOBS="$1" + nvm_echo "number of \`make\` jobs: ${NVM_MAKE_JOBS}" + return + elif [ -n "${1-}" ]; then + unset NVM_MAKE_JOBS + nvm_err "$1 is invalid for number of \`make\` jobs, must be a natural number" + fi + local NVM_OS + NVM_OS="$(nvm_get_os)" + local NVM_CPU_CORES + case "_${NVM_OS}" in + "_linux") + NVM_CPU_CORES="$(nvm_grep -c -E '^processor.+: [0-9]+' /proc/cpuinfo)" + ;; + "_freebsd" | "_darwin") + NVM_CPU_CORES="$(sysctl -n hw.ncpu)" + ;; + "_sunos") + NVM_CPU_CORES="$(psrinfo | wc -l)" + ;; + "_aix") + NVM_CPU_CORES="$(pmcycles -m | wc -l)" + ;; + esac + if ! nvm_is_natural_num "${NVM_CPU_CORES}"; then + nvm_err 'Can not determine how many core(s) are available, running in single-threaded mode.' + nvm_err 'Please report an issue on GitHub to help us make nvm run faster on your computer!' + NVM_MAKE_JOBS=1 + else + nvm_echo "Detected that you have ${NVM_CPU_CORES} CPU core(s)" + if [ "${NVM_CPU_CORES}" -gt 2 ]; then + NVM_MAKE_JOBS=$((NVM_CPU_CORES - 1)) + nvm_echo "Running with ${NVM_MAKE_JOBS} threads to speed up the build" + else + NVM_MAKE_JOBS=1 + nvm_echo 'Number of CPU core(s) less than or equal to 2, running in single-threaded mode' + fi + fi +} + +# args: flavor, type, version, make jobs, additional +nvm_install_source() { + local FLAVOR + case "${1-}" in + node | iojs) FLAVOR="${1}" ;; + *) + nvm_err 'supported flavors: node, iojs' + return 4 + ;; + esac + + local TYPE + TYPE="${2-}" + + local PREFIXED_VERSION + PREFIXED_VERSION="${3-}" + if [ -z "${PREFIXED_VERSION}" ]; then + nvm_err 'A version number is required.' + return 3 + fi + + local VERSION + VERSION="$(nvm_strip_iojs_prefix "${PREFIXED_VERSION}")" + + local NVM_MAKE_JOBS + NVM_MAKE_JOBS="${4-}" + + local ADDITIONAL_PARAMETERS + ADDITIONAL_PARAMETERS="${5-}" + + local NVM_ARCH + NVM_ARCH="$(nvm_get_arch)" + if [ "${NVM_ARCH}" = 'armv6l' ] || [ "${NVM_ARCH}" = 'armv7l' ]; then + if [ -n "${ADDITIONAL_PARAMETERS}" ]; then + ADDITIONAL_PARAMETERS="--without-snapshot ${ADDITIONAL_PARAMETERS}" + else + ADDITIONAL_PARAMETERS='--without-snapshot' + fi + fi + + if [ -n "${ADDITIONAL_PARAMETERS}" ]; then + nvm_echo "Additional options while compiling: ${ADDITIONAL_PARAMETERS}" + fi + + local NVM_OS + NVM_OS="$(nvm_get_os)" + + local make + make='make' + local MAKE_CXX + case "${NVM_OS}" in + 'freebsd') + make='gmake' + MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}" + ;; + 'darwin') + MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}" + ;; + 'aix') + make='gmake' + ;; + esac + if nvm_has "clang++" && nvm_has "clang" && nvm_version_greater_than_or_equal_to "$(nvm_clang_version)" 3.5; then + if [ -z "${CC-}" ] || [ -z "${CXX-}" ]; then + nvm_echo "Clang v3.5+ detected! CC or CXX not specified, will use Clang as C/C++ compiler!" + MAKE_CXX="CC=${CC:-cc} CXX=${CXX:-c++}" + fi + fi + + local tar_compression_flag + tar_compression_flag='z' + if nvm_supports_xz "${VERSION}"; then + tar_compression_flag='J' + fi + + local tar + tar='tar' + if [ "${NVM_OS}" = 'aix' ]; then + tar='gtar' + fi + + local TARBALL + local TMPDIR + local VERSION_PATH + + if [ "${NVM_NO_PROGRESS-}" = "1" ]; then + # --silent, --show-error, use short option as @samrocketman mentions the compatibility issue. + PROGRESS_BAR="-sS" + else + PROGRESS_BAR="--progress-bar" + fi + + nvm_is_zsh && setopt local_options shwordsplit + + TARBALL="$(PROGRESS_BAR="${PROGRESS_BAR}" nvm_download_artifact "${FLAVOR}" source "${TYPE}" "${VERSION}" | command tail -1)" && \ + [ -f "${TARBALL}" ] && \ + TMPDIR="$(dirname "${TARBALL}")/files" && \ + if ! ( + # shellcheck disable=SC2086 + command mkdir -p "${TMPDIR}" && \ + command "${tar}" -x${tar_compression_flag}f "${TARBALL}" -C "${TMPDIR}" --strip-components 1 && \ + VERSION_PATH="$(nvm_version_path "${PREFIXED_VERSION}")" && \ + nvm_cd "${TMPDIR}" && \ + nvm_echo '$>'./configure --prefix="${VERSION_PATH}" $ADDITIONAL_PARAMETERS'<' && \ + ./configure --prefix="${VERSION_PATH}" $ADDITIONAL_PARAMETERS && \ + $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} && \ + command rm -f "${VERSION_PATH}" 2>/dev/null && \ + $make -j "${NVM_MAKE_JOBS}" ${MAKE_CXX-} install + ); then + nvm_err "nvm: install ${VERSION} failed!" + command rm -rf "${TMPDIR-}" + return 1 + fi +} + +nvm_use_if_needed() { + if [ "_${1-}" = "_$(nvm_ls_current)" ]; then + return + fi + nvm use "$@" +} + +nvm_install_npm_if_needed() { + local VERSION + VERSION="$(nvm_ls_current)" + if ! nvm_has "npm"; then + nvm_echo 'Installing npm...' + if nvm_version_greater 0.2.0 "${VERSION}"; then + nvm_err 'npm requires node v0.2.3 or higher' + elif nvm_version_greater_than_or_equal_to "${VERSION}" 0.2.0; then + if nvm_version_greater 0.2.3 "${VERSION}"; then + nvm_err 'npm requires node v0.2.3 or higher' + else + nvm_download -L https://npmjs.org/install.sh -o - | clean=yes npm_install=0.2.19 sh + fi + else + nvm_download -L https://npmjs.org/install.sh -o - | clean=yes sh + fi + fi + return $? +} + +nvm_match_version() { + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local PROVIDED_VERSION + PROVIDED_VERSION="$1" + case "_${PROVIDED_VERSION}" in + "_${NVM_IOJS_PREFIX}" | '_io.js') + nvm_version "${NVM_IOJS_PREFIX}" + ;; + '_system') + nvm_echo 'system' + ;; + *) + nvm_version "${PROVIDED_VERSION}" + ;; + esac +} + +nvm_npm_global_modules() { + local NPMLIST + local VERSION + VERSION="$1" + NPMLIST=$(nvm use "${VERSION}" >/dev/null && npm list -g --depth=0 2>/dev/null | command sed 1,1d) + + local INSTALLS + INSTALLS=$(nvm_echo "${NPMLIST}" | command sed -e '/ -> / d' -e '/\(empty\)/ d' -e 's/^.* \(.*@[^ ]*\).*/\1/' -e '/^npm@[^ ]*.*$/ d' | command xargs) + + local LINKS + LINKS="$(nvm_echo "${NPMLIST}" | command sed -n 's/.* -> \(.*\)/\1/ p')" + + nvm_echo "${INSTALLS} //// ${LINKS}" +} + +nvm_die_on_prefix() { + local NVM_DELETE_PREFIX + NVM_DELETE_PREFIX="$1" + case "${NVM_DELETE_PREFIX}" in + 0 | 1) ;; + *) + nvm_err 'First argument "delete the prefix" must be zero or one' + return 1 + ;; + esac + local NVM_COMMAND + NVM_COMMAND="$2" + if [ -z "${NVM_COMMAND}" ]; then + nvm_err 'Second argument "nvm command" must be nonempty' + return 2 + fi + + # npm first looks at $PREFIX (case-sensitive) + # we do not bother to test the value here; if this env var is set, unset it to continue. + if [ -n "${PREFIX-}" ]; then + nvm deactivate >/dev/null 2>&1 + nvm_err "nvm is not compatible with the \"PREFIX\" environment variable: currently set to \"${PREFIX}\"" + nvm_err 'Run `unset PREFIX` to unset it.' + return 3 + fi + + # npm normalizes NPM_CONFIG_-prefixed env vars + # https://github.com/npm/npmconf/blob/22827e4038d6eebaafeb5c13ed2b92cf97b8fb82/npmconf.js#L331-L348 + # https://github.com/npm/npm/blob/5e426a78ca02d0044f8dd26e0c5f881217081cbd/lib/config/core.js#L343-L359 + # + # here, we avoid trying to replicate "which one wins" or testing the value; if any are defined, it errors + # until none are left. + local NVM_NPM_CONFIG_PREFIX_ENV + NVM_NPM_CONFIG_PREFIX_ENV="$(command env | nvm_grep -i NPM_CONFIG_PREFIX | command tail -1 | command awk -F '=' '{print $1}')" + if [ -n "${NVM_NPM_CONFIG_PREFIX_ENV-}" ]; then + local NVM_CONFIG_VALUE + eval "NVM_CONFIG_VALUE=\"\$${NVM_NPM_CONFIG_PREFIX_ENV}\"" + if [ -n "${NVM_CONFIG_VALUE-}" ] && ! nvm_tree_contains_path "${NVM_DIR}" "${NVM_CONFIG_VALUE}"; then + nvm deactivate >/dev/null 2>&1 + nvm_err "nvm is not compatible with the \"${NVM_NPM_CONFIG_PREFIX_ENV}\" environment variable: currently set to \"${NVM_CONFIG_VALUE}\"" + nvm_err "Run \`unset ${NVM_NPM_CONFIG_PREFIX_ENV}\` to unset it." + return 4 + fi + fi + + if ! nvm_has 'npm'; then + return + fi + + local NVM_NPM_PREFIX + NVM_NPM_PREFIX="$(npm config --loglevel=warn get prefix)" + if ! (nvm_tree_contains_path "${NVM_DIR}" "${NVM_NPM_PREFIX}" >/dev/null 2>&1); then + if [ "_${NVM_DELETE_PREFIX}" = "_1" ]; then + npm config --loglevel=warn delete prefix + else + nvm deactivate >/dev/null 2>&1 + nvm_err "nvm is not compatible with the npm config \"prefix\" option: currently set to \"${NVM_NPM_PREFIX}\"" + if nvm_has 'npm'; then + nvm_err "Run \`npm config delete prefix\` or \`${NVM_COMMAND}\` to unset it." + else + nvm_err "Run \`${NVM_COMMAND}\` to unset it." + fi + return 10 + fi + fi +} + +# Succeeds if $IOJS_VERSION represents an io.js version that has a +# Solaris binary, fails otherwise. +# Currently, only io.js 3.3.1 has a Solaris binary available, and it's the +# latest io.js version available. The expectation is that any potential io.js +# version later than v3.3.1 will also have Solaris binaries. +iojs_version_has_solaris_binary() { + local IOJS_VERSION + IOJS_VERSION="$1" + local STRIPPED_IOJS_VERSION + STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix "${IOJS_VERSION}")" + if [ "_${STRIPPED_IOJS_VERSION}" = "${IOJS_VERSION}" ]; then + return 1 + fi + + # io.js started shipping Solaris binaries with io.js v3.3.1 + nvm_version_greater_than_or_equal_to "${STRIPPED_IOJS_VERSION}" v3.3.1 +} + +# Succeeds if $NODE_VERSION represents a node version that has a +# Solaris binary, fails otherwise. +# Currently, node versions starting from v0.8.6 have a Solaris binary +# available. +node_version_has_solaris_binary() { + local NODE_VERSION + NODE_VERSION="$1" + # Error out if $NODE_VERSION is actually an io.js version + local STRIPPED_IOJS_VERSION + STRIPPED_IOJS_VERSION="$(nvm_strip_iojs_prefix "${NODE_VERSION}")" + if [ "_${STRIPPED_IOJS_VERSION}" != "_${NODE_VERSION}" ]; then + return 1 + fi + + # node (unmerged) started shipping Solaris binaries with v0.8.6 and + # node versions v1.0.0 or greater are not considered valid "unmerged" node + # versions. + nvm_version_greater_than_or_equal_to "${NODE_VERSION}" v0.8.6 \ + && ! nvm_version_greater_than_or_equal_to "${NODE_VERSION}" v1.0.0 +} + +# Succeeds if $VERSION represents a version (node, io.js or merged) that has a +# Solaris binary, fails otherwise. +nvm_has_solaris_binary() { + local VERSION=$1 + if nvm_is_merged_node_version "${VERSION}"; then + return 0 # All merged node versions have a Solaris binary + elif nvm_is_iojs_version "${VERSION}"; then + iojs_version_has_solaris_binary "${VERSION}" + else + node_version_has_solaris_binary "${VERSION}" + fi +} + +nvm_sanitize_path() { + local SANITIZED_PATH + SANITIZED_PATH="${1-}" + if [ "_${SANITIZED_PATH}" != "_${NVM_DIR}" ]; then + SANITIZED_PATH="$(nvm_echo "${SANITIZED_PATH}" | command sed -e "s#${NVM_DIR}#\${NVM_DIR}#g")" + fi + if [ "_${SANITIZED_PATH}" != "_${HOME}" ]; then + SANITIZED_PATH="$(nvm_echo "${SANITIZED_PATH}" | command sed -e "s#${HOME}#\${HOME}#g")" + fi + nvm_echo "${SANITIZED_PATH}" +} + +nvm_is_natural_num() { + if [ -z "$1" ]; then + return 4 + fi + case "$1" in + 0) return 1 ;; + -*) return 3 ;; # some BSDs return false positives for double-negated args + *) + [ "$1" -eq "$1" ] 2>/dev/null # returns 2 if it doesn't match + ;; + esac +} + +# Check version dir permissions +nvm_check_file_permissions() { + nvm_is_zsh && setopt local_options nonomatch + for FILE in "$1"/* "$1"/.[!.]* "$1"/..?* ; do + if [ -d "$FILE" ]; then + if [ -n "${NVM_DEBUG-}" ]; then + nvm_err "${FILE}" + fi + if ! nvm_check_file_permissions "${FILE}"; then + return 2 + fi + elif [ -e "$FILE" ] && [ ! -w "$FILE" ] && [ ! -O "$FILE" ]; then + nvm_err "file is not writable or self-owned: $(nvm_sanitize_path "$FILE")" + return 1 + fi + done + return 0 +} + +nvm_cache_dir() { + nvm_echo "${NVM_DIR}/.cache" +} + +nvm() { + if [ $# -lt 1 ]; then + nvm --help + return + fi + + local DEFAULT_IFS + DEFAULT_IFS=" $(nvm_echo t | command tr t \\t) +" + if [ "${-#*e}" != "$-" ]; then + set +e + local EXIT_CODE + IFS="${DEFAULT_IFS}" nvm "$@" + EXIT_CODE=$? + set -e + return $EXIT_CODE + elif [ "${IFS}" != "${DEFAULT_IFS}" ]; then + IFS="${DEFAULT_IFS}" nvm "$@" + return $? + fi + + local COMMAND + COMMAND="${1-}" + shift + + # initialize local variables + local VERSION + local ADDITIONAL_PARAMETERS + + case $COMMAND in + 'help' | '--help') + local NVM_IOJS_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + local NVM_NODE_PREFIX + NVM_NODE_PREFIX="$(nvm_node_prefix)" + NVM_VERSION="$(nvm --version)" + nvm_echo + nvm_echo "Node Version Manager (v${NVM_VERSION})" + nvm_echo + nvm_echo 'Note: refers to any version-like string nvm understands. This includes:' + nvm_echo ' - full or partial version numbers, starting with an optional "v" (0.10, v0.1.2, v1)' + nvm_echo " - default (built-in) aliases: ${NVM_NODE_PREFIX}, stable, unstable, ${NVM_IOJS_PREFIX}, system" + nvm_echo ' - custom aliases you define with `nvm alias foo`' + nvm_echo + nvm_echo ' Any options that produce colorized output should respect the `--no-colors` option.' + nvm_echo + nvm_echo 'Usage:' + nvm_echo ' nvm --help Show this message' + nvm_echo ' nvm --version Print out the installed version of nvm' + nvm_echo ' nvm install [-s] Download and install a , [-s] from source. Uses .nvmrc if available' + nvm_echo ' --reinstall-packages-from= When installing, reinstall packages installed in ' + nvm_echo ' --lts When installing, only select from LTS (long-term support) versions' + nvm_echo ' --lts= When installing, only select from versions for a specific LTS line' + nvm_echo ' --skip-default-packages When installing, skip the default-packages file if it exists' + nvm_echo ' --latest-npm After installing, attempt to upgrade to the latest working npm on the given node version' + nvm_echo ' --no-progress Disable the progress bar on any downloads' + nvm_echo ' nvm uninstall Uninstall a version' + nvm_echo ' nvm uninstall --lts Uninstall using automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' nvm uninstall --lts= Uninstall using automatic alias for provided LTS line, if available.' + nvm_echo ' nvm use [--silent] Modify PATH to use . Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' + nvm_echo ' nvm exec [--silent] [] Run on . Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' + nvm_echo ' nvm run [--silent] [] Run `node` on with as arguments. Uses .nvmrc if available' + nvm_echo ' --lts Uses automatic LTS (long-term support) alias `lts/*`, if available.' + nvm_echo ' --lts= Uses automatic alias for provided LTS line, if available.' + nvm_echo ' nvm current Display currently activated version of Node' + nvm_echo ' nvm ls [] List installed versions, matching a given if provided' + nvm_echo ' --no-colors Suppress colored output' + nvm_echo ' --no-alias Suppress `nvm alias` output' + nvm_echo ' nvm ls-remote [] List remote versions available for install, matching a given if provided' + nvm_echo ' --lts When listing, only show LTS (long-term support) versions' + nvm_echo ' --lts= When listing, only show versions for a specific LTS line' + nvm_echo ' --no-colors Suppress colored output' + nvm_echo ' nvm version Resolve the given description to a single local version' + nvm_echo ' nvm version-remote Resolve the given description to a single remote version' + nvm_echo ' --lts When listing, only select from LTS (long-term support) versions' + nvm_echo ' --lts= When listing, only select from versions for a specific LTS line' + nvm_echo ' nvm deactivate Undo effects of `nvm` on current shell' + nvm_echo ' nvm alias [] Show all aliases beginning with ' + nvm_echo ' --no-colors Suppress colored output' + nvm_echo ' nvm alias Set an alias named pointing to ' + nvm_echo ' nvm unalias Deletes the alias named ' + nvm_echo ' nvm install-latest-npm Attempt to upgrade to the latest working `npm` on the current node version' + nvm_echo ' nvm reinstall-packages Reinstall global `npm` packages contained in to current version' + nvm_echo ' nvm unload Unload `nvm` from shell' + nvm_echo ' nvm which [current | ] Display path to installed node version. Uses .nvmrc if available' + nvm_echo ' nvm cache dir Display path to the cache directory for nvm' + nvm_echo ' nvm cache clear Empty cache directory for nvm' + nvm_echo + nvm_echo 'Example:' + nvm_echo ' nvm install 8.0.0 Install a specific version number' + nvm_echo ' nvm use 8.0 Use the latest available 8.0.x release' + nvm_echo ' nvm run 6.10.3 app.js Run app.js using node 6.10.3' + nvm_echo ' nvm exec 4.8.3 node app.js Run `node app.js` with the PATH pointing to node 4.8.3' + nvm_echo ' nvm alias default 8.1.0 Set default node version on a shell' + nvm_echo ' nvm alias default node Always default to the latest available node version on a shell' + nvm_echo + nvm_echo 'Note:' + nvm_echo ' to remove, delete, or uninstall nvm - just remove the `$NVM_DIR` folder (usually `~/.nvm`)' + nvm_echo + ;; + + "cache") + case "${1-}" in + dir) nvm_cache_dir ;; + clear) + local DIR + DIR="$(nvm_cache_dir)" + if command rm -rf "${DIR}" && command mkdir -p "${DIR}"; then + nvm_echo 'nvm cache cleared.' + else + nvm_err "Unable to clear nvm cache: ${DIR}" + return 1 + fi + ;; + *) + >&2 nvm --help + return 127 + ;; + esac + ;; + + "debug") + local OS_VERSION + nvm_is_zsh && setopt local_options shwordsplit + nvm_err "nvm --version: v$(nvm --version)" + if [ -n "${TERM_PROGRAM-}" ]; then + nvm_err "\$TERM_PROGRAM: ${TERM_PROGRAM}" + fi + nvm_err "\$SHELL: ${SHELL}" + # shellcheck disable=SC2169 + nvm_err "\$SHLVL: ${SHLVL-}" + nvm_err "\${HOME}: ${HOME}" + nvm_err "\${NVM_DIR}: '$(nvm_sanitize_path "${NVM_DIR}")'" + nvm_err "\${PATH}: $(nvm_sanitize_path "${PATH}")" + nvm_err "\$PREFIX: '$(nvm_sanitize_path "${PREFIX}")'" + nvm_err "\${NPM_CONFIG_PREFIX}: '$(nvm_sanitize_path "${NPM_CONFIG_PREFIX}")'" + nvm_err "\$NVM_NODEJS_ORG_MIRROR: '${NVM_NODEJS_ORG_MIRROR}'" + nvm_err "\$NVM_IOJS_ORG_MIRROR: '${NVM_IOJS_ORG_MIRROR}'" + nvm_err "shell version: '$(${SHELL} --version | command head -n 1)'" + nvm_err "uname -a: '$(command uname -a | command awk '{$2=""; print}' | command xargs)'" + if [ "$(nvm_get_os)" = "darwin" ] && nvm_has sw_vers; then + OS_VERSION="$(sw_vers | command awk '{print $2}' | command xargs)" + elif [ -r "/etc/issue" ]; then + OS_VERSION="$(command head -n 1 /etc/issue | command sed 's/\\.//g')" + if [ -z "${OS_VERSION}" ] && [ -r "/etc/os-release" ]; then + # shellcheck disable=SC1091 + OS_VERSION="$(. /etc/os-release && echo "${NAME}" "${VERSION}")" + fi + fi + if [ -n "${OS_VERSION}" ]; then + nvm_err "OS version: ${OS_VERSION}" + fi + if nvm_has "curl"; then + nvm_err "curl: $(nvm_command_info curl), $(command curl -V | command head -n 1)" + else + nvm_err "curl: not found" + fi + if nvm_has "wget"; then + nvm_err "wget: $(nvm_command_info wget), $(command wget -V | command head -n 1)" + else + nvm_err "wget: not found" + fi + + local TEST_TOOLS ADD_TEST_TOOLS + TEST_TOOLS="git grep awk" + ADD_TEST_TOOLS="sed cut basename rm mkdir xargs" + if [ "darwin" != "$(nvm_get_os)" ] && [ "freebsd" != "$(nvm_get_os)" ]; then + TEST_TOOLS="${TEST_TOOLS} ${ADD_TEST_TOOLS}" + else + for tool in ${ADD_TEST_TOOLS} ; do + if nvm_has "${tool}"; then + nvm_err "${tool}: $(nvm_command_info "${tool}")" + else + nvm_err "${tool}: not found" + fi + done + fi + for tool in ${TEST_TOOLS} ; do + local NVM_TOOL_VERSION + if nvm_has "${tool}"; then + if command ls -l "$(nvm_command_info "${tool}" | command awk '{print $1}')" | command grep -q busybox; then + NVM_TOOL_VERSION="$(command "${tool}" --help 2>&1 | command head -n 1)" + else + NVM_TOOL_VERSION="$(command "${tool}" --version 2>&1 | command head -n 1)" + fi + nvm_err "${tool}: $(nvm_command_info "${tool}"), ${NVM_TOOL_VERSION}" + else + nvm_err "${tool}: not found" + fi + unset NVM_TOOL_VERSION + done + unset TEST_TOOLS ADD_TEST_TOOLS + + local NVM_DEBUG_OUTPUT + for NVM_DEBUG_COMMAND in 'nvm current' 'which node' 'which iojs' 'which npm' 'npm config get prefix' 'npm root -g'; do + NVM_DEBUG_OUTPUT="$(${NVM_DEBUG_COMMAND} 2>&1)" + nvm_err "${NVM_DEBUG_COMMAND}: $(nvm_sanitize_path "${NVM_DEBUG_OUTPUT}")" + done + return 42 + ;; + + "install" | "i") + local version_not_provided + version_not_provided=0 + local NVM_OS + NVM_OS="$(nvm_get_os)" + + if ! nvm_has "curl" && ! nvm_has "wget"; then + nvm_err 'nvm needs curl or wget to proceed.' + return 1 + fi + + if [ $# -lt 1 ]; then + version_not_provided=1 + fi + + local nobinary + local noprogress + nobinary=0 + noprogress=0 + local LTS + local NVM_UPGRADE_NPM + NVM_UPGRADE_NPM=0 + while [ $# -ne 0 ]; do + case "$1" in + ---*) + nvm_err 'arguments with `---` are not supported - this is likely a typo' + return 55; + ;; + -s) + shift # consume "-s" + nobinary=1 + ;; + -j) + shift # consume "-j" + nvm_get_make_jobs "$1" + shift # consume job count + ;; + --no-progress) + noprogress=1 + shift + ;; + --lts) + LTS='*' + shift + ;; + --lts=*) + LTS="${1##--lts=}" + shift + ;; + --latest-npm) + NVM_UPGRADE_NPM=1 + shift + ;; + *) + break # stop parsing args + ;; + esac + done + + local provided_version + provided_version="${1-}" + + if [ -z "${provided_version}" ]; then + if [ "_${LTS-}" = '_*' ]; then + nvm_echo 'Installing latest LTS version.' + if [ $# -gt 0 ]; then + shift + fi + elif [ "_${LTS-}" != '_' ]; then + nvm_echo "Installing with latest version of LTS line: ${LTS}" + if [ $# -gt 0 ]; then + shift + fi + else + nvm_rc_version + if [ $version_not_provided -eq 1 ] && [ -z "${NVM_RC_VERSION}" ]; then + unset NVM_RC_VERSION + >&2 nvm --help + return 127 + fi + provided_version="${NVM_RC_VERSION}" + unset NVM_RC_VERSION + fi + elif [ $# -gt 0 ]; then + shift + fi + + case "${provided_version}" in + 'lts/*') + LTS='*' + provided_version='' + ;; + lts/*) + LTS="${provided_version##lts/}" + provided_version='' + ;; + esac + + VERSION="$(NVM_VERSION_ONLY=true NVM_LTS="${LTS-}" nvm_remote_version "${provided_version}")" + + if [ "${VERSION}" = 'N/A' ]; then + local LTS_MSG + local REMOTE_CMD + if [ "${LTS-}" = '*' ]; then + LTS_MSG='(with LTS filter) ' + REMOTE_CMD='nvm ls-remote --lts' + elif [ -n "${LTS-}" ]; then + LTS_MSG="(with LTS filter '${LTS}') " + REMOTE_CMD="nvm ls-remote --lts=${LTS}" + else + REMOTE_CMD='nvm ls-remote' + fi + nvm_err "Version '${provided_version}' ${LTS_MSG-}not found - try \`${REMOTE_CMD}\` to browse available versions." + return 3 + fi + + ADDITIONAL_PARAMETERS='' + local PROVIDED_REINSTALL_PACKAGES_FROM + local REINSTALL_PACKAGES_FROM + local SKIP_DEFAULT_PACKAGES + local DEFAULT_PACKAGES + + while [ $# -ne 0 ]; do + case "$1" in + --reinstall-packages-from=*) + PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 27-)" + if [ -z "${PROVIDED_REINSTALL_PACKAGES_FROM}" ]; then + nvm_err 'If --reinstall-packages-from is provided, it must point to an installed version of node.' + return 6 + fi + REINSTALL_PACKAGES_FROM="$(nvm_version "${PROVIDED_REINSTALL_PACKAGES_FROM}")" ||: + ;; + --reinstall-packages-from) + nvm_err 'If --reinstall-packages-from is provided, it must point to an installed version of node using `=`.' + return 6 + ;; + --copy-packages-from=*) + PROVIDED_REINSTALL_PACKAGES_FROM="$(nvm_echo "$1" | command cut -c 22-)" + REINSTALL_PACKAGES_FROM="$(nvm_version "${PROVIDED_REINSTALL_PACKAGES_FROM}")" ||: + ;; + --skip-default-packages) + SKIP_DEFAULT_PACKAGES=true + ;; + *) + ADDITIONAL_PARAMETERS="${ADDITIONAL_PARAMETERS} $1" + ;; + esac + shift + done + + if [ -z "${SKIP_DEFAULT_PACKAGES-}" ]; then + DEFAULT_PACKAGES="$(nvm_get_default_packages)" + EXIT_CODE=$? + if [ $EXIT_CODE -ne 0 ]; then + return $EXIT_CODE + fi + fi + + if [ -n "${PROVIDED_REINSTALL_PACKAGES_FROM-}" ] && [ "$(nvm_ensure_version_prefix "${PROVIDED_REINSTALL_PACKAGES_FROM}")" = "${VERSION}" ]; then + nvm_err "You can't reinstall global packages from the same version of node you're installing." + return 4 + elif [ "${REINSTALL_PACKAGES_FROM-}" = 'N/A' ]; then + nvm_err "If --reinstall-packages-from is provided, it must point to an installed version of node." + return 5 + fi + + local FLAVOR + if nvm_is_iojs_version "${VERSION}"; then + FLAVOR="$(nvm_iojs_prefix)" + else + FLAVOR="$(nvm_node_prefix)" + fi + + if nvm_is_version_installed "${VERSION}"; then + nvm_err "${VERSION} is already installed." + if nvm use "${VERSION}"; then + if [ "${NVM_UPGRADE_NPM}" = 1 ]; then + nvm install-latest-npm + fi + if [ -z "${SKIP_DEFAULT_PACKAGES-}" ] && [ -n "${DEFAULT_PACKAGES-}" ]; then + nvm_install_default_packages "${DEFAULT_PACKAGES}" + fi + if [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_${REINSTALL_PACKAGES_FROM}" != "_N/A" ]; then + nvm reinstall-packages "${REINSTALL_PACKAGES_FROM}" + fi + fi + if [ -n "${LTS-}" ]; then + LTS="$(echo "${LTS}" | tr '[:upper:]' '[:lower:]')" + nvm_ensure_default_set "lts/${LTS}" + else + nvm_ensure_default_set "${provided_version}" + fi + return $? + fi + + local EXIT_CODE + EXIT_CODE=-1 + if [ -n "${NVM_INSTALL_THIRD_PARTY_HOOK-}" ]; then + nvm_err '** $NVM_INSTALL_THIRD_PARTY_HOOK env var set; dispatching to third-party installation method **' + local NVM_METHOD_PREFERENCE + NVM_METHOD_PREFERENCE='binary' + if [ $nobinary -eq 1 ]; then + NVM_METHOD_PREFERENCE='source' + fi + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "${VERSION}")" + "${NVM_INSTALL_THIRD_PARTY_HOOK}" "${VERSION}" "${FLAVOR}" std "${NVM_METHOD_PREFERENCE}" "${VERSION_PATH}" || { + EXIT_CODE=$? + nvm_err '*** Third-party $NVM_INSTALL_THIRD_PARTY_HOOK env var failed to install! ***' + return $EXIT_CODE + } + if ! nvm_is_version_installed "${VERSION}"; then + nvm_err '*** Third-party $NVM_INSTALL_THIRD_PARTY_HOOK env var claimed to succeed, but failed to install! ***' + return 33 + fi + EXIT_CODE=0 + else + + if [ "_${NVM_OS}" = "_freebsd" ]; then + # node.js and io.js do not have a FreeBSD binary + nobinary=1 + nvm_err "Currently, there is no binary for FreeBSD" + elif [ "_${NVM_OS}" = "_sunos" ]; then + # Not all node/io.js versions have a Solaris binary + if ! nvm_has_solaris_binary "${VERSION}"; then + nobinary=1 + nvm_err "Currently, there is no binary of version ${VERSION} for SunOS" + fi + fi + + # skip binary install if "nobinary" option specified. + if [ $nobinary -ne 1 ] && nvm_binary_available "${VERSION}"; then + NVM_NO_PROGRESS="${NVM_NO_PROGRESS:-${noprogress}}" nvm_install_binary "${FLAVOR}" std "${VERSION}" + EXIT_CODE=$? + fi + if [ $EXIT_CODE -ne 0 ]; then + if [ -z "${NVM_MAKE_JOBS-}" ]; then + nvm_get_make_jobs + fi + + NVM_NO_PROGRESS="${NVM_NO_PROGRESS:-${noprogress}}" nvm_install_source "${FLAVOR}" std "${VERSION}" "${NVM_MAKE_JOBS}" "${ADDITIONAL_PARAMETERS}" + EXIT_CODE=$? + fi + + fi + + if [ $EXIT_CODE -eq 0 ] && nvm_use_if_needed "${VERSION}" && nvm_install_npm_if_needed "${VERSION}"; then + if [ -n "${LTS-}" ]; then + nvm_ensure_default_set "lts/${LTS}" + else + nvm_ensure_default_set "${provided_version}" + fi + if [ "${NVM_UPGRADE_NPM}" = 1 ]; then + nvm install-latest-npm + EXIT_CODE=$? + fi + if [ -z "${SKIP_DEFAULT_PACKAGES-}" ] && [ -n "${DEFAULT_PACKAGES-}" ]; then + nvm_install_default_packages "${DEFAULT_PACKAGES}" + fi + if [ -n "${REINSTALL_PACKAGES_FROM-}" ] && [ "_${REINSTALL_PACKAGES_FROM}" != "_N/A" ]; then + nvm reinstall-packages "${REINSTALL_PACKAGES_FROM}" + EXIT_CODE=$? + fi + else + EXIT_CODE=$? + fi + return $EXIT_CODE + ;; + "uninstall") + if [ $# -ne 1 ]; then + >&2 nvm --help + return 127 + fi + + local PATTERN + PATTERN="${1-}" + case "${PATTERN-}" in + --) ;; + --lts | 'lts/*') + VERSION="$(nvm_match_version "lts/*")" + ;; + lts/*) + VERSION="$(nvm_match_version "lts/${PATTERN##lts/}")" + ;; + --lts=*) + VERSION="$(nvm_match_version "lts/${PATTERN##--lts=}")" + ;; + *) + VERSION="$(nvm_version "${PATTERN}")" + ;; + esac + + if [ "_${VERSION}" = "_$(nvm_ls_current)" ]; then + if nvm_is_iojs_version "${VERSION}"; then + nvm_err "nvm: Cannot uninstall currently-active io.js version, ${VERSION} (inferred from ${PATTERN})." + else + nvm_err "nvm: Cannot uninstall currently-active node version, ${VERSION} (inferred from ${PATTERN})." + fi + return 1 + fi + + if ! nvm_is_version_installed "${VERSION}"; then + nvm_err "${VERSION} version is not installed..." + return + fi + + local SLUG_BINARY + local SLUG_SOURCE + if nvm_is_iojs_version "${VERSION}"; then + SLUG_BINARY="$(nvm_get_download_slug iojs binary std "${VERSION}")" + SLUG_SOURCE="$(nvm_get_download_slug iojs source std "${VERSION}")" + else + SLUG_BINARY="$(nvm_get_download_slug node binary std "${VERSION}")" + SLUG_SOURCE="$(nvm_get_download_slug node source std "${VERSION}")" + fi + + local NVM_SUCCESS_MSG + if nvm_is_iojs_version "${VERSION}"; then + NVM_SUCCESS_MSG="Uninstalled io.js $(nvm_strip_iojs_prefix "${VERSION}")" + else + NVM_SUCCESS_MSG="Uninstalled node ${VERSION}" + fi + + local VERSION_PATH + VERSION_PATH="$(nvm_version_path "${VERSION}")" + if ! nvm_check_file_permissions "${VERSION_PATH}"; then + nvm_err 'Cannot uninstall, incorrect permissions on installation folder.' + nvm_err 'This is usually caused by running `npm install -g` as root. Run the following commands as root to fix the permissions and then try again.' + nvm_err + nvm_err " chown -R $(whoami) \"$(nvm_sanitize_path "${VERSION_PATH}")\"" + nvm_err " chmod -R u+w \"$(nvm_sanitize_path "${VERSION_PATH}")\"" + return 1 + fi + + # Delete all files related to target version. + local CACHE_DIR + CACHE_DIR="$(nvm_cache_dir)" + command rm -rf \ + "${CACHE_DIR}/bin/${SLUG_BINARY}/files" \ + "${CACHE_DIR}/src/${SLUG_SOURCE}/files" \ + "${VERSION_PATH}" 2>/dev/null + nvm_echo "${NVM_SUCCESS_MSG}" + + # rm any aliases that point to uninstalled version. + for ALIAS in $(nvm_grep -l "${VERSION}" "$(nvm_alias_path)/*" 2>/dev/null); do + nvm unalias "$(command basename "${ALIAS}")" + done + ;; + "deactivate") + local NEWPATH + NEWPATH="$(nvm_strip_path "${PATH}" "/bin")" + if [ "_${PATH}" = "_${NEWPATH}" ]; then + nvm_err "Could not find ${NVM_DIR}/*/bin in \${PATH}" + else + export PATH="${NEWPATH}" + hash -r + nvm_echo "${NVM_DIR}/*/bin removed from \${PATH}" + fi + + if [ -n "${MANPATH-}" ]; then + NEWPATH="$(nvm_strip_path "${MANPATH}" "/share/man")" + if [ "_${MANPATH}" = "_${NEWPATH}" ]; then + nvm_err "Could not find ${NVM_DIR}/*/share/man in \${MANPATH}" + else + export MANPATH="${NEWPATH}" + nvm_echo "${NVM_DIR}/*/share/man removed from \${MANPATH}" + fi + fi + + if [ -n "${NODE_PATH-}" ]; then + NEWPATH="$(nvm_strip_path "${NODE_PATH}" "/lib/node_modules")" + if [ "_${NODE_PATH}" != "_${NEWPATH}" ]; then + export NODE_PATH="${NEWPATH}" + nvm_echo "${NVM_DIR}/*/lib/node_modules removed from \${NODE_PATH}" + fi + fi + unset NVM_BIN + unset NVM_INC + ;; + "use") + local PROVIDED_VERSION + local NVM_USE_SILENT + NVM_USE_SILENT=0 + local NVM_DELETE_PREFIX + NVM_DELETE_PREFIX=0 + local NVM_LTS + + while [ $# -ne 0 ]; do + case "$1" in + --silent) NVM_USE_SILENT=1 ;; + --delete-prefix) NVM_DELETE_PREFIX=1 ;; + --) ;; + --lts) NVM_LTS='*' ;; + --lts=*) NVM_LTS="${1##--lts=}" ;; + --*) ;; + *) + if [ -n "${1-}" ]; then + PROVIDED_VERSION="$1" + fi + ;; + esac + shift + done + + if [ -n "${NVM_LTS-}" ]; then + VERSION="$(nvm_match_version "lts/${NVM_LTS:-*}")" + elif [ -z "${PROVIDED_VERSION-}" ]; then + nvm_rc_version + if [ -n "${NVM_RC_VERSION-}" ]; then + PROVIDED_VERSION="${NVM_RC_VERSION}" + VERSION="$(nvm_version "${PROVIDED_VERSION}")" + fi + unset NVM_RC_VERSION + if [ -z "${VERSION}" ]; then + nvm_err 'Please see `nvm --help` or https://github.com/nvm-sh/nvm#nvmrc for more information.' + return 127 + fi + else + VERSION="$(nvm_match_version "${PROVIDED_VERSION}")" + fi + + if [ -z "${VERSION}" ]; then + >&2 nvm --help + return 127 + fi + + if [ "_${VERSION}" = '_system' ]; then + if nvm_has_system_node && nvm deactivate >/dev/null 2>&1; then + if [ $NVM_USE_SILENT -ne 1 ]; then + nvm_echo "Now using system version of node: $(node -v 2>/dev/null)$(nvm_print_npm_version)" + fi + return + elif nvm_has_system_iojs && nvm deactivate >/dev/null 2>&1; then + if [ $NVM_USE_SILENT -ne 1 ]; then + nvm_echo "Now using system version of io.js: $(iojs --version 2>/dev/null)$(nvm_print_npm_version)" + fi + return + elif [ $NVM_USE_SILENT -ne 1 ]; then + nvm_err 'System version of node not found.' + fi + return 127 + elif [ "_${VERSION}" = "_∞" ]; then + if [ $NVM_USE_SILENT -ne 1 ]; then + nvm_err "The alias \"${PROVIDED_VERSION}\" leads to an infinite loop. Aborting." + fi + return 8 + fi + if [ "${VERSION}" = 'N/A' ]; then + nvm_err "N/A: version \"${PROVIDED_VERSION} -> ${VERSION}\" is not yet installed." + nvm_err "" + nvm_err "You need to run \"nvm install ${PROVIDED_VERSION}\" to install it before using it." + return 3 + # This nvm_ensure_version_installed call can be a performance bottleneck + # on shell startup. Perhaps we can optimize it away or make it faster. + elif ! nvm_ensure_version_installed "${VERSION}"; then + return $? + fi + + local NVM_VERSION_DIR + NVM_VERSION_DIR="$(nvm_version_path "${VERSION}")" + + # Change current version + PATH="$(nvm_change_path "${PATH}" "/bin" "${NVM_VERSION_DIR}")" + if nvm_has manpath; then + if [ -z "${MANPATH-}" ]; then + local MANPATH + MANPATH=$(manpath) + fi + # Change current version + MANPATH="$(nvm_change_path "${MANPATH}" "/share/man" "${NVM_VERSION_DIR}")" + export MANPATH + fi + export PATH + hash -r + export NVM_BIN="${NVM_VERSION_DIR}/bin" + export NVM_INC="${NVM_VERSION_DIR}/include/node" + if [ "${NVM_SYMLINK_CURRENT-}" = true ]; then + command rm -f "${NVM_DIR}/current" && ln -s "${NVM_VERSION_DIR}" "${NVM_DIR}/current" + fi + local NVM_USE_OUTPUT + NVM_USE_OUTPUT='' + if [ $NVM_USE_SILENT -ne 1 ]; then + if nvm_is_iojs_version "${VERSION}"; then + NVM_USE_OUTPUT="Now using io.js $(nvm_strip_iojs_prefix "${VERSION}")$(nvm_print_npm_version)" + else + NVM_USE_OUTPUT="Now using node ${VERSION}$(nvm_print_npm_version)" + fi + fi + if [ "_${VERSION}" != "_system" ]; then + local NVM_USE_CMD + NVM_USE_CMD="nvm use --delete-prefix" + if [ -n "${PROVIDED_VERSION}" ]; then + NVM_USE_CMD="${NVM_USE_CMD} ${VERSION}" + fi + if [ $NVM_USE_SILENT -eq 1 ]; then + NVM_USE_CMD="${NVM_USE_CMD} --silent" + fi + if ! nvm_die_on_prefix "${NVM_DELETE_PREFIX}" "${NVM_USE_CMD}"; then + return 11 + fi + fi + if [ -n "${NVM_USE_OUTPUT-}" ]; then + nvm_echo "${NVM_USE_OUTPUT}" + fi + ;; + "run") + local provided_version + local has_checked_nvmrc + has_checked_nvmrc=0 + # run given version of node + + local NVM_SILENT + local NVM_LTS + while [ $# -gt 0 ]; do + case "$1" in + --silent) NVM_SILENT='--silent' ; shift ;; + --lts) NVM_LTS='*' ; shift ;; + --lts=*) NVM_LTS="${1##--lts=}" ; shift ;; + *) + if [ -n "$1" ]; then + break + else + shift + fi + ;; # stop processing arguments + esac + done + + if [ $# -lt 1 ] && [ -z "${NVM_LTS-}" ]; then + if [ -n "${NVM_SILENT-}" ]; then + nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 + else + nvm_rc_version && has_checked_nvmrc=1 + fi + if [ -n "${NVM_RC_VERSION-}" ]; then + VERSION="$(nvm_version "${NVM_RC_VERSION-}")" ||: + fi + unset NVM_RC_VERSION + if [ "${VERSION:-N/A}" = 'N/A' ]; then + >&2 nvm --help + return 127 + fi + fi + + if [ -z "${NVM_LTS-}" ]; then + provided_version="$1" + if [ -n "${provided_version}" ]; then + VERSION="$(nvm_version "${provided_version}")" ||: + if [ "_${VERSION:-N/A}" = '_N/A' ] && ! nvm_is_valid_version "${provided_version}"; then + provided_version='' + if [ $has_checked_nvmrc -ne 1 ]; then + if [ -n "${NVM_SILENT-}" ]; then + nvm_rc_version >/dev/null 2>&1 && has_checked_nvmrc=1 + else + nvm_rc_version && has_checked_nvmrc=1 + fi + fi + VERSION="$(nvm_version "${NVM_RC_VERSION}")" ||: + unset NVM_RC_VERSION + else + shift + fi + fi + fi + + local NVM_IOJS + if nvm_is_iojs_version "${VERSION}"; then + NVM_IOJS=true + fi + + local EXIT_CODE + + nvm_is_zsh && setopt local_options shwordsplit + local LTS_ARG + if [ -n "${NVM_LTS-}" ]; then + LTS_ARG="--lts=${NVM_LTS-}" + VERSION='' + fi + if [ "_${VERSION}" = "_N/A" ]; then + nvm_ensure_version_installed "${provided_version}" + elif [ "${NVM_IOJS}" = true ]; then + nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "${VERSION}" iojs "$@" + else + nvm exec "${NVM_SILENT-}" "${LTS_ARG-}" "${VERSION}" node "$@" + fi + EXIT_CODE="$?" + return $EXIT_CODE + ;; + "exec") + local NVM_SILENT + local NVM_LTS + while [ $# -gt 0 ]; do + case "$1" in + --silent) NVM_SILENT='--silent' ; shift ;; + --lts) NVM_LTS='*' ; shift ;; + --lts=*) NVM_LTS="${1##--lts=}" ; shift ;; + --) break ;; + --*) + nvm_err "Unsupported option \"$1\"." + return 55 + ;; + *) + if [ -n "$1" ]; then + break + else + shift + fi + ;; # stop processing arguments + esac + done + + local provided_version + provided_version="$1" + if [ "${NVM_LTS-}" != '' ]; then + provided_version="lts/${NVM_LTS:-*}" + VERSION="${provided_version}" + elif [ -n "${provided_version}" ]; then + VERSION="$(nvm_version "${provided_version}")" ||: + if [ "_${VERSION}" = '_N/A' ] && ! nvm_is_valid_version "${provided_version}"; then + if [ -n "${NVM_SILENT-}" ]; then + nvm_rc_version >/dev/null 2>&1 + else + nvm_rc_version + fi + provided_version="${NVM_RC_VERSION}" + unset NVM_RC_VERSION + VERSION="$(nvm_version "${provided_version}")" ||: + else + shift + fi + fi + + nvm_ensure_version_installed "${provided_version}" + EXIT_CODE=$? + if [ "${EXIT_CODE}" != "0" ]; then + return $EXIT_CODE + fi + + if [ -z "${NVM_SILENT-}" ]; then + if [ "${NVM_LTS-}" = '*' ]; then + nvm_echo "Running node latest LTS -> $(nvm_version "${VERSION}")$(nvm use --silent "${VERSION}" && nvm_print_npm_version)" + elif [ -n "${NVM_LTS-}" ]; then + nvm_echo "Running node LTS \"${NVM_LTS-}\" -> $(nvm_version "${VERSION}")$(nvm use --silent "${VERSION}" && nvm_print_npm_version)" + elif nvm_is_iojs_version "${VERSION}"; then + nvm_echo "Running io.js $(nvm_strip_iojs_prefix "${VERSION}")$(nvm use --silent "${VERSION}" && nvm_print_npm_version)" + else + nvm_echo "Running node ${VERSION}$(nvm use --silent "${VERSION}" && nvm_print_npm_version)" + fi + fi + NODE_VERSION="${VERSION}" "${NVM_DIR}/nvm-exec" "$@" + ;; + "ls" | "list") + local PATTERN + local NVM_NO_COLORS + local NVM_NO_ALIAS + while [ $# -gt 0 ]; do + case "${1}" in + --) ;; + --no-colors) NVM_NO_COLORS="${1}" ;; + --no-alias) NVM_NO_ALIAS="${1}" ;; + --*) + nvm_err "Unsupported option \"${1}\"." + return 55 + ;; + *) + PATTERN="${PATTERN:-$1}" + ;; + esac + shift + done + if [ -n "${PATTERN-}" ] && [ -n "${NVM_NO_ALIAS-}" ]; then + nvm_err '`--no-alias` is not supported when a pattern is provided.' + return 55 + fi + local NVM_LS_OUTPUT + local NVM_LS_EXIT_CODE + NVM_LS_OUTPUT=$(nvm_ls "${PATTERN-}") + NVM_LS_EXIT_CODE=$? + NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "${NVM_LS_OUTPUT}" + if [ -z "${NVM_NO_ALIAS-}" ] && [ -z "${PATTERN-}" ]; then + if [ -n "${NVM_NO_COLORS-}" ]; then + nvm alias --no-colors + else + nvm alias + fi + fi + return $NVM_LS_EXIT_CODE + ;; + "ls-remote" | "list-remote") + local NVM_LTS + local PATTERN + local NVM_NO_COLORS + while [ $# -gt 0 ]; do + case "${1-}" in + --) ;; + --lts) + NVM_LTS='*' + ;; + --lts=*) + NVM_LTS="${1##--lts=}" + ;; + --no-colors) NVM_NO_COLORS="${1}" ;; + --*) + nvm_err "Unsupported option \"${1}\"." + return 55 + ;; + *) + if [ -z "${PATTERN-}" ]; then + PATTERN="${1-}" + if [ -z "${NVM_LTS-}" ]; then + case "${PATTERN}" in + 'lts/*') NVM_LTS='*' ;; + lts/*) NVM_LTS="${PATTERN##lts/}" ;; + esac + fi + fi + ;; + esac + shift + done + + local NVM_OUTPUT + local EXIT_CODE + NVM_OUTPUT="$(NVM_LTS="${NVM_LTS-}" nvm_remote_versions "${PATTERN}" &&:)" + EXIT_CODE=$? + if [ -n "${NVM_OUTPUT}" ]; then + NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "${NVM_OUTPUT}" + return $EXIT_CODE + fi + NVM_NO_COLORS="${NVM_NO_COLORS-}" nvm_print_versions "N/A" + return 3 + ;; + "current") + nvm_version current + ;; + "which") + local provided_version + provided_version="${1-}" + if [ $# -eq 0 ]; then + nvm_rc_version + if [ -n "${NVM_RC_VERSION}" ]; then + provided_version="${NVM_RC_VERSION}" + VERSION=$(nvm_version "${NVM_RC_VERSION}") ||: + fi + unset NVM_RC_VERSION + elif [ "_${1}" != '_system' ]; then + VERSION="$(nvm_version "${provided_version}")" ||: + else + VERSION="${1-}" + fi + if [ -z "${VERSION}" ]; then + >&2 nvm --help + return 127 + fi + + if [ "_${VERSION}" = '_system' ]; then + if nvm_has_system_iojs >/dev/null 2>&1 || nvm_has_system_node >/dev/null 2>&1; then + local NVM_BIN + NVM_BIN="$(nvm use system >/dev/null 2>&1 && command which node)" + if [ -n "${NVM_BIN}" ]; then + nvm_echo "${NVM_BIN}" + return + fi + return 1 + fi + nvm_err 'System version of node not found.' + return 127 + elif [ "_${VERSION}" = "_∞" ]; then + nvm_err "The alias \"$2\" leads to an infinite loop. Aborting." + return 8 + fi + + nvm_ensure_version_installed "${provided_version}" + EXIT_CODE=$? + if [ "${EXIT_CODE}" != "0" ]; then + return $EXIT_CODE + fi + local NVM_VERSION_DIR + NVM_VERSION_DIR="$(nvm_version_path "${VERSION}")" + nvm_echo "${NVM_VERSION_DIR}/bin/node" + ;; + "alias") + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="$(nvm_alias_path)" + local NVM_CURRENT + NVM_CURRENT="$(nvm_ls_current)" + + command mkdir -p "${NVM_ALIAS_DIR}/lts" + + local ALIAS + local TARGET + local NVM_NO_COLORS + ALIAS='--' + TARGET='--' + while [ $# -gt 0 ]; do + case "${1-}" in + --) ;; + --no-colors) NVM_NO_COLORS="${1}" ;; + --*) + nvm_err "Unsupported option \"${1}\"." + return 55 + ;; + *) + if [ "${ALIAS}" = '--' ]; then + ALIAS="${1-}" + elif [ "${TARGET}" = '--' ]; then + TARGET="${1-}" + fi + ;; + esac + shift + done + + if [ -z "${TARGET}" ]; then + # for some reason the empty string was explicitly passed as the target + # so, unalias it. + nvm unalias "${ALIAS}" + return $? + elif [ "${TARGET}" != '--' ]; then + # a target was passed: create an alias + if [ "${ALIAS#*\/}" != "${ALIAS}" ]; then + nvm_err 'Aliases in subdirectories are not supported.' + return 1 + fi + VERSION="$(nvm_version "${TARGET}")" ||: + if [ "${VERSION}" = 'N/A' ]; then + nvm_err "! WARNING: Version '${TARGET}' does not exist." + fi + nvm_make_alias "${ALIAS}" "${TARGET}" + NVM_NO_COLORS="${NVM_NO_COLORS-}" NVM_CURRENT="${NVM_CURRENT-}" DEFAULT=false nvm_print_formatted_alias "${ALIAS}" "${TARGET}" "${VERSION}" + else + if [ "${ALIAS-}" = '--' ]; then + unset ALIAS + fi + + nvm_list_aliases "${ALIAS-}" + fi + ;; + "unalias") + local NVM_ALIAS_DIR + NVM_ALIAS_DIR="$(nvm_alias_path)" + command mkdir -p "${NVM_ALIAS_DIR}" + if [ $# -ne 1 ]; then + >&2 nvm --help + return 127 + fi + if [ "${1#*\/}" != "${1-}" ]; then + nvm_err 'Aliases in subdirectories are not supported.' + return 1 + fi + + local NVM_IOJS_PREFIX + local NVM_NODE_PREFIX + NVM_IOJS_PREFIX="$(nvm_iojs_prefix)" + NVM_NODE_PREFIX="$(nvm_node_prefix)" + local NVM_ALIAS_EXISTS + NVM_ALIAS_EXISTS=0 + if [ -f "${NVM_ALIAS_DIR}/${1-}" ]; then + NVM_ALIAS_EXISTS=1 + fi + + if [ $NVM_ALIAS_EXISTS -eq 0 ]; then + case "$1" in + "stable" | "unstable" | "${NVM_IOJS_PREFIX}" | "${NVM_NODE_PREFIX}" | "system") + nvm_err "${1-} is a default (built-in) alias and cannot be deleted." + return 1 + ;; + esac + + nvm_err "Alias ${1-} doesn't exist!" + return + fi + + local NVM_ALIAS_ORIGINAL + NVM_ALIAS_ORIGINAL="$(nvm_alias "${1}")" + command rm -f "${NVM_ALIAS_DIR}/${1}" + nvm_echo "Deleted alias ${1} - restore it with \`nvm alias \"${1}\" \"${NVM_ALIAS_ORIGINAL}\"\`" + ;; + "install-latest-npm") + if [ $# -ne 0 ]; then + >&2 nvm --help + return 127 + fi + + nvm_install_latest_npm + ;; + "reinstall-packages" | "copy-packages") + if [ $# -ne 1 ]; then + >&2 nvm --help + return 127 + fi + + local PROVIDED_VERSION + PROVIDED_VERSION="${1-}" + + if [ "${PROVIDED_VERSION}" = "$(nvm_ls_current)" ] || [ "$(nvm_version "${PROVIDED_VERSION}" ||:)" = "$(nvm_ls_current)" ]; then + nvm_err 'Can not reinstall packages from the current version of node.' + return 2 + fi + + local VERSION + if [ "_${PROVIDED_VERSION}" = "_system" ]; then + if ! nvm_has_system_node && ! nvm_has_system_iojs; then + nvm_err 'No system version of node or io.js detected.' + return 3 + fi + VERSION="system" + else + VERSION="$(nvm_version "${PROVIDED_VERSION}")" ||: + fi + + local NPMLIST + NPMLIST="$(nvm_npm_global_modules "${VERSION}")" + local INSTALLS + local LINKS + INSTALLS="${NPMLIST%% //// *}" + LINKS="${NPMLIST##* //// }" + + nvm_echo "Reinstalling global packages from ${VERSION}..." + if [ -n "${INSTALLS}" ]; then + nvm_echo "${INSTALLS}" | command xargs npm install -g --quiet + else + nvm_echo "No installed global packages found..." + fi + + nvm_echo "Linking global packages from ${VERSION}..." + if [ -n "${LINKS}" ]; then + ( + set -f; IFS=' +' # necessary to turn off variable expansion except for newlines + for LINK in ${LINKS}; do + set +f; unset IFS # restore variable expansion + if [ -n "${LINK}" ]; then + (nvm_cd "${LINK}" && npm link) + fi + done + ) + else + nvm_echo "No linked global packages found..." + fi + ;; + "clear-cache") + command rm -f "${NVM_DIR}/v*" "$(nvm_version_dir)" 2>/dev/null + nvm_echo 'nvm cache cleared.' + ;; + "version") + nvm_version "${1}" + ;; + "version-remote") + local NVM_LTS + local PATTERN + while [ $# -gt 0 ]; do + case "${1-}" in + --) ;; + --lts) + NVM_LTS='*' + ;; + --lts=*) + NVM_LTS="${1##--lts=}" + ;; + --*) + nvm_err "Unsupported option \"${1}\"." + return 55 + ;; + *) + PATTERN="${PATTERN:-${1}}" + ;; + esac + shift + done + case "${PATTERN-}" in + 'lts/*') + NVM_LTS='*' + unset PATTERN + ;; + lts/*) + NVM_LTS="${PATTERN##lts/}" + unset PATTERN + ;; + esac + NVM_VERSION_ONLY=true NVM_LTS="${NVM_LTS-}" nvm_remote_version "${PATTERN:-node}" + ;; + "--version") + nvm_echo '0.35.3' + ;; + "unload") + nvm deactivate >/dev/null 2>&1 + unset -f nvm \ + nvm_iojs_prefix nvm_node_prefix \ + nvm_add_iojs_prefix nvm_strip_iojs_prefix \ + nvm_is_iojs_version nvm_is_alias nvm_has_non_aliased \ + nvm_ls_remote nvm_ls_remote_iojs nvm_ls_remote_index_tab \ + nvm_ls nvm_remote_version nvm_remote_versions \ + nvm_install_binary nvm_install_source nvm_clang_version \ + nvm_get_mirror nvm_get_download_slug nvm_download_artifact \ + nvm_install_npm_if_needed nvm_use_if_needed nvm_check_file_permissions \ + nvm_print_versions nvm_compute_checksum nvm_checksum \ + nvm_get_checksum_alg nvm_get_checksum nvm_compare_checksum \ + nvm_version nvm_rc_version nvm_match_version \ + nvm_ensure_default_set nvm_get_arch nvm_get_os \ + nvm_print_implicit_alias nvm_validate_implicit_alias \ + nvm_resolve_alias nvm_ls_current nvm_alias \ + nvm_binary_available nvm_change_path nvm_strip_path \ + nvm_num_version_groups nvm_format_version nvm_ensure_version_prefix \ + nvm_normalize_version nvm_is_valid_version \ + nvm_ensure_version_installed nvm_cache_dir \ + nvm_version_path nvm_alias_path nvm_version_dir \ + nvm_find_nvmrc nvm_find_up nvm_tree_contains_path \ + nvm_version_greater nvm_version_greater_than_or_equal_to \ + nvm_print_npm_version nvm_install_latest_npm nvm_npm_global_modules \ + nvm_has_system_node nvm_has_system_iojs \ + nvm_download nvm_get_latest nvm_has nvm_install_default_packages nvm_get_default_packages \ + nvm_curl_use_compression nvm_curl_version \ + nvm_supports_source_options nvm_auto nvm_supports_xz \ + nvm_echo nvm_err nvm_grep nvm_cd \ + nvm_die_on_prefix nvm_get_make_jobs nvm_get_minor_version \ + nvm_has_solaris_binary nvm_is_merged_node_version \ + nvm_is_natural_num nvm_is_version_installed \ + nvm_list_aliases nvm_make_alias nvm_print_alias_path \ + nvm_print_default_alias nvm_print_formatted_alias nvm_resolve_local_alias \ + nvm_sanitize_path nvm_has_colors nvm_process_parameters \ + node_version_has_solaris_binary iojs_version_has_solaris_binary \ + nvm_curl_libz_support nvm_command_info nvm_is_zsh nvm_stdout_is_terminal \ + >/dev/null 2>&1 + unset NVM_RC_VERSION NVM_NODEJS_ORG_MIRROR NVM_IOJS_ORG_MIRROR NVM_DIR \ + NVM_CD_FLAGS NVM_BIN NVM_INC NVM_MAKE_JOBS \ + >/dev/null 2>&1 + ;; + *) + >&2 nvm --help + return 127 + ;; + esac +} + +nvm_get_default_packages() { + local NVM_DEFAULT_PACKAGE_FILE="${NVM_DIR}/default-packages" + if [ -f "${NVM_DEFAULT_PACKAGE_FILE}" ]; then + local DEFAULT_PACKAGES + DEFAULT_PACKAGES='' + + # Read lines from $NVM_DIR/default-packages + local line + # ensure a trailing newline + WORK=$(mktemp -d) || exit $? + # shellcheck disable=SC2064 + trap "rm -rf '$WORK'" EXIT + # shellcheck disable=SC1003 + sed -e '$a\' "${NVM_DEFAULT_PACKAGE_FILE}" > "${WORK}/default-packages" + while IFS=' ' read -r line; do + # Skip empty lines. + [ -n "${line-}" ] || continue + + # Skip comment lines that begin with `#`. + [ "$(nvm_echo "${line}" | command cut -c1)" != "#" ] || continue + + # Fail on lines that have multiple space-separated words + case $line in + *\ *) + nvm_err "Only one package per line is allowed in the ${NVM_DIR}/default-packages file. Please remove any lines with multiple space-separated values." + return 1 + ;; + esac + + DEFAULT_PACKAGES="${DEFAULT_PACKAGES}${line} " + done < "${WORK}/default-packages" + echo "${DEFAULT_PACKAGES}" | xargs + fi +} + +nvm_install_default_packages() { + nvm_echo "Installing default global packages from ${NVM_DIR}/default-packages..." + nvm_echo "npm install -g --quiet $1" + + if ! nvm_echo "$1" | command xargs npm install -g --quiet; then + nvm_err "Failed installing default packages. Please check if your default-packages file or a package in it has problems!" + return 1 + fi +} + +nvm_supports_source_options() { + # shellcheck disable=SC1091,SC2240 + [ "_$( . /dev/stdin yes 2> /dev/null <<'EOF' +[ $# -gt 0 ] && nvm_echo $1 +EOF + )" = "_yes" ] +} + +nvm_supports_xz() { + if [ -z "${1-}" ] || ! command which xz >/dev/null 2>&1; then + return 1 + fi + + # all node versions v4.0.0 and later have xz + if nvm_is_merged_node_version "${1}"; then + return 0 + fi + + # 0.12x: node v0.12.10 and later have xz + if nvm_version_greater_than_or_equal_to "${1}" "0.12.10" && nvm_version_greater "0.13.0" "${1}"; then + return 0 + fi + + # 0.10x: node v0.10.42 and later have xz + if nvm_version_greater_than_or_equal_to "${1}" "0.10.42" && nvm_version_greater "0.11.0" "${1}"; then + return 0 + fi + + local NVM_OS + NVM_OS="$(nvm_get_os)" + case "${NVM_OS}" in + darwin) + # darwin only has xz for io.js v2.3.2 and later + nvm_version_greater_than_or_equal_to "${1}" "2.3.2" + ;; + *) + nvm_version_greater_than_or_equal_to "${1}" "1.0.0" + ;; + esac + return $? +} + +nvm_auto() { + local NVM_CURRENT + NVM_CURRENT="$(nvm_ls_current)" + local NVM_MODE + NVM_MODE="${1-}" + local VERSION + if [ "_${NVM_MODE}" = '_install' ]; then + VERSION="$(nvm_alias default 2>/dev/null || nvm_echo)" + if [ -n "${VERSION}" ]; then + nvm install "${VERSION}" >/dev/null + elif nvm_rc_version >/dev/null 2>&1; then + nvm install >/dev/null + fi + elif [ "_$NVM_MODE" = '_use' ]; then + if [ "_${NVM_CURRENT}" = '_none' ] || [ "_${NVM_CURRENT}" = '_system' ]; then + VERSION="$(nvm_resolve_local_alias default 2>/dev/null || nvm_echo)" + if [ -n "${VERSION}" ]; then + nvm use --silent "${VERSION}" >/dev/null + elif nvm_rc_version >/dev/null 2>&1; then + nvm use --silent >/dev/null + fi + else + nvm use --silent "${NVM_CURRENT}" >/dev/null + fi + elif [ "_${NVM_MODE}" != '_none' ]; then + nvm_err 'Invalid auto mode supplied.' + return 1 + fi +} + +nvm_process_parameters() { + local NVM_AUTO_MODE + NVM_AUTO_MODE='use' + if nvm_supports_source_options; then + while [ $# -ne 0 ]; do + case "$1" in + --install) NVM_AUTO_MODE='install' ;; + --no-use) NVM_AUTO_MODE='none' ;; + esac + shift + done + fi + nvm_auto "${NVM_AUTO_MODE}" +} + +nvm_process_parameters "$@" + +} # this ensures the entire script is downloaded # diff --git a/_nodejs/.nvm/package.json b/_nodejs/.nvm/package.json new file mode 100644 index 0000000..1d8cf5f --- /dev/null +++ b/_nodejs/.nvm/package.json @@ -0,0 +1,46 @@ +{ + "name": "nvm", + "version": "0.35.3", + "description": "Node Version Manager - Simple bash script to manage multiple active node.js versions", + "directories": { + "test": "test" + }, + "scripts": { + "test": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make test-$shell", + "test/fast": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=fast test-$shell", + "test/slow": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=slow test-$shell", + "test/install_script": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=install_script test-$shell", + "test/installation": "npm run --silent test/installation/node && npm run --silent test/installation/iojs", + "test/installation/node": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_node test-$shell", + "test/installation/iojs": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=installation_iojs test-$shell", + "test/sourcing": "shell=$(basename -- $(ps -o comm= $(ps -o ppid= -p $PPID)) | sed 's/^-//'); make TEST_SUITE=sourcing test-$shell", + "doctoc": "doctoc --title='## Table of Contents' --github README.md", + "eclint": "eclint check $(git ls-tree --name-only HEAD | xargs)", + "dockerfile_lint": "dockerfile_lint" + }, + "repository": { + "type": "git", + "url": "git://github.com/nvm-sh/nvm.git" + }, + "keywords": [ + "nvm", + "node", + "iojs", + "version", + "manager" + ], + "author": "Tim Caswell ", + "license": "MIT", + "bugs": { + "url": "https://github.com/nvm-sh/nvm/issues" + }, + "homepage": "https://github.com/nvm-sh/nvm", + "devDependencies": { + "dockerfile_lint": "^0.3.2", + "eclint": "^2.6.0", + "replace": "^0.3.0", + "semver": "^5.0.1", + "urchin": "^0.0.5", + "doctoc": "^1.2.0" + } +} diff --git a/_nodejs/.nvm/test/common.sh b/_nodejs/.nvm/test/common.sh new file mode 100644 index 0000000..beadafa --- /dev/null +++ b/_nodejs/.nvm/test/common.sh @@ -0,0 +1,103 @@ +assert_ok() { + local FUNCTION=$1 + shift + + $($FUNCTION $@) || die '"'"$FUNCTION $@"'" should have succeeded, but failed' +} + +assert_not_ok() { + local FUNCTION=$1 + shift + + ! $($FUNCTION $@) || die '"'"$FUNCTION $@"'" should have failed, but succeeded' +} + +strip_colors() { + while read -r line; do + echo "$line" | LC_ALL=C command sed 's/\[[ -?]*[@-~]//g' + done +} + +make_echo() { + echo "#!/bin/sh" > "$1" + echo "echo \"${2}\"" > "$1" + chmod a+x "$1" +} + +make_fake_node() { + local VERSION + VERSION="${1-}" + [ -n "${VERSION}" ] || return 1 + + local FORMATTED_VERSION + FORMATTED_VERSION="$(nvm_format_version "${VERSION}")" + + local BIN_PATH + BIN_PATH="$(nvm_version_path "${FORMATTED_VERSION}")/bin" + [ "${BIN_PATH}" != "/bin" ] || { + echo >&2 'nvm_version_path was empty' + return 5 + } + + mkdir -p "${BIN_PATH}" || { + echo >&2 'unable to make bin dir' + return 2 + } + + make_echo "${BIN_PATH}/node" "${VERSION}" || { + echo >&2 'unable to make fake node bin' + return 3 + } + + nvm_is_version_installed "${FORMATTED_VERSION}" || { + echo >&2 'fake node is not installed' + return 4 + } +} + +make_fake_iojs() { + local VERSION + VERSION="${1-}" + [ -n "${VERSION}" ] || return 1 + + local FORMATTED_VERSION + FORMATTED_VERSION="$(nvm_format_version "iojs-${VERSION}")" + + local BIN_PATH + BIN_PATH="$(nvm_version_path "${FORMATTED_VERSION}")/bin" + [ "${BIN_PATH}" != "/bin" ] || { + echo >&2 'nvm_version_path was empty' + return 5 + } + + mkdir -p "${BIN_PATH}" || { + echo >&2 'unable to make bin dir' + return 2 + } + + make_echo "${BIN_PATH}/node" "${VERSION}" || { + echo >&2 'unable to make fake node bin' + return 3 + } + make_echo "${BIN_PATH}/iojs" "${VERSION}" || { + echo >&2 'unable to make fake iojs bin' + return 3 + } + + nvm_is_version_installed "${FORMATTED_VERSION}" || { + echo >&2 'fake iojs is not installed' + return 4 + } +} + +watch() { + $@ & + local JOB + JOB=$! + while true; do sleep 15; >&2 echo '* ping *'; done & + wait $JOB; + local EXIT_CODE + EXIT_CODE=$? + kill %2; + return $EXIT_CODE +} diff --git "a/_nodejs/.nvm/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" "b/_nodejs/.nvm/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" new file mode 100755 index 0000000..d10937d --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Aliases/\"nvm alias\" should not accept aliases with slashes" @@ -0,0 +1,26 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { echo "$@" ; exit 1; } + +OUTPUT="$(nvm alias foo/bar baz 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to create an alias with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm alias foo/bar baz >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to create an alias with a slash should fail with code 1, got '$EXIT_CODE'" + +OUTPUT="$(nvm alias foo/ baz 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to create an alias ending with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm alias foo/ baz >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to create an alias ending with a slash should fail with code 1, got '$EXIT_CODE'" + +OUTPUT="$(nvm alias /bar baz 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to create an alias starting with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm alias /bar baz >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to create an alias starting with a slash should fail with code 1, got '$EXIT_CODE'" diff --git "a/_nodejs/.nvm/test/fast/Aliases/\"nvm unalias\" should accept aliases when they shadow a built-in alias" "b/_nodejs/.nvm/test/fast/Aliases/\"nvm unalias\" should accept aliases when they shadow a built-in alias" new file mode 100755 index 0000000..d88a4fa --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Aliases/\"nvm unalias\" should accept aliases when they shadow a built-in alias" @@ -0,0 +1,17 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { echo "$@" ; exit 1; } + +OUTPUT="$(nvm unalias node 2>&1)" +EXPECTED_OUTPUT="node is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +nvm alias node stable || die '`nvm alias node stable` failed' + +nvm unalias node || die '`nvm unalias node` failed' + +OUTPUT="$(nvm unalias node 2>&1)" +EXPECTED_OUTPUT="node is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" diff --git "a/_nodejs/.nvm/test/fast/Aliases/\"nvm unalias\" should not accept aliases with names equal to built-in alias" "b/_nodejs/.nvm/test/fast/Aliases/\"nvm unalias\" should not accept aliases with names equal to built-in alias" new file mode 100755 index 0000000..35bdc8f --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Aliases/\"nvm unalias\" should not accept aliases with names equal to built-in alias" @@ -0,0 +1,25 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { echo "$@" ; exit 1; } + +OUTPUT="$(nvm unalias node 2>&1)" +EXPECTED_OUTPUT="node is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm unalias stable 2>&1)" +EXPECTED_OUTPUT="stable is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm unalias unstable 2>&1)" +EXPECTED_OUTPUT="unstable is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm unalias iojs 2>&1)" +EXPECTED_OUTPUT="iojs is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm unalias system 2>&1)" +EXPECTED_OUTPUT="system is a default (built-in) alias and cannot be deleted." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove a built-in alias should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" diff --git "a/_nodejs/.nvm/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" "b/_nodejs/.nvm/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" new file mode 100755 index 0000000..2afafad --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Aliases/\"nvm unalias\" should not accept aliases with slashes" @@ -0,0 +1,26 @@ +#!/bin/sh + +\. ../../../nvm.sh + +die () { echo "$@" ; exit 1; } + +OUTPUT="$(nvm unalias foo/bar 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove an alias with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm unalias foo/bar >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to remove an alias with a slash should fail with code 1, got '$EXIT_CODE'" + +OUTPUT="$(nvm unalias foo/ 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove an alias ending with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm unalias foo/ >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to remove an alias ending with a slash should fail with code 1, got '$EXIT_CODE'" + +OUTPUT="$(nvm unalias /bar 2>&1)" +EXPECTED_OUTPUT="Aliases in subdirectories are not supported." +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "trying to remove an alias starting with a slash should fail with '$EXPECTED_OUTPUT', got '$OUTPUT'" + +EXIT_CODE="$(nvm unalias /bar >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = "1" ] || die "trying to remove an alias starting with a slash should fail with code 1, got '$EXIT_CODE'" diff --git "a/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias \" again should change the target" "b/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias \" again should change the target" new file mode 100755 index 0000000..f366beb --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias \" again should change the target" @@ -0,0 +1,24 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; exit 1; } + +if [ -n "$ZSH_VERSION" ]; then + # set clobber option in order to test that this does not produce any + # incompatibilities + setopt noclobber +fi + +nvm alias test-stable-1 0.0.2 || die '`nvm alias test-stable-1 0.0.2` failed' + +OUTPUT="$(nvm alias test-stable-1 | strip_colors)" +EXPECTED_OUTPUT='test-stable-1 -> 0.0.2 (-> v0.0.2)' +echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.2 did not set test-stable-1 to 0.0.2: got '$OUTPUT'" + +nvm alias test-stable-1 0.0.1 || die '`nvm alias test-stable-1 0.0.1` failed' + +OUTPUT="$(nvm alias test-stable-1 | strip_colors)" +EXPECTED_OUTPUT='test-stable-1 -> 0.0.1 (-> v0.0.1)' +echo "$OUTPUT" | \grep -F "$EXPECTED_OUTPUT" || die "nvm alias test-stable-1 0.0.1 did not set test-stable-1 to 0.0.1: got '$OUTPUT'" diff --git "a/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias \" should list but one alias." "b/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias \" should list but one alias." new file mode 100755 index 0000000..7ba4c38 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias \" should list but one alias." @@ -0,0 +1,4 @@ +#!/bin/sh + +\. ../../../nvm.sh +[ $(nvm alias test-stable-1 | wc -l) = '2' ] diff --git "a/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" "b/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" new file mode 100755 index 0000000..24a341c --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias\" lists implicit aliases when they do not exist" @@ -0,0 +1,26 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; exit 1; } + +NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors) + +EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" +STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" +echo "$NVM_ALIAS_OUTPUT" | \grep -F "stable -> $EXPECTED_STABLE (-> $STABLE_VERSION) (default)" \ + || die "nvm alias did not contain the default local stable node version; got '$NVM_ALIAS_OUTPUT'" + +echo "$NVM_ALIAS_OUTPUT" | \grep -F "node -> stable (-> $STABLE_VERSION) (default)" \ + || die "nvm alias did not contain the default local stable node version under 'node'; got '$NVM_ALIAS_OUTPUT'" + +EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)" +UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")" +echo "$NVM_ALIAS_OUTPUT" | \grep -F "unstable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION) (default)" \ + || die "nvm alias did not contain the default local unstable node version; got '$NVM_ALIAS_OUTPUT'" + +EXPECTED_IOJS="$(nvm_print_implicit_alias local iojs)" +IOJS_VERSION="$(nvm_version "$EXPECTED_IOJS")" +echo "$NVM_ALIAS_OUTPUT" | \grep -F "iojs -> $EXPECTED_IOJS (-> $IOJS_VERSION) (default)" \ + || die "nvm alias did not contain the default local iojs version; got '$NVM_ALIAS_OUTPUT'" diff --git "a/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" "b/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" new file mode 100755 index 0000000..1857f44 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias\" lists manual aliases instead of implicit aliases when present" @@ -0,0 +1,49 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; cleanup ; exit 1; } +cleanup () { + rm -rf "$(nvm_alias_path)/stable" + rm -rf "$(nvm_alias_path)/unstable" + rm -rf "$(nvm_alias_path)/node" + rm -rf "$(nvm_alias_path)/iojs" + rm -rf "${NVM_DIR}/v0.8.1" + rm -rf "${NVM_DIR}/v0.9.1" + rm -rf "${NVM_DIR}/versions/io.js/v0.2.1" +} + +make_fake_node v0.8.1 +make_fake_node v0.9.1 +make_fake_iojs v0.2.1 + +EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" +STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" + +EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)" +UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")" + +[ "_$STABLE_VERSION" != "_$UNSTABLE_VERSION" ] \ + || die "stable and unstable versions are the same!" + +nvm alias stable "$EXPECTED_UNSTABLE" +nvm alias unstable "$EXPECTED_STABLE" +nvm alias node stable +nvm alias iojs unstable + +NVM_ALIAS_OUTPUT=$(nvm alias | strip_colors) + +echo "$NVM_ALIAS_OUTPUT" | command grep -F "stable -> $EXPECTED_UNSTABLE (-> $UNSTABLE_VERSION)" \ + || die "nvm alias did not contain the overridden 'stable' alias; got '$NVM_ALIAS_OUTPUT'" + +echo "$NVM_ALIAS_OUTPUT" | command grep -F "unstable -> $EXPECTED_STABLE (-> $STABLE_VERSION)" \ + || die "nvm alias did not contain the overridden 'unstable' alias; got '$NVM_ALIAS_OUTPUT'" + +echo "$NVM_ALIAS_OUTPUT" | command grep -F "node -> stable (-> $UNSTABLE_VERSION)" \ + || die "nvm alias did not contain the overridden 'node' alias; got '$NVM_ALIAS_OUTPUT'" + +echo "$NVM_ALIAS_OUTPUT" | command grep -F "iojs -> unstable (-> $STABLE_VERSION)" \ + || die "nvm alias did not contain the overridden 'iojs' alias; got '$NVM_ALIAS_OUTPUT'" + +cleanup diff --git "a/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias\" should list all aliases." "b/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias\" should list all aliases." new file mode 100755 index 0000000..d620fe5 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Aliases/Running \"nvm alias\" should list all aliases." @@ -0,0 +1,48 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; exit 1; } + +NVM_ALIAS_OUTPUT="$(nvm alias | strip_colors)" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-1 -> 0.0.1 (-> v0.0.1)' \ + || die "did not find test-stable-1 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-2 -> 0.0.2 (-> v0.0.2)' \ + || die "did not find test-stable-2 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-3 -> 0.0.3 (-> v0.0.3)' \ + || die "did not find test-stable-3 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-4 -> 0.0.4 (-> v0.0.4)' \ + || die "did not find test-stable-4 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-5 -> 0.0.5 (-> v0.0.5)' \ + || die "did not find test-stable-5 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-6 -> 0.0.6 (-> v0.0.6)' \ + || die "did not find test-stable-6 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-7 -> 0.0.7 (-> v0.0.7)' \ + || die "did not find test-stable-7 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-8 -> 0.0.8 (-> v0.0.8)' \ + || die "did not find test-stable-8 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-9 -> 0.0.9 (-> v0.0.9)' \ + || die "did not find test-stable-9 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-stable-10 -> 0.0.10 (-> v0.0.10)' \ + || die "did not find test-stable-10 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-1 -> 0.1.1 (-> v0.1.1)' \ + || die "did not find test-unstable-1 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-2 -> 0.1.2 (-> v0.1.2)' \ + || die "did not find test-unstable-2 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-3 -> 0.1.3 (-> v0.1.3)' \ + || die "did not find test-unstable-3 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-4 -> 0.1.4 (-> v0.1.4)' \ + || die "did not find test-unstable-4 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-5 -> 0.1.5 (-> v0.1.5)' \ + || die "did not find test-unstable-5 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-6 -> 0.1.6 (-> v0.1.6)' \ + || die "did not find test-unstable-6 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-7 -> 0.1.7 (-> v0.1.7)' \ + || die "did not find test-unstable-7 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-8 -> 0.1.8 (-> v0.1.8)' \ + || die "did not find test-unstable-8 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-9 -> 0.1.9 (-> v0.1.9)' \ + || die "did not find test-unstable-9 alias; got '$NVM_ALIAS_OUTPUT'" +echo "$NVM_ALIAS_OUTPUT" | \grep -F 'test-unstable-10 -> 0.1.10 (-> v0.1.10)' \ + || die "did not find test-unstable-10 alias; got '$NVM_ALIAS_OUTPUT'" diff --git a/_nodejs/.nvm/test/fast/Aliases/circular/nvm_resolve_alias b/_nodejs/.nvm/test/fast/Aliases/circular/nvm_resolve_alias new file mode 100755 index 0000000..ee772bb --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/circular/nvm_resolve_alias @@ -0,0 +1,36 @@ +#!/bin/sh +\. ../../../common.sh + +die () { echo "$@" ; exit 1; } + +\. ../../../../nvm.sh + +ALIAS="$(nvm_resolve_alias loopback | strip_colors)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias loopback was not ∞; got $ALIAS" +OUTPUT="$(nvm alias loopback | strip_colors)" +EXPECTED_OUTPUT="loopback -> loopback (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias loopback was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_alias one | strip_colors)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias one was not ∞; got $ALIAS" +OUTPUT="$(nvm alias one | strip_colors)" +EXPECTED_OUTPUT="one -> two (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias one was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_alias two | strip_colors)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias two was not ∞; got $ALIAS" +OUTPUT="$(nvm alias two | strip_colors)" +EXPECTED_OUTPUT="two -> three (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias two was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_alias three | strip_colors)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias three was not ∞; got $ALIAS" +OUTPUT="$(nvm alias three | strip_colors)" +EXPECTED_OUTPUT="three -> one (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias three was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_alias four | strip_colors)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_alias four was not ∞; got $ALIAS" +OUTPUT="$(nvm alias four | strip_colors)" +EXPECTED_OUTPUT="four -> two (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias four was not $EXPECTED_OUTPUT; got $OUTPUT" diff --git a/_nodejs/.nvm/test/fast/Aliases/circular/nvm_resolve_local_alias b/_nodejs/.nvm/test/fast/Aliases/circular/nvm_resolve_local_alias new file mode 100755 index 0000000..0d4b200 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/circular/nvm_resolve_local_alias @@ -0,0 +1,36 @@ +#!/bin/sh +\. ../../../common.sh + +die () { echo "$@" ; exit 1; } + +\. ../../../../nvm.sh + +ALIAS="$(nvm_resolve_local_alias loopback | strip_colors)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias loopback was not ∞; got $ALIAS" +OUTPUT="$(nvm alias loopback | strip_colors)" +EXPECTED_OUTPUT="loopback -> loopback (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias loopback was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_local_alias one | strip_colors)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias one was not ∞; got $ALIAS" +OUTPUT="$(nvm alias one | strip_colors)" +EXPECTED_OUTPUT="one -> two (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias one was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_local_alias two | strip_colors)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias two was not ∞; got $ALIAS" +OUTPUT="$(nvm alias two | strip_colors)" +EXPECTED_OUTPUT="two -> three (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias two was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_local_alias three | strip_colors)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias three was not ∞; got $ALIAS" +OUTPUT="$(nvm alias three | strip_colors)" +EXPECTED_OUTPUT="three -> one (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias three was not $EXPECTED_OUTPUT; got $OUTPUT" + +ALIAS="$(nvm_resolve_local_alias four | strip_colors)" +[ "_$ALIAS" = "_∞" ] || die "nvm_resolve_local_alias four was not ∞; got $ALIAS" +OUTPUT="$(nvm alias four | strip_colors)" +EXPECTED_OUTPUT="four -> two (-> ∞)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm alias four was not $EXPECTED_OUTPUT; got $OUTPUT" diff --git a/_nodejs/.nvm/test/fast/Aliases/circular/setup b/_nodejs/.nvm/test/fast/Aliases/circular/setup new file mode 100755 index 0000000..4af6dc0 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/circular/setup @@ -0,0 +1,9 @@ +#!/bin/sh + +echo loopback > ../../../../alias/loopback + +echo two > ../../../../alias/one +echo three > ../../../../alias/two +echo one > ../../../../alias/three + +echo two > ../../../../alias/four diff --git a/_nodejs/.nvm/test/fast/Aliases/circular/teardown b/_nodejs/.nvm/test/fast/Aliases/circular/teardown new file mode 100755 index 0000000..d83ee81 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/circular/teardown @@ -0,0 +1,9 @@ +#!/bin/sh + +rm -f ../../../../alias/loopback + +rm -f ../../../../alias/one +rm -f ../../../../alias/two +rm -f ../../../../alias/three + +rm -f ../../../../alias/four diff --git "a/_nodejs/.nvm/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" "b/_nodejs/.nvm/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" new file mode 100755 index 0000000..f6f3960 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Aliases/lts/\"nvm alias\" should ensure LTS alias dir exists" @@ -0,0 +1,18 @@ +#!/bin/sh + +set -ex + +\. ../../../../nvm.sh +\. ../../../common.sh + +LTS_ALIAS_PATH="$(nvm_alias_path)/lts" + +rm -rf "${LTS_ALIAS_PATH}" + +die () { echo "$@" ; exit 1; } + +[ ! -d "${LTS_ALIAS_PATH}" ] || die "'${LTS_ALIAS_PATH}' exists and should not" + +nvm alias >/dev/null 2>&1 + +[ -d "${LTS_ALIAS_PATH}" ] || die "'${LTS_ALIAS_PATH}' does not exist and should" diff --git a/_nodejs/.nvm/test/fast/Aliases/lts/setup_dir b/_nodejs/.nvm/test/fast/Aliases/lts/setup_dir new file mode 100755 index 0000000..4aeb067 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/lts/setup_dir @@ -0,0 +1,10 @@ +#!/bin/sh + +\. ../../../../nvm.sh + +LTS_ALIAS_PATH="$(nvm_alias_path)/lts" + +if [ -d "${LTS_ALIAS_PATH}" ]; then + mv "${LTS_ALIAS_PATH}" "${LTS_ALIAS_PATH}.bak" + rm -rf "${LTS_ALIAS_PATH}" +fi diff --git a/_nodejs/.nvm/test/fast/Aliases/lts/teardown_dir b/_nodejs/.nvm/test/fast/Aliases/lts/teardown_dir new file mode 100755 index 0000000..18863f4 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/lts/teardown_dir @@ -0,0 +1,10 @@ +#!/bin/sh + +\. ../../../../nvm.sh + +LTS_ALIAS_PATH="$(nvm_alias_path)/lts" + +if [ -d "${LTS_ALIAS_PATH}.bak" ]; then + rm -rf "${LTS_ALIAS_PATH}" + mv "${LTS_ALIAS_PATH}.bak" "${LTS_ALIAS_PATH}" +fi diff --git a/_nodejs/.nvm/test/fast/Aliases/nvm_ensure_default_set b/_nodejs/.nvm/test/fast/Aliases/nvm_ensure_default_set new file mode 100755 index 0000000..7e7dab8 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/nvm_ensure_default_set @@ -0,0 +1,20 @@ +#!/bin/sh + +\. ../../common.sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm alias default 0.1 >/dev/null || die "'nvm alias default 0.1' failed" + +nvm_ensure_default_set 0.3 || die "'nvm_ensure_default_set' with an existing default alias exits 0" + +nvm unalias default || die "'nvm unalias default' failed" + +OUTPUT="$(nvm_ensure_default_set 0.2)" +EXPECTED_OUTPUT="Creating default alias: default -> 0.2 (-> iojs-v0.2.10)" +EXIT_CODE="$?" + +[ "_$(echo "$OUTPUT" | strip_colors)" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set 0.2' did not output '$EXPECTED_OUTPUT', got '$OUTPUT'" +[ "_$EXIT_CODE" = "_0" ] || die "'nvm_ensure_default_set 0.2' did not exit with 0, got $EXIT_CODE" diff --git a/_nodejs/.nvm/test/fast/Aliases/nvm_resolve_alias b/_nodejs/.nvm/test/fast/Aliases/nvm_resolve_alias new file mode 100755 index 0000000..4520aa1 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/nvm_resolve_alias @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +EXIT_CODE=$(nvm_resolve_alias ; echo $?) +[ $EXIT_CODE = "1" ] || die "nvm_resolve_alias without an argument did not return 1; got $EXIT_CODE" + +for i in $(seq 1 10) + do + STABLE_ALIAS="$(nvm_resolve_alias test-stable-$i)" + [ "_$STABLE_ALIAS" = "_v0.0.$i" ] \ + || die "'nvm_resolve_alias test-stable-$i' was not v0.0.$i; got $STABLE_ALIAS" + UNSTABLE_ALIAS="$(nvm_resolve_alias test-unstable-$i)" + [ "_$UNSTABLE_ALIAS" = "_v0.1.$i" ] \ + || die "'nvm_resolve_alias test-unstable-$i' was not v0.1.$i; got $UNSTABLE_ALIAS" +done + +EXIT_CODE=$(nvm_resolve_alias nonexistent ; echo $?) +[ $EXIT_CODE = "2" ] || die "'nvm_resolve_alias nonexistent' did not return 2; got $EXIT_CODE" + +STABLE="$(nvm_resolve_alias stable)" +[ "_$STABLE" = "_v0.0" ] || die "'nvm_resolve_alias stable' was not v0.0; got $STABLE" + +NODE="$(nvm_resolve_alias node)" +[ "_$NODE" = "_stable" ] || die "'nvm_resolve_alias node' was not stable; got $NODE" + +UNSTABLE="$(nvm_resolve_alias unstable)" +[ "_$UNSTABLE" = "_v0.1" ] || die "'nvm_resolve_alias unstable' was not v0.1; got $UNSTABLE" + +IOJS="$(nvm_resolve_alias iojs)" +[ "_$IOJS" = "_iojs-v0.2" ] || die "'nvm_resolve_alias iojs' was not iojs-v0.2; got $IOJS" diff --git a/_nodejs/.nvm/test/fast/Aliases/nvm_resolve_local_alias b/_nodejs/.nvm/test/fast/Aliases/nvm_resolve_local_alias new file mode 100755 index 0000000..06f4374 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/nvm_resolve_local_alias @@ -0,0 +1,35 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +EXIT_CODE=$(nvm_resolve_local_alias ; echo $?) +[ "_$EXIT_CODE" = "_1" ] || die "nvm_resolve_local_alias without an argument did not return 1; got $EXIT_CODE" + +for i in $(seq 1 10) + do + STABLE_ALIAS="$(nvm_resolve_local_alias test-stable-$i)" + [ "_$STABLE_ALIAS" = "_v0.0.$i" ] \ + || die "'nvm_resolve_local_alias test-stable-$i' was not v0.0.$i; got $STABLE_ALIAS" + UNSTABLE_ALIAS="$(nvm_resolve_local_alias test-unstable-$i)" + [ "_$UNSTABLE_ALIAS" = "_v0.1.$i" ] \ + || die "'nvm_resolve_local_alias test-unstable-$i' was not v0.1.$i; got $UNSTABLE_ALIAS" +done + +OUTPUT="$(nvm_resolve_local_alias nonexistent)" +EXIT_CODE=$(nvm_resolve_local_alias nonexistent > /dev/null 2>&1 ; echo $?) +[ "_$EXIT_CODE" = "_2" ] || die "'nvm_resolve_local_alias nonexistent' did not return 2; got $EXIT_CODE" +[ "_$OUTPUT" = "_" ] || die "'nvm_resolve_local_alias nonexistent' did not have empty output; got $OUTPUT" + +STABLE="$(nvm_resolve_local_alias stable)" +[ "_$STABLE" = "_v0.0.10" ] || die "'nvm_resolve_local_alias stable' was not v0.0.10; got $STABLE" + +NODE="$(nvm_resolve_local_alias node)" +[ "_$NODE" = "_v0.0.10" ] || die "'nvm_resolve_local_alias node' was not v0.0.10; got $NODE" + +UNSTABLE="$(nvm_resolve_local_alias unstable)" +[ "_$UNSTABLE" = "_v0.1.10" ] || die "'nvm_resolve_local_alias unstable' was not v0.1.10; got $UNSTABLE" + +IOJS="$(nvm_resolve_local_alias iojs)" +[ "_$IOJS" = "_iojs-v0.2.10" ] || die "'nvm_resolve_local_alias iojs' was not iojs-v0.2.10; got $IOJS" diff --git a/_nodejs/.nvm/test/fast/Aliases/setup b/_nodejs/.nvm/test/fast/Aliases/setup new file mode 100755 index 0000000..7055a4d --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/setup @@ -0,0 +1,14 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +for i in $(seq 1 10) + do + echo 0.0.$i > ../../../alias/test-stable-$i + make_fake_node v0.0.$i + echo 0.1.$i > ../../../alias/test-unstable-$i + make_fake_node v0.1.$i + echo 0.2.$i > ../../../alias/test-iojs-$i + make_fake_iojs v0.2.$i +done diff --git a/_nodejs/.nvm/test/fast/Aliases/teardown b/_nodejs/.nvm/test/fast/Aliases/teardown new file mode 100755 index 0000000..005c729 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Aliases/teardown @@ -0,0 +1,17 @@ +#!/bin/sh + +for i in $(seq 1 10) + do + rm -f "../../../alias/test-stable-$i" + rm -rf "../../../v0.0.$i" + rm -f "../../../alias/test-unstable-$i" + rm -rf "../../../v0.1.$i" + rm -rf "../../../alias/test-iojs-$i" + rm -rf "../../../versions/io.js/v0.2.$i" +done + +rm -f "../../../alias/stable" +rm -f "../../../alias/unstable" +rm -f "../../../alias/node" +rm -f "../../../alias/iojs" +rm -f "../../../alias/default" diff --git "a/_nodejs/.nvm/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." "b/_nodejs/.nvm/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." new file mode 100755 index 0000000..1f4eb11 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing paths/Running \"nvm which 0.0.2\" should display only version 0.0.2." @@ -0,0 +1,27 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.0.2 +make_fake_node v0.0.20 +make_fake_node v0.12.0 + +die () { echo "$@" ; exit 1; } + +# The result should contain only the appropriate version numbers. + +nvm which 0.0.2 || die "v0.0.2 not found" +NVM_BIN="$(nvm which 0.0.2)" +[ "_$NVM_BIN" = "_$(nvm_version_path v0.0.2)/bin/node" ] \ + || die "'nvm which 0.0.2' did not contain the correct path: got '$NVM_BIN'" + +nvm which 0.0.20 || die "v0.0.20 not found" +NVM_BIN="$(nvm which 0.0.20)" +[ "_$NVM_BIN" = "_$(nvm_version_path v0.0.20)/bin/node" ] \ + || die "'nvm which 0.20.0' did not contain the correct path: got '$NVM_BIN'" + +nvm which 0.12.0 || die "v0.0.20 not found" +NVM_BIN="$(nvm which 0.12.0)" +[ "_$NVM_BIN" = "_$(nvm_version_path v0.12.0)/bin/node" ] \ + || die "'nvm which 0.12.0' did not contain the correct path: got '$NVM_BIN'" diff --git "a/_nodejs/.nvm/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" "b/_nodejs/.nvm/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" new file mode 100755 index 0000000..c0218a0 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing paths/Running \"nvm which foo\" should return a nonzero exit code when not found" @@ -0,0 +1,6 @@ +#!/bin/sh + +\. ../../../nvm.sh + +nvm which nonexistent_version +[ "_$?" = "_1" ] diff --git a/_nodejs/.nvm/test/fast/Listing paths/teardown b/_nodejs/.nvm/test/fast/Listing paths/teardown new file mode 100755 index 0000000..7c3e727 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Listing paths/teardown @@ -0,0 +1,3 @@ +rm -rf ../../../v0.0.2 +rm -rf ../../../v0.0.20 +rm -rf ../../../v0.12.0 diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls --no-alias\" does not call into nvm_alias" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls --no-alias\" does not call into nvm_alias" new file mode 100755 index 0000000..20e28ec --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls --no-alias\" does not call into nvm_alias" @@ -0,0 +1,34 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; unset -f nvm_ls nvm_list_aliases; exit 1; } + +make_fake_node v0.12.87 || die 'fake v0.12.87 could not be made' +make_fake_node v0.12.9 || die 'fake v0.12.9 could not be made' +make_fake_iojs v0.1.2 || die 'fake iojs-v0.1.2 could not be made' +make_fake_iojs v0.10.2 || die 'fake iojs-v0.10.2 could not be made' + +set -e + +nvm_list_aliases() { + echo 'sd-6' +} +# sanity check +OUTPUT="$(nvm alias)" +EXPECTED_OUTPUT='sd-6' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "1: expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +nvm_ls() { + echo v0.12.87 + echo v0.12.9 + echo iojs-v0.1.2 + echo iojs-v0.10.2 +} +OUTPUT="$(nvm ls --no-colors --no-alias)" +EXPECTED_OUTPUT=" v0.12.87 * + v0.12.9 * + iojs-v0.1.2 * + iojs-v0.10.2 *" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "2: expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls --no-alias\" with a pattern errors" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls --no-alias\" with a pattern errors" new file mode 100755 index 0000000..6f5a809 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls --no-alias\" with a pattern errors" @@ -0,0 +1,15 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; unset -f nvm_ls nvm_list_aliases; exit 1; } + +set -e + +OUTPUT="$(nvm ls --no-colors --no-alias pattern 2>&1 ||:)" +EXPECTED_OUTPUT='`--no-alias` is not supported when a pattern is provided.' +EXIT_CODE="$(nvm ls --no-colors --no-alias pattern >/dev/null 2>&1 || echo $?)" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +[ "${EXIT_CODE}" = 55 ] || die "expected 55; got >${EXIT_CODE}<" diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." new file mode 100755 index 0000000..666a3f0 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls 0.0.2\" should display only version 0.0.2." @@ -0,0 +1,21 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.0.2 +make_fake_node v0.0.20 + +die () { echo "$@" ; exit 1; } + +# The result should contain only the appropriate version numbers. + +nvm ls 0.0.2 | grep 'v0.0.2' > /dev/null +if [ $? -eq 0 ]; then + echo '"nvm ls 0.0.2" contained v0.0.2' +fi + +nvm ls 0.0.2 | grep 'v0.0.20' > /dev/null +if [ $? -eq 0 ]; then + die '"nvm ls 0.0.2" contained v0.0.20' +fi diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." new file mode 100755 index 0000000..b02efa3 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls 0.2\" should display only 0.2.x versions." @@ -0,0 +1,42 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.1.3 +make_fake_node v0.2.3 +make_fake_node v0.20.3 + +die () { echo "$@" ; exit 1; } + +# The result should contain only the appropriate version numbers. + +nvm ls 0.1 | grep 'v0.2.3' > /dev/null +if [ $? -eq 0 ]; then + echo '"nvm ls 0.1" contained v0.2.3' +fi + +nvm ls 0.1 | grep 'v0.20.3' > /dev/null +if [ $? -eq 0 ]; then + die '"nvm ls 0.1" contained v0.20.3' +fi + +nvm ls 0.1 | grep 'v0.1.3' > /dev/null +if [ $? -ne 0 ]; then + die '"nvm ls 0.1" did not contain v0.1.3' +fi + +nvm ls 0.2 | grep 'v0.2.3' > /dev/null +if [ $? -ne 0 ]; then + die '"nvm ls 0.2" did not contain v0.2.3' +fi + +nvm ls 0.2 | grep 'v0.20.3' > /dev/null +if [ $? -eq 0 ]; then + die '"nvm ls 0.2" contained v0.20.3' +fi + +nvm ls 0.2 | grep 'v0.2.3' > /dev/null +if [ $? -ne 0 ]; then + die '"nvm ls 0.2" did not contain v0.2.3' +fi diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" new file mode 100755 index 0000000..74a97b4 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls foo\" should return a nonzero exit code when not found" @@ -0,0 +1,6 @@ +#!/bin/sh + +\. ../../../nvm.sh + +nvm ls nonexistent_version +[ "$?" = "3" ] diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls io\" should return NA" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls io\" should return NA" new file mode 100755 index 0000000..79dccfe --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls io\" should return NA" @@ -0,0 +1,6 @@ +#!/bin/sh + +\. ../../../nvm.sh + +nvm ls io +[ "$?" = "3" ] diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" new file mode 100755 index 0000000..af79302 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls node_\" should return a nonzero exit code when not found" @@ -0,0 +1,6 @@ +#!/bin/sh + +\. ../../../nvm.sh + +nvm ls node_ +[ "$?" = "3" ] diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" new file mode 100755 index 0000000..78d0a50 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls stable\" and \"nvm ls unstable\" should return the appropriate implicit alias" @@ -0,0 +1,29 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; exit 1; } + +make_fake_node v0.2.3 +make_fake_node v0.3.3 + +EXPECTED_STABLE="$(nvm_print_implicit_alias local stable)" +STABLE_VERSION="$(nvm_version "$EXPECTED_STABLE")" + +EXPECTED_UNSTABLE="$(nvm_print_implicit_alias local unstable)" +UNSTABLE_VERSION="$(nvm_version "$EXPECTED_UNSTABLE")" + +nvm ls stable | \grep "$STABLE_VERSION" >/dev/null \ + || die "expected 'nvm ls stable' to give $STABLE_VERSION, got $(nvm ls stable)" + +nvm ls unstable | \grep "$UNSTABLE_VERSION" >/dev/null \ + || die "expected 'nvm ls unstable' to give $UNSTABLE_VERSION, got $(nvm ls unstable)" + +make_fake_node v0.1.4 +nvm alias stable 0.1 + +nvm ls stable | \grep -v "$STABLE_VERSION" >/dev/null \ + || die "'nvm ls stable' contained $STABLE_VERSION instead of v0.1.4" +nvm ls stable | \grep v0.1.4 >/dev/null \ + || die "'nvm ls stable' did not contain v0.1.4" diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" new file mode 100755 index 0000000..1d39a41 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls system\" should include \"system\" when appropriate" @@ -0,0 +1,21 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.0.1 +make_fake_node v0.0.3 +make_fake_node v0.0.9 +make_fake_node v0.3.1 +make_fake_node v0.3.3 +make_fake_node v0.3.9 + +nvm_has_system_node() { return 0; } +nvm ls system | grep system 2>&1 > /dev/null +[ $? -eq 0 ] || die '"nvm ls system" did not contain "system" when system node is present' + +nvm_has_system_node() { return 1; } +nvm ls system | grep system 2>&1 > /dev/null +[ $? -ne 0 ] || die '"nvm ls system" contained "system" when system node is not present' diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" calls into nvm_alias" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" calls into nvm_alias" new file mode 100755 index 0000000..a5f7457 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" calls into nvm_alias" @@ -0,0 +1,35 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; unset -f nvm_ls nvm_list_aliases; exit 1; } + +make_fake_node v0.12.87 || die 'fake v0.12.87 could not be made' +make_fake_node v0.12.9 || die 'fake v0.12.9 could not be made' +make_fake_iojs v0.1.2 || die 'fake iojs-v0.1.2 could not be made' +make_fake_iojs v0.10.2 || die 'fake iojs-v0.10.2 could not be made' + +set -e + +nvm_list_aliases() { + echo 'sd-6' +} +# sanity check +OUTPUT="$(nvm alias)" +EXPECTED_OUTPUT='sd-6' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "1: expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +nvm_ls() { + echo v0.12.87 + echo v0.12.9 + echo iojs-v0.1.2 + echo iojs-v0.10.2 +} +OUTPUT="$(nvm ls --no-colors)" +EXPECTED_OUTPUT=" v0.12.87 * + v0.12.9 * + iojs-v0.1.2 * + iojs-v0.10.2 * +sd-6" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "2: expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." new file mode 100755 index 0000000..92e0270 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should display all installed versions." @@ -0,0 +1,44 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +die () { echo "$@" ; exit 1; } + +make_fake_node v0.0.1 +make_fake_node v0.0.3 +make_fake_node v0.0.9 +make_fake_node v0.3.1 +make_fake_node v0.3.3 +make_fake_node v0.3.9 +make_fake_node v0.12.87 +make_fake_node v0.12.9 +make_fake_iojs v0.1.2 +make_fake_iojs v0.10.2 + +# The result should contain the version numbers. +nvm ls | grep v0.0.1 >/dev/null || die "v0.0.1 not found in: $(nvm ls)" +nvm ls | grep v0.0.3 >/dev/null || die "v0.0.3 not found in: $(nvm ls)" +nvm ls | grep v0.0.9 >/dev/null || die "v0.0.9 not found in: $(nvm ls)" +nvm ls | grep v0.3.1 >/dev/null || die "v0.3.1 not found in: $(nvm ls)" +nvm ls | grep v0.3.3 >/dev/null || die "v0.3.3 not found in: $(nvm ls)" +nvm ls | grep v0.3.9 >/dev/null || die "v0.3.9 not found in: $(nvm ls)" +nvm ls | grep v0.12.87 >/dev/null || die "v0.12.87 not found in: $(nvm ls)" +nvm ls | grep iojs-v0.1.2 >/dev/null || die "iojs-v0.1.2 not found in: $(nvm ls)" + +OUTPUT="$(nvm_ls)" +EXPECTED_OUTPUT="v0.0.1 +v0.0.3 +v0.0.9 +iojs-v0.1.2 +v0.3.1 +v0.3.3 +v0.3.9 +iojs-v0.10.2 +v0.12.9 +v0.12.87" +if nvm_has_system_node || nvm_has_system_iojs; then + EXPECTED_OUTPUT="${EXPECTED_OUTPUT} +system" +fi +[ "${OUTPUT-}" = "${EXPECTED_OUTPUT-}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" new file mode 100755 index 0000000..dedb541 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should filter out \".nvm\"" @@ -0,0 +1,10 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.1.3 +make_fake_node v0.2.3 + +[ -z `nvm ls | grep '^ *\.'` ] +# The result should contain only the appropriate version numbers. diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" new file mode 100755 index 0000000..bd0c709 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should filter out \"versions\"" @@ -0,0 +1,10 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.1.3 +make_fake_node v0.2.3 + +[ -z "$(nvm ls | \grep 'versions')" ] +# The result should contain only the appropriate version numbers. diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" new file mode 100755 index 0000000..9c465c0 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should include \"system\" when appropriate" @@ -0,0 +1,21 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.0.1 +make_fake_node v0.0.3 +make_fake_node v0.0.9 +make_fake_node v0.3.1 +make_fake_node v0.3.3 +make_fake_node v0.3.9 + +nvm_has_system_node() { return 0; } +nvm ls | grep system 2>&1 > /dev/null +[ $? -eq 0 ] || die '"nvm ls" did not contain "system" when system node is present' + +nvm_has_system_node() { return 1; } +nvm ls | grep system 2>&1 > /dev/null +[ $? -ne 0 ] || die '"nvm ls" contained "system" when system node is not present' diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" new file mode 100755 index 0000000..a2a31e2 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" should list versions in the \"versions\" directory" @@ -0,0 +1,12 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.12.1 +make_fake_node v0.1.3 + +nvm ls 0.12 | grep v0.12.1 || die '"nvm ls" did not list a version in the versions/ directory' +nvm ls 0.1 | grep v0.1.3 || die '"nvm ls" did not list a version not in the versions/ directory' diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" new file mode 100755 index 0000000..cb54278 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" with node-like versioning vx.x.x should only list a matched version" @@ -0,0 +1,11 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.1.2 + +nvm ls v0.1 | grep v0.1.2 && +nvm ls v0.1.2 | grep v0.1.2 && +nvm ls v0.1. | grep v0.1.2 && +nvm ls v0.1.1 | grep N/A diff --git "a/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" with nounset should not fail." "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" with nounset should not fail." new file mode 100755 index 0000000..d2bfe9e --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Listing versions/Running \"nvm ls\" with nounset should not fail." @@ -0,0 +1,23 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.12.34 || die 'fake v0.12.34 could not be made' + +# Enable no unset variable +set -u + +# Try an alias that does not exist +output=$(nvm ls 99 2>&1 1>/dev/null || true) +test -z "${output}" || die "1: expected empty; got >${output}" + +# Try a version that does not exist +output=$(nvm ls 0.12.00 2>&1 1>/dev/null || true) +test -z "${output}" || die "2: expected empty; got >${output}" + +# Try a version that does exist +output=$(nvm ls 0.12.34 2>&1 1>/dev/null || true) +test -z "${output}" || die "3: expected empty; got >${output}" diff --git a/_nodejs/.nvm/test/fast/Listing versions/Using a nonstandard IFS should not break b/_nodejs/.nvm/test/fast/Listing versions/Using a nonstandard IFS should not break new file mode 100755 index 0000000..27cf2de --- /dev/null +++ b/_nodejs/.nvm/test/fast/Listing versions/Using a nonstandard IFS should not break @@ -0,0 +1,19 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.0.1 +make_fake_node v0.0.3 +make_fake_node v0.0.9 +make_fake_node v0.3.1 +make_fake_node v0.3.3 +make_fake_node v0.3.9 +make_fake_node v0.12.87 +make_fake_node v0.12.9 +make_fake_iojs v0.1.2 +make_fake_iojs v0.10.2 + +set -e + +IFS='' nvm ls diff --git a/_nodejs/.nvm/test/fast/Listing versions/teardown b/_nodejs/.nvm/test/fast/Listing versions/teardown new file mode 100755 index 0000000..eb9610b --- /dev/null +++ b/_nodejs/.nvm/test/fast/Listing versions/teardown @@ -0,0 +1,16 @@ +rm -rf ../../../v0.0.1 +rm -rf ../../../v0.0.2 +rm -rf ../../../v0.0.3 +rm -rf ../../../v0.0.9 +rm -rf ../../../v0.0.20 +rm -rf ../../../v0.1.2 +rm -rf ../../../v0.1.3 +rm -rf ../../../v0.1.4 +rm -rf ../../../v0.2.3 +rm -rf ../../../v0.3.1 +rm -rf ../../../v0.3.3 +rm -rf ../../../v0.3.9 +rm -rf ../../../v0.20.3 +rm -rf ../../../versions +rm -f ../../../alias/stable +rm -f ../../../alias/unstable diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm alias\" should create a file in the alias directory." "b/_nodejs/.nvm/test/fast/Running \"nvm alias\" should create a file in the alias directory." new file mode 100755 index 0000000..1ff49f5 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm alias\" should create a file in the alias directory." @@ -0,0 +1,9 @@ +#!/bin/sh + +set -ex + +\. ../../nvm.sh + +nvm alias test v0.1.2 + +[ "$(cat "$(nvm_alias_path)/test")" = "v0.1.2" ] diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm current\" should display current nvm environment." "b/_nodejs/.nvm/test/fast/Running \"nvm current\" should display current nvm environment." new file mode 100755 index 0000000..1d4d19b --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm current\" should display current nvm environment." @@ -0,0 +1,11 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +nvm deactivate 2>&1 + +[ "$(nvm current)" = "system" ] || [ "$(nvm current)" = "none" ] || die '"nvm current" did not report "system" or "none" when deactivated' diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." "b/_nodejs/.nvm/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." new file mode 100755 index 0000000..5cb5594 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm deactivate\" should unset the nvm environment variables." @@ -0,0 +1,23 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh +\. ../common.sh + +make_fake_node v0.2.3 + +[ `expr $PATH : ".*v0.2.3/.*/bin.*"` = 0 ] || echo "WARNING: Unexpectedly found v0.2.3 already active" >&2 + +nvm use --delete-prefix v0.2.3 || die "Failed to activate v0.2.3" +[ `expr "$PATH" : ".*v0.2.3/.*/bin.*"` != 0 ] || die "PATH not set up properly" +[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules.*"` = 0 ] || die "NODE_PATH should not contain (npm root -g)" +# ^ note: NODE_PATH should not contain `npm root -g` since globals should not be requireable +[ `expr "$NVM_BIN" : ".*v0.2.3/bin"` != 0 ] || die "NODE_BIN should contain bin directory path" + +nvm deactivate || die "Failed to deactivate v0.2.3" +[ `expr "$PATH" : ".*v0.2.3/.*/bin.*"` = 0 ] || die "PATH not cleaned properly" +[ `expr "$NODE_PATH" : ".*v0.2.3/.*/lib/node_modules.*"` = 0 ] || die "NODE_PATH not cleaned properly" +[ "_$NVM_BIN" = "_" ] || die "NVM_BIN should be unset: got '$NVM_BIN'" diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" "b/_nodejs/.nvm/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" new file mode 100755 index 0000000..41016da --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm install\" with \"--reinstall-packages-from\" requires a valid version" @@ -0,0 +1,57 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; cleanup ; exit 1; } +cleanup () { + rm -rf "${NVM_DIR}/v0.10.4" +} + +\. ../../nvm.sh +\. ../common.sh + +make_fake_node v0.10.4 + +nvm deactivate >/dev/null 2>&1 + +set +ex # needed for stderr +INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.11 2>&1)" +set -ex +EXPECTED_ERROR_MSG="If --reinstall-packages-from is provided, it must point to an installed version of node." +[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ + || die ""nvm install --reinstall-packages-from" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" + +set +e # TODO: fix +INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.11 >/dev/null 2>&1; echo $?)" +set -e +[ $INSTALL_EXIT_CODE -eq 5 ] \ + || die ""nvm install --reinstall-packages-from" should exit with code 5 when given an uninstalled version, got ${INSTALL_EXIT_CODE}" + +set +ex # needed for stderr +INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 2>&1)" +set -ex +EXPECTED_ERROR_MSG="You can't reinstall global packages from the same version of node you're installing." +[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ + || die ""nvm install --reinstall-packages-from" should fail when given the same version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" + +set +e # TODO: fix +INSTALL_EXIT_CODE="$(nvm install v0.10.5 --reinstall-packages-from=0.10.5 >/dev/null 2>&1; echo $?)" +set -e +[ $INSTALL_EXIT_CODE -eq 4 ] \ + || die ""nvm install --reinstall-packages-from" should exit with code 4 when given the same version, got $INSTALL_EXIT_CODE" + +set +ex # needed for stderr +INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from 2>&1)" +set -ex +EXPECTED_ERROR_MSG='If --reinstall-packages-from is provided, it must point to an installed version of node using `=`.' +[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ + || die ""nvm install --reinstall-packages-from" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" + +set +ex # needed for stderr +INSTALL_ERROR_MSG="$(nvm install v0.10.5 --reinstall-packages-from= 2>&1)" +set -ex +EXPECTED_ERROR_MSG="If --reinstall-packages-from is provided, it must point to an installed version of node." +[ "~$INSTALL_ERROR_MSG" = "~$EXPECTED_ERROR_MSG" ] \ + || die ""nvm install --reinstall-packages-from" should fail when given an uninstalled version: expected '$EXPECTED_ERROR_MSG', got '$INSTALL_ERROR_MSG'" + +cleanup diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm install\" with an invalid version fails nicely" "b/_nodejs/.nvm/test/fast/Running \"nvm install\" with an invalid version fails nicely" new file mode 100755 index 0000000..6b28d6d --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm install\" with an invalid version fails nicely" @@ -0,0 +1,13 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +set +ex # needed for stderr +OUTPUT="$(nvm install invalid.invalid 2>&1)" +set -ex +EXPECTED_OUTPUT="Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "nvm installing an invalid version did not print a nice error message" diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm unalias\" should remove the alias file." "b/_nodejs/.nvm/test/fast/Running \"nvm unalias\" should remove the alias file." new file mode 100755 index 0000000..2781f57 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm unalias\" should remove the alias file." @@ -0,0 +1,13 @@ +#!/bin/sh + +set -ex + +ALIAS_PATH="../../alias" + +echo v0.1.2 > "${ALIAS_PATH}/test" + +\. ../../nvm.sh + +nvm unalias test + +! [ -e "${ALIAS_PATH}/test" ] diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." "b/_nodejs/.nvm/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." new file mode 100755 index 0000000..9d5fa1b --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm uninstall\" should remove the appropriate directory." @@ -0,0 +1,12 @@ +#!/bin/sh + +set -ex + +\. ../../nvm.sh +\. ../common.sh + +make_fake_node v0.0.1 + +nvm uninstall v0.0.1 + +[ ! -d 'v0.0.1' ] diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" "b/_nodejs/.nvm/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" new file mode 100755 index 0000000..23f6f54 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm uninstall\" with incorrect file permissions fails nicely" @@ -0,0 +1,14 @@ +#!/bin/sh + +set -ex + +\. ../../nvm.sh +\. ../common.sh + +make_fake_node v0.0.1 +sudo touch ""$(nvm_version_path v0.0.1)"/sudo" + +RETURN_MESSAGE="$(nvm uninstall v0.0.1 2>&1 || echo)" +CHECK_FOR="Cannot uninstall, incorrect permissions on installation folder" + +[ "${RETURN_MESSAGE#*$CHECK_FOR}" != "$RETURN_MESSAGE" ] || exit 1 diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm unload\" should unset all function and variables." "b/_nodejs/.nvm/test/fast/Running \"nvm unload\" should unset all function and variables." new file mode 100755 index 0000000..516c4f0 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm unload\" should unset all function and variables." @@ -0,0 +1,30 @@ +#!/bin/sh + +set -ex + +BEFORE="./before.tmp" +AFTER="./after.tmp" + +cleanup () { echo rm -f "${BEFORE}" "${AFTER}"; } +die () { echo "$@" ; cleanup ; exit 1; } + +typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${BEFORE}" +env | grep -v PATH= | grep -v IFS= | grep -v NVM_ | sort >> "${BEFORE}" + +set +e # TODO: fix +\. ../../nvm.sh +set -e + +type nvm > /dev/null 2>&1 || die "nvm not loaded" + +nvm unload + +typeset -f | awk '/ \(\) $/ && !/^main / {print $1}' > "${AFTER}" +env | grep -v PATH= | grep -v IFS= | sort >> "${AFTER}" + +! type nvm > /dev/null 2>&1 || die "nvm not unloaded" + +DIFF="$(diff "${BEFORE}" "${AFTER}" ||:)" +[ -z "${DIFF}" ] || die "function pollution found: ${DIFF}" + +cleanup diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" "b/_nodejs/.nvm/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" new file mode 100755 index 0000000..2b9fc92 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm use foo\" where \"foo\" is circular aborts" @@ -0,0 +1,39 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + rm -rf "$(nvm_alias_path)/foo" +} + +\. ../../nvm.sh + +nvm_make_alias foo foo + +set +ex # needed for stderr +OUTPUT="$(nvm use foo 2>&1)" +set -ex +EXPECTED_OUTPUT='The alias "foo" leads to an infinite loop. Aborting.' +[ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] \ + || die "'nvm use foo' did not output >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +set +ex # needed for stderr +EXIT_CODE="$(nvm use foo 2>/dev/null ; echo $?)" +set -ex +[ "_$EXIT_CODE" = "_8" ] || die "Expected exit code 8; got ${EXIT_CODE}" + +set +ex # needed for stderr +OUTPUT="$(nvm use --silent foo 2>&1)" +set -ex +EXPECTED_OUTPUT='' +[ "_${OUTPUT}" = "_${EXPECTED_OUTPUT}" ] \ + || die "'nvm use --silent foo' did not output >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +set +ex # needed for stderr +EXIT_CODE="$(nvm use --silent foo 2>/dev/null ; echo $?)" +set -ex +[ $EXIT_CODE -eq 8 ] || die "Expected exit code 8 from 'nvm use --silent foo'; got ${EXIT_CODE}" + +cleanup diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm use iojs\" uses latest io.js version" "b/_nodejs/.nvm/test/fast/Running \"nvm use iojs\" uses latest io.js version" new file mode 100755 index 0000000..fafc9c7 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm use iojs\" uses latest io.js version" @@ -0,0 +1,35 @@ +#!/bin/sh + +set -ex + +\. ../common.sh + +die () { echo "$@" ; cleanup ; exit 1; } + +VERSION="v3.99.0" + +cleanup() { + unset -f make_echo cleanup + rm -rf "$(nvm_version_path "iojs-${VERSION}")" +} + +\. ../../nvm.sh + +nvm deactivate || die "unable to deactivate; current: >$(nvm current)<" + +make_fake_iojs "${VERSION}" || die "unable to make_fake_iojs ${VERSION}" + +IOJS_VERSION="$(nvm_version iojs)" +[ -n "${IOJS_VERSION}" ] || die 'expected an io.js version; got none' + +EXPECTED_OUTPUT="$(nvm_add_iojs_prefix ${VERSION})" +[ "${IOJS_VERSION}" = "${EXPECTED_OUTPUT}" ] || die "iojs version was not >${EXPECTED_OUTPUT}; got >${IOJS_VERSION}<" + +nvm use --delete-prefix iojs || die '`nvm use iojs` failed' + +CURRENT="$(nvm current)" +echo "current: ${CURRENT}" + +[ "${CURRENT}" = "${IOJS_VERSION}" ] || die "expected >${IOJS_VERSION}<; got >${CURRENT}<" + +cleanup diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm use system\" should work as expected" "b/_nodejs/.nvm/test/fast/Running \"nvm use system\" should work as expected" new file mode 100755 index 0000000..be3d11e --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm use system\" should work as expected" @@ -0,0 +1,44 @@ +#!/bin/sh + +set -eux + +cleanup() { + unset -f nvm_has_system_node nvm_print_npm_version +} +die() { echo "$@" ; cleanup ; exit 1; } + +\. ../../nvm.sh + +nvm_has_system_node() { return 0; } +nvm_print_npm_version() { command printf ' (npm v1.2.3)'; } + +EXPECTED_OUTPUT="Now using system version of node: $(node -v)$(nvm_print_npm_version)" +set +x # since stderr is needed +OUTPUT="$(nvm use system 2>&1)" +set -x +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node. Got >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +EXPECTED_OUTPUT="" +set +x # since stderr is needed +OUTPUT="$(nvm use --silent system 2>&1 | tail -1)" +set -x +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Could not use system version of node or --silent was not silent" + +nvm_has_system_node() { return 1; } +nvm_print_npm_version() { command printf ''; } + +EXPECTED_OUTPUT="System version of node not found." +set +x # since stderr is needed +OUTPUT="$(nvm use system 2>&1 | tail -1)" +set -x +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found" + +nvm use system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found" +EXPECTED_OUTPUT="" +set +x # since stderr is needed +OUTPUT="$(nvm use --silent system 2>&1 | tail -1)" +set -x +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "Did not report error, system node not found or --silent was not silent" +nvm use --silent system 2>&1 > /dev/null || [ $? -eq 127 ] || die "Did not return error code, system node not found or --silent was not silent" + +cleanup diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" "b/_nodejs/.nvm/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" new file mode 100755 index 0000000..fc1a086 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm use x\" should create and change the \"current\" symlink" @@ -0,0 +1,36 @@ +#!/bin/sh + +set -ex + +export NVM_SYMLINK_CURRENT=true +\. ../../nvm.sh +\. ../common.sh + +rm -rf "${NVM_DIR}/v0.10.29" +make_fake_node v0.10.29 +nvm use --delete-prefix 0.10.29 +rm -rf "${NVM_DIR}/v0.10.29" + +if [ ! -L "${NVM_DIR}/current" ];then + echo "Expected 'current' symlink to be created!" + exit 1 +fi + +oldLink="$(readlink "${NVM_DIR}/current")" + +if [ "$(basename "${oldLink}")" != 'v0.10.29' ];then + echo "Expected 'current' to point to v0.10.29 but was ${oldLink}" + exit 1 +fi + +rm -rf "${NVM_DIR}/v0.11.13" +make_fake_node v0.11.13 +nvm use --delete-prefix 0.11.13 +rm -rf "${NVM_DIR}/v0.11.13" + +newLink="$(readlink "${NVM_DIR}/current")" + +if [ "$(basename "${newLink}")" != 'v0.11.13' ];then + echo "Expected 'current' to point to v0.11.13 but was $newLink" + exit 1 +fi diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" "b/_nodejs/.nvm/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" new file mode 100755 index 0000000..1450659 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm use x\" should not create the \"current\" symlink if $NVM_SYMLINK_CURRENT is false" @@ -0,0 +1,86 @@ +#!/bin/sh + +set -ex + +\. ../../nvm.sh +\. ../common.sh + +TEST_NODE_VERSION="v0.10.29" + +TEST_COUNT=0 +TEST_PASSED=0 +TEST_FAILED=0 + +registerExpectedSymlink() { + registerResult ${1} +} + +registerExpectedNoSymlink() { + [ $1 -ne 0 ] + registerResult $? +} + +registerResult() { + result="${1}" + + TEST_COUNT=$(($TEST_COUNT + 1)) + + [ ${result} -eq 0 ] \ + && TEST_PASSED=$(($TEST_PASSED + 1)) \ + || TEST_FAILED=$(($TEST_FAILED + 1)) +} + +cleanup() { + rm -rf "${NVM_DIR}/${TEST_NODE_VERSION}" + rm -f "${NVM_DIR}/current" +} + +runNvmUse() { + make_fake_node "$TEST_NODE_VERSION" + nvm use --delete-prefix "${TEST_NODE_VERSION}" > /dev/null 2>&1 + rm -rf "${NVM_DIR}/${TEST_NODE_VERSION}" +} + +isCurrentSymlinkPresent() { + [ -L "${NVM_DIR}/current" ] +} + +NVM_SYMLINK_CURRENT=false +cleanup +runNvmUse +isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=false!" +registerExpectedNoSymlink $? + +NVM_SYMLINK_CURRENT=true +cleanup +runNvmUse +isCurrentSymlinkPresent || echo >&2 "Expected 'current' symlink to be created when NVM_SYMLINK_CURRENT=true!" +registerExpectedSymlink $? + +NVM_SYMLINK_CURRENT=garbagevalue +cleanup +runNvmUse +isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT contains a string!" +registerExpectedNoSymlink $? + +NVM_SYMLINK_CURRENT=0 +cleanup +runNvmUse +isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=0!" +registerExpectedNoSymlink $? + +NVM_SYMLINK_CURRENT=1 +cleanup +runNvmUse +isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT=1!" +registerExpectedNoSymlink $? + +unset NVM_SYMLINK_CURRENT +cleanup +runNvmUse +isCurrentSymlinkPresent && echo >&2 "Expected 'current' symlink not to be created when NVM_SYMLINK_CURRENT has been unset (default behaviour)!" +registerExpectedNoSymlink $? + +cleanup + +[ $TEST_FAILED -ne 0 ] && echo "${TEST_COUNT} tested, ${TEST_PASSED} passed, ${TEST_FAILED} failed" && exit 1 || true diff --git "a/_nodejs/.nvm/test/fast/Running \"nvm use\" should drop CR char automatically." "b/_nodejs/.nvm/test/fast/Running \"nvm use\" should drop CR char automatically." new file mode 100755 index 0000000..3889f47 --- /dev/null +++ "b/_nodejs/.nvm/test/fast/Running \"nvm use\" should drop CR char automatically." @@ -0,0 +1,33 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset VERSION1 VERSION2 VERSION3 + rm .nvmrc +} + +\. ../../nvm.sh + +# normal .nvmrc +printf '0.999.0\n' > .nvmrc +nvm_rc_version +VERSION1="${NVM_RC_VERSION}" + +# .nvmrc with CR char +printf '0.999.0\r\n' > .nvmrc +nvm_rc_version +VERSION2="${NVM_RC_VERSION}" + +[ "${VERSION1}" = "${VERSION2}" ] + +# .nvmrc without any newline char +printf '0.999.0' > .nvmrc +nvm_rc_version +VERSION3="${NVM_RC_VERSION}" + +[ "${VERSION1}" = "${VERSION3}" ] + +cleanup diff --git a/_nodejs/.nvm/test/fast/Sourcing nvm.sh should make the nvm command available. b/_nodejs/.nvm/test/fast/Sourcing nvm.sh should make the nvm command available. new file mode 100755 index 0000000..e74f347 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Sourcing nvm.sh should make the nvm command available. @@ -0,0 +1,7 @@ +#!/bin/sh + +set -ex + +\. ../../nvm.sh + +nvm diff --git a/_nodejs/.nvm/test/fast/Sourcing nvm.sh should not modify parameters of caller b/_nodejs/.nvm/test/fast/Sourcing nvm.sh should not modify parameters of caller new file mode 100755 index 0000000..2053b73 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Sourcing nvm.sh should not modify parameters of caller @@ -0,0 +1,7 @@ +#!/bin/sh + +set -ex + +set -- yes +\. ../../nvm.sh +[ "$1" = yes ] diff --git a/_nodejs/.nvm/test/fast/Unit tests/iojs_version_has_solaris_binary b/_nodejs/.nvm/test/fast/Unit tests/iojs_version_has_solaris_binary new file mode 100755 index 0000000..fc0e119 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/iojs_version_has_solaris_binary @@ -0,0 +1,17 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +assert_not_ok iojs_version_has_solaris_binary "" +assert_not_ok iojs_version_has_solaris_binary "foo" +assert_not_ok iojs_version_has_solaris_binary "v1.1.0" + +assert_ok iojs_version_has_solaris_binary "v3.3.1" +assert_ok iojs_version_has_solaris_binary "iojs-v3.3.1" +assert_ok iojs_version_has_solaris_binary "v3.3.2" +assert_ok iojs_version_has_solaris_binary "iojs-v3.3.2" +assert_ok iojs_version_has_solaris_binary "v3.4.1" +assert_ok iojs_version_has_solaris_binary "iojs-v3.4.1" diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/LTS_names.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/LTS_names.txt new file mode 100644 index 0000000..b814a02 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/LTS_names.txt @@ -0,0 +1,5 @@ +erbium +dubnium +carbon +boron +argon diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/iojs.org-dist-index.tab b/_nodejs/.nvm/test/fast/Unit tests/mocks/iojs.org-dist-index.tab new file mode 100644 index 0000000..8589bb9 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/iojs.org-dist-index.tab @@ -0,0 +1,42 @@ +version date files npm v8 uv zlib openssl modules +v3.3.1 2015-09-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.3 4.4.63.30 1.7.4 1.2.8 1.0.2d 45 +v3.3.0 2015-09-02 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.3 4.4.63.30 1.7.3 1.2.8 1.0.2d 45 +v3.2.0 2015-08-25 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.3 4.4.63.26 1.6.1 1.2.8 1.0.2d 45 +v3.1.0 2015-08-19 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.3 4.4.63.26 1.6.1 1.2.8 1.0.2d 45 +v3.0.0 2015-08-04 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.3 4.4.63.26 1.6.1 1.2.8 1.0.2d 45 +v2.5.0 2015-07-28 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.2 4.2.77.21 1.6.1 1.2.8 1.0.2d 44 +v2.4.0 2015-07-17 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.13.0 4.2.77.20 1.6.1 1.2.8 1.0.2d 44 +v2.3.4 2015-07-12 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.12.1 4.2.77.20 1.6.1 1.2.8 1.0.2d 44 +v2.3.3 2015-07-04 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.3 4.2.77.20 1.6.1 1.2.8 1.0.2c 44 +v2.3.2 2015-07-02 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.3 4.2.77.20 1.6.1 1.2.8 1.0.2c 44 +v2.3.1 2015-06-23 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.3 4.2.77.20 1.6.1 1.2.8 1.0.2c 44 +v2.3.0 2015-06-13 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.1 4.2.77.20 1.6.1 1.2.8 1.0.2c 44 +v2.2.1 2015-06-01 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.0 4.2.77.20 1.5.0 1.2.8 1.0.2a 44 +v2.2.0 2015-06-01 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.11.0 4.2.77.20 1.5.0 1.2.8 1.0.2a 44 +v2.1.0 2015-05-24 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.10.1 4.2.77.20 1.5.0 1.2.8 1.0.2a 44 +v2.0.2 2015-05-15 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.2.77.20 1.5.0 1.2.8 1.0.2a 44 +v2.0.1 2015-05-08 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.2.77.20 1.5.0 1.2.8 1.0.2a 44 +v2.0.0 2015-05-04 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.2.77.18 1.4.2 1.2.8 1.0.2a 44 +v1.8.4 2015-07-12 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.1.0.27 1.4.2 1.2.8 1.0.2d 43 +v1.8.3 2015-07-04 headers,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.1.0.27 1.4.2 1.2.8 1.0.2c 43 +v1.8.2 2015-05-18 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.9.0 4.1.0.27 1.4.2 1.2.8 1.0.2a 43 +v1.8.1 2015-04-21 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.8.3 4.1.0.27 1.4.2 1.2.8 1.0.2a 43 +v1.7.1 2015-04-17 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.6 4.1.0.27 1.4.2 1.2.8 1.0.1m 43 +v1.6.4 2015-04-06 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.5 4.1.0.27 1.4.2 1.2.8 1.0.1m 43 +v1.6.3 2015-03-31 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.4 4.1.0.27 1.4.2 1.2.8 1.0.1m 43 +v1.6.2 2015-03-23 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.1 4.1.0.25 1.4.2 1.2.8 1.0.1m 43 +v1.6.1 2015-03-20 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.1 4.1.0.21 1.4.2 1.2.8 1.0.1m 43 +v1.6.0 2015-03-20 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.1 4.1.0.21 1.4.2 1.2.8 1.0.1m 43 +v1.5.1 2015-03-09 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.0 4.1.0.21 1.4.2 1.2.8 1.0.1k 43 +v1.5.0 2015-03-06 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.7.0 4.1.0.21 1.4.2 1.2.8 1.0.1k 43 +v1.4.3 2015-03-03 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.6.1 4.1.0.21 1.4.2 1.2.8 1.0.1k 43 +v1.4.2 2015-02-28 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.6.1 4.1.0.21 1.4.2 1.2.8 1.0.1k 43 +v1.4.1 2015-02-27 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.6.0 4.1.0.21 1.4.2 1.2.8 1.0.1k 43 +v1.3.0 2015-02-20 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.5.1 4.1.0.14 1.4.0 1.2.8 1.0.1k 43 +v1.2.0 2015-02-11 linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.5.1 4.1.0.14 1.4.0 1.2.8 1.0.1k 43 +v1.1.0 2015-02-03 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.4.1 4.1.0.14 1.3.0 1.2.8 1.0.1k 43 +v1.0.4 2015-01-24 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.3.0 4.1.0.12 1.2.1 1.2.8 1.0.1k 42 +v1.0.3 2015-01-20 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.2.0 4.1.0.7 1.2.1 1.2.8 1.0.1k 42 +v1.0.2 2015-01-16 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.1.18 3.31.74.1 1.2.1 1.2.8 1.0.1k 42 +v1.0.1 2015-01-14 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.1.18 3.31.74.1 1.2.0 1.2.8 1.0.1k 42 +v1.0.0 2015-01-14 linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.1.18 3.31.74.1 1.2.0 1.2.8 1.0.1k 42 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab b/_nodejs/.nvm/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab new file mode 100644 index 0000000..e86370e --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nodejs.org-dist-index.tab @@ -0,0 +1,497 @@ +version date files npm v8 uv zlib openssl modules lts security +v13.10.0 2020-03-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.9.0 2020-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.8.0 2020-02-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - true +v13.7.0 2020-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - - +v13.6.0 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.5.0 2019-12-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.4.0 2019-12-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - true +v13.3.0 2019-12-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.0 2019-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 79 - - +v13.1.0 2019-11-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.1 2019-10-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.0 2019-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v12.16.1 2020-02-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.8.279.23 1.34.0 1.2.11 1.1.1d 72 Erbium - +v12.16.0 2020-02-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.8.279.23 1.34.0 1.2.11 1.1.1d 72 Erbium - +v12.15.0 2020-02-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium true +v12.14.1 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium - +v12.14.0 2019-12-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium true +v12.13.1 2019-11-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.7.299.13 1.33.1 1.2.11 1.1.1d 72 Erbium - +v12.13.0 2019-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 Erbium - +v12.12.0 2019-10-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 - - +v12.11.1 2019-10-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.11.0 2019-09-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.10.0 2019-09-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.6.303.29 1.31.0 1.2.11 1.1.1c 72 - - +v12.9.1 2019-08-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.29 1.31.0 1.2.11 1.1.1c 72 - - +v12.9.0 2019-08-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.29 1.31.0 1.2.11 1.1.1c 72 - - +v12.8.1 2019-08-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.5.288.22 1.30.1 1.2.11 1.1.1c 72 - true +v12.8.0 2019-08-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.5.288.22 1.30.1 1.2.11 1.1.1c 72 - - +v12.7.0 2019-07-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 72 - - +v12.6.0 2019-07-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 72 - - +v12.5.0 2019-06-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 72 - - +v12.4.0 2019-06-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v12.3.1 2019-05-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v12.3.0 2019-05-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v12.2.0 2019-05-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v12.1.0 2019-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v12.0.0 2019-04-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v11.15.0 2019-04-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.27.0 1.2.11 1.1.1b 67 - - +v11.14.0 2019-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.27.0 1.2.11 1.1.1b 67 - - +v11.13.0 2019-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.27.0 1.2.11 1.1.1b 67 - - +v11.12.0 2019-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.26.0 1.2.11 1.1.1b 67 - - +v11.11.0 2019-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.26.0 1.2.11 1.1.1a 67 - - +v11.10.1 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.26.0 1.2.11 1.1.1a 67 - true +v11.10.0 2019-02-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.0.276.38 1.26.0 1.2.11 1.1.1a 67 - - +v11.9.0 2019-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.0.276.38 1.25.0 1.2.11 1.1.1a 67 - - +v11.8.0 2019-01-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.0.276.38 1.25.0 1.2.11 1.1.0j 67 - - +v11.7.0 2019-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.0.276.38 1.24.1 1.2.11 1.1.0j 67 - - +v11.6.0 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.0.276.38 1.24.1 1.2.11 1.1.0j 67 - - +v11.5.0 2018-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v11.4.0 2018-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v11.3.0 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0j 67 - true +v11.2.0 2018-11-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - +v11.1.0 2018-10-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0 2018-10-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v10.19.0 2020-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium true +v10.18.1 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium - +v10.18.0 2019-12-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium true +v10.17.0 2019-10-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 6.8.275.32 1.28.0 1.2.11 1.1.1d 64 Dubnium - +v10.16.3 2019-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.2 2019-08-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.1 2019-07-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.0 2019-05-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.15.3 2019-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium true +v10.15.1 2019-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.0 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.2 2018-12-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.1 2018-11-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.0 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium true +v10.13.0 2018-10-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.12.0 2018-10-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.11.0 2018-09-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.0 2018-09-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0 2018-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 64 - - +v10.8.0 2018-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.0 2018-07-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.0 2018-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.0 2018-06-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.0 2018-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v10.3.0 2018-05-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.2.1 2018-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.2.0 2018-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.1.0 2018-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.0 2018-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v9.11.2 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.11.1 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.11.0 2018-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - true +v9.9.0 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.0 2018-03-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.1 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.0 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.6.1 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.6.0 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.5.0 2018-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.4.0 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.3.0 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.2.1 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2n 59 - - +v9.2.0 2017-11-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v9.1.0 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v9.0.0 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v8.17.0 2019-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 6.2.414.78 1.23.2 1.2.11 1.0.2s 57 Carbon true +v8.16.2 2019-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.78 1.23.2 1.2.11 1.0.2s 57 Carbon - +v8.16.1 2019-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.77 1.23.2 1.2.11 1.0.2r 57 Carbon true +v8.16.0 2019-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.77 1.23.2 1.2.11 1.0.2r 57 Carbon - +v8.15.1 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.75 1.23.2 1.2.11 1.0.2r 57 Carbon true +v8.15.0 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.75 1.23.2 1.2.11 1.0.2q 57 Carbon - +v8.14.1 2018-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.75 1.23.2 1.2.11 1.0.2q 57 Carbon - +v8.14.0 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.72 1.23.2 1.2.11 1.0.2q 57 Carbon true +v8.13.0 2018-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.72 1.23.2 1.2.11 1.0.2p 57 Carbon - +v8.12.0 2018-09-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.2.414.66 1.19.2 1.2.11 1.0.2p 57 Carbon - +v8.11.4 2018-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.54 1.19.1 1.2.11 1.0.2p 57 Carbon true +v8.11.3 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.54 1.19.1 1.2.11 1.0.2o 57 Carbon - +v8.11.2 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.54 1.19.1 1.2.11 1.0.2o 57 Carbon - +v8.11.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2o 57 Carbon - +v8.11.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2o 57 Carbon true +v8.10.0 2018-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.50 1.19.1 1.2.11 1.0.2n 57 Carbon - +v8.9.4 2018-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.1.534.50 1.15.0 1.2.11 1.0.2n 57 Carbon - +v8.9.3 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.48 1.15.0 1.2.11 1.0.2n 57 Carbon true +v8.9.2 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.48 1.15.0 1.2.11 1.0.2m 57 Carbon - +v8.9.1 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.47 1.15.0 1.2.11 1.0.2m 57 Carbon - +v8.9.0 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon - +v8.8.1 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.8.0 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.7.0 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.6.0 2017-09-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.5.0 2017-09-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.4.0 2017-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.0 2017-08-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.0 2017-07-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.1.4 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - true +v8.1.3 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.2 2017-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.1 2017-06-13 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.0 2017-06-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.0.0 2017-05-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 57 - - +v7.10.1 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - true +v7.10.0 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.9.0 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.8.0 2017-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.4 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.42 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.3 2017-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.2 2017-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.1 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.0 2017-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.6.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 51 - - +v7.5.0 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.4.500.48 1.10.2 1.2.8 1.0.2k 51 - - +v7.4.0 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v7.3.0 2016-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v7.2.1 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v7.2.0 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v7.1.0 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v7.0.0 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - - +v6.17.1 2019-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2r 48 Boron - +v6.17.0 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2r 48 Boron true +v6.16.0 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2q 48 Boron - +v6.15.1 2018-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2q 48 Boron - +v6.15.0 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2q 48 Boron true +v6.14.4 2018-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2p 48 Boron true +v6.14.3 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron - +v6.14.2 2018-04-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron - +v6.14.1 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron - +v6.14.0 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2o 48 Boron true +v6.13.1 2018-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2n 48 Boron - +v6.13.0 2018-02-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.16.1 1.2.11 1.0.2n 48 Boron - +v6.12.3 2018-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.111 1.15.0 1.2.11 1.0.2n 48 Boron - +v6.12.2 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.109 1.15.0 1.2.11 1.0.2n 48 Boron true +v6.12.1 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.109 1.15.0 1.2.11 1.0.2m 48 Boron - +v6.12.0 2017-11-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.15.0 1.2.11 1.0.2m 48 Boron - +v6.11.5 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.11.0 1.2.11 1.0.2l 48 Boron true +v6.11.4 2017-10-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.108 1.11.0 1.2.11 1.0.2l 48 Boron - +v6.11.3 2017-09-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.107 1.11.0 1.2.11 1.0.2l 48 Boron - +v6.11.2 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.103 1.11.0 1.2.11 1.0.2l 48 Boron - +v6.11.1 2017-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.103 1.11.0 1.2.11 1.0.2k 48 Boron true +v6.11.0 2017-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.102 1.11.0 1.2.11 1.0.2k 48 Boron - +v6.10.3 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.101 1.9.1 1.2.11 1.0.2k 48 Boron - +v6.10.2 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.98 1.9.1 1.2.11 1.0.2k 48 Boron - +v6.10.1 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.95 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.10.0 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.93 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.9.5 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.9.4 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.3 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.2 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.1.281.88 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.1 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.0 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.8.1 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - - +v6.8.0 2016-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - - +v6.7.0 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.6.0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.0 2016-08-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.0 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.0 2016-07-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v6.2.2 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v6.2.1 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v6.2.0 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v6.1.0 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v6.0.0 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v5.12.0 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.32 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.1 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.0 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.1 2016-04-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.0 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.9.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.9.0 2016-03-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.8.0 2016-03-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.7.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.1 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.0 2016-02-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.6.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.5.0 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.1 2016-01-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.0 2016-01-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.3.0 2015-12-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.2.0 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - - +v5.1.1 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - - +v5.1.0 2015-11-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.0 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - - +v4.9.1 2018-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2o 46 Argon - +v4.9.0 2018-03-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2o 46 Argon true +v4.8.7 2017-12-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2n 46 Argon true +v4.8.6 2017-11-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.53 1.9.1 1.2.11 1.0.2m 46 Argon - +v4.8.5 2017-10-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon true +v4.8.4 2017-07-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon true +v4.8.3 2017-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.47 1.9.1 1.2.11 1.0.2k 46 Argon - +v4.8.2 2017-04-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.46 1.9.1 1.2.11 1.0.2k 46 Argon - +v4.8.1 2017-03-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.46 1.9.1 1.2.8 1.0.2k 46 Argon - +v4.8.0 2017-02-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.45 1.9.1 1.2.8 1.0.2k 46 Argon - +v4.7.3 2017-01-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2k 46 Argon - +v4.7.2 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon - +v4.7.1 2017-01-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon - +v4.7.0 2016-12-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.43 1.9.1 1.2.8 1.0.2j 46 Argon - +v4.6.2 2016-11-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.11 4.5.103.42 1.9.1 1.2.8 1.0.2j 46 Argon - +v4.6.1 2016-10-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon true +v4.6.0 2016-09-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2j 46 Argon true +v4.5.0 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 2.15.9 4.5.103.37 1.9.1 1.2.8 1.0.2h 46 Argon - +v4.4.7 2016-06-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.8 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon - +v4.4.6 2016-06-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.36 1.8.0 1.2.8 1.0.2h 46 Argon - +v4.4.5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.5 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon - +v4.4.4 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2h 46 Argon - +v4.4.3 2016-04-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.1 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon - +v4.4.2 2016-04-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.15.0 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon - +v4.4.1 2016-03-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon - +v4.4.0 2016-03-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.20 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon - +v4.3.2 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2g 46 Argon - +v4.3.1 2016-02-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon - +v4.3.0 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2f 46 Argon - +v4.2.6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon - +v4.2.5 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.8.0 1.2.8 1.0.2e 46 Argon - +v4.2.4 2015-12-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.12 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon - +v4.2.3 2015-12-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2e 46 Argon - +v4.2.2 2015-11-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon - +v4.2.1 2015-10-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon - +v4.2.0 2015-10-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 Argon - +v4.1.2 2015-10-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.35 1.7.5 1.2.8 1.0.2d 46 - - +v4.1.1 2015-09-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.4 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - - +v4.1.0 2015-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.3 4.5.103.33 1.7.4 1.2.8 1.0.2d 46 - - +v4.0.0 2015-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 46 - - +v0.12.18 2017-02-22 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.11 3.28.71.20 1.6.1 1.2.8 1.0.1u 14 - - +v0.12.17 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - true +v0.12.16 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1u 14 - true +v0.12.15 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - true +v0.12.14 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.28.71.19 1.6.1 1.2.8 1.0.1t 14 - - +v0.12.13 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - - +v0.12.12 2016-03-08 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - - +v0.12.11 2016-03-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1s 14 - - +v0.12.10 2016-02-09 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1r 14 - - +v0.12.9 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - - +v0.12.8 2015-11-24 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - - +v0.12.7 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.3 3.28.71.19 1.6.1 1.2.8 1.0.1p 14 - - +v0.12.6 2015-07-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - - +v0.12.5 2015-06-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.11.2 3.28.71.19 1.6.1 1.2.8 1.0.1o 14 - - +v0.12.4 2015-05-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.10.1 3.28.71.19 1.5.0 1.2.8 1.0.1m 14 - - +v0.12.3 2015-05-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.9.1 3.28.71.19 1.5.0 1.2.8 1.0.1m 14 - - +v0.12.2 2015-03-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.7.4 3.28.73.0 1.4.2 1.2.8 1.0.1m 14 - - +v0.12.1 2015-03-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.5.1 3.28.73.0 1.0.2 1.2.8 1.0.1m 14 - - +v0.12.0 2015-02-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.5.1 3.28.73.0 1.0.2 1.2.8 1.0.1l 14 - - +v0.11.16 2015-01-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.3.0 3.28.73.0 1.0.2 1.2.8 1.0.1l 14 - - +v0.11.15 2015-01-20 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.1.6 3.28.73.0 1.0.2 1.2.8 1.0.1j 14 - - +v0.11.14 2014-08-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.0.0 3.26.33.0 1.0.0 1.2.3 1.0.1i 14 - - +v0.11.13 2014-05-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.25.30.0 0.11.25 1.2.3 1.0.1g 14 - - +v0.11.12 2014-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.22.24.19 0.11.22 1.2.3 1.0.1f 14 - - +v0.11.11 2014-01-29 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.25 3.22.24.19 0.11.18 1.2.3 1.0.1f 14 - - +v0.11.10 2013-12-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.22 3.22.24.10 0.11.17 1.2.3 1.0.1e 13 - - +v0.11.9 2013-11-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.15 3.22.24.5 0.11.15 1.2.3 1.0.1e 13 - - +v0.11.8 2013-10-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.13 3.21.18.3 0.11.14 1.2.3 1.0.1e 13 - - +v0.11.7 2013-09-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.20.17.0 0.11.13 1.2.3 1.0.1e 0x000C - - +v0.11.6 2013-08-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.8 3.20.14.1 0.11.8 1.2.3 1.0.1e 0x000C - - +v0.11.5 2013-08-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.6 3.20.11.0 0.11.7 1.2.3 1.0.1e 0x000C - - +v0.11.4 2013-07-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.3.4 3.20.2.0 0.11.5 1.2.3 1.0.1e 0x000C - - +v0.11.3 2013-06-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.25 3.19.13.0 0.11.5 1.2.3 1.0.1e 0x000C - - +v0.11.2 2013-05-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.19.0.0 0.11.2 1.2.3 1.0.1e 0x000C - - +v0.11.1 2013-04-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.18.0.0 0.11.1 1.2.3 1.0.1e 0x000C - - +v0.11.0 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.17.13.0 0.10.3 1.2.3 1.0.1e 0x000C - - +v0.10.48 2016-10-18 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 - true +v0.10.47 2016-09-27 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.11 0.10.37 1.2.8 1.0.1u 11 - true +v0.10.46 2016-06-23 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.37 1.2.8 1.0.1t 11 - true +v0.10.45 2016-05-06 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.1 3.14.5.9 0.10.36 1.2.8 1.0.1t 11 - - +v0.10.44 2016-03-31 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.15.0 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - - +v0.10.43 2016-03-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1s 11 - - +v0.10.42 2016-02-09 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1r 11 - - +v0.10.41 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - - +v0.10.40 2015-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - - +v0.10.39 2015-06-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1o 11 - - +v0.10.38 2015-03-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1m 11 - - +v0.10.37 2015-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.36 1.2.8 1.0.1l 11 - - +v0.10.36 2015-01-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1l 11 - - +v0.10.35 2014-12-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1j 11 - - +v0.10.34 2014-12-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.30 1.2.8 1.0.1j 11 - - +v0.10.33 2014-10-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.29 1.2.3 1.0.1j 11 - - +v0.10.32 2014-09-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.28 3.14.5.9 0.10.28 1.2.3 1.0.1i 11 - - +v0.10.31 2014-08-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.23 3.14.5.9 0.10.28 1.2.3 1.0.1i 11 - - +v0.10.30 2014-07-31 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.21 3.14.5.9 0.10.28 1.2.3 1.0.1h 11 - - +v0.10.29 2014-06-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.14 3.14.5.9 0.10.27 1.2.3 1.0.1h 11 - - +v0.10.28 2014-05-02 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.9 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - - +v0.10.27 2014-05-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.8 3.14.5.9 0.10.27 1.2.3 1.0.1g 11 - - +v0.10.26 2014-02-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.3 3.14.5.9 0.10.25 1.2.3 1.0.1e 11 - - +v0.10.25 2014-01-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.24 3.14.5.9 0.10.23 1.2.3 1.0.1e 11 - - +v0.10.24 2013-12-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.21 3.14.5.9 0.10.21 1.2.3 1.0.1e 11 - - +v0.10.23 2013-12-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.17 3.14.5.9 0.10.20 1.2.3 1.0.1e 11 - - +v0.10.22 2013-11-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.14 3.14.5.9 0.10.19 1.2.3 1.0.1e 11 - - +v0.10.21 2013-10-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.18 1.2.3 1.0.1e 11 - - +v0.10.20 2013-09-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - - +v0.10.19 2013-09-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.11 3.14.5.9 0.10.17 1.2.3 1.0.1e 11 - - +v0.10.18 2013-09-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.15 1.2.3 1.0.1e 11 - - +v0.10.17 2013-08-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.14 1.2.3 1.0.1e 11 - - +v0.10.16 2013-08-16 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.8 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - - +v0.10.15 2013-07-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - - +v0.10.14 2013-07-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.5 3.14.5.9 0.10.13 1.2.3 1.0.1e 11 - - +v0.10.13 2013-07-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.3.2 3.14.5.9 0.10.12 1.2.3 1.0.1e 11 - - +v0.10.12 2013-06-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.32 3.14.5.9 0.10.11 1.2.3 1.0.1e 11 - - +v0.10.11 2013-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.14.5.9 0.10.11 1.2.3 1.0.1e 11 - - +v0.10.10 2013-06-04 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.25 3.14.5.9 0.10.10 1.2.3 1.0.1e 11 - - +v0.10.9 2013-05-30 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.14.5.9 0.10.9 1.2.3 1.0.1e 11 - - +v0.10.8 2013-05-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.23 3.14.5.9 0.10.8 1.2.3 1.0.1e 11 - - +v0.10.7 2013-05-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.21 3.14.5.8 0.10.7 1.2.3 1.0.1e 11 - - +v0.10.6 2013-05-14 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - - +v0.10.5 2013-04-23 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.5 1.2.3 1.0.1e 11 - - +v0.10.4 2013-04-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.14.5.8 0.10.4 1.2.3 1.0.1e 11 - - +v0.10.3 2013-04-03 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.17 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - - +v0.10.2 2013-03-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.14.5.8 0.10.3 1.2.3 1.0.1e 0x000B - - +v0.10.1 2013-03-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.15 3.14.5.8 0.10 1.2.3 1.0.1e 0x000B - - +v0.10.0 2013-03-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - - +v0.9.12 2013-03-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.8 0.9 1.2.3 1.0.1e 0x000B - - +v0.9.11 2013-03-01 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.14.5.0 0.9 1.2.3 1.0.1e 0x000B - - +v0.9.10 2013-02-19 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.12 3.15.11.15 0.9 1.2.3 1.0.1c 0x000B - - +v0.9.9 2013-02-07 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.15.11.10 0.9 1.2.3 1.0.1c 0x000B - - +v0.9.8 2013-01-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.3 3.15.11.10 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.7 2013-01-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.2 3.15.11.7 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.6 2013-01-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.15.11.5 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.5 2012-12-30 linux-x64,linux-x86,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.70 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.4 2012-12-21 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.70 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.3 2012-10-24 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.64 3.13.7.4 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.2 2012-09-17 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.9 1.2.3 1.0.1c 0x000A - - +v0.9.1 2012-08-28 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.9 1.2.3 1.0.0f 0x000A - - +v0.9.0 2012-07-20 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.44 3.11.10.15 0.9 1.2.3 1.0.0f 1 - - +v0.8.28 2014-07-31 linux-x64,linux-x86,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - - +v0.8.27 2014-06-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - - +v0.8.26 2013-10-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.26 0.8 1.2.3 1.0.0f 1 - - +v0.8.25 2013-06-13 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.30 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.24 2013-06-03 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.24 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.23 2013-04-09 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.18 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.22 2013-03-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.14 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.21 2013-02-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.11 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.20 2013-02-15 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.11 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.19 2013-02-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.10 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.18 2013-01-18 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.2 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.17 2013-01-10 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.2.0 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.16 2012-12-12 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.69 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.15 2012-11-26 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.66 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.14 2012-10-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.13 2012-10-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.65 3.11.10.25 0.8 1.2.3 1.0.0f 1 - - +v0.8.12 2012-10-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.63 3.11.10.22 0.8 1.2.3 1.0.0f 1 - - +v0.8.11 2012-09-27 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - - +v0.8.10 2012-09-25 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.62 3.11.10.22 0.8 1.2.3 1.0.0f 1 - - +v0.8.9 2012-09-11 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.61 3.11.10.22 0.8 1.2.3 1.0.0f 1 - - +v0.8.8 2012-08-22 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 1.1.59 3.11.10.19 0.8 1.2.3 1.0.0f 1 - - +v0.8.7 2012-08-15 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.49 3.11.10.17 0.8 1.2.3 1.0.0f 1 - - +v0.8.6 2012-08-06 linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.1.48 3.11.10.17 0.8 1.2.3 1.0.0f 1 - - +v0.8.5 2012-08-02 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.46 3.11.10.17 0.8 1.2.3 1.0.0f 1 - - +v0.8.4 2012-07-24 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.45 3.11.10.17 0.8 1.2.3 1.0.0f 1 - - +v0.8.3 2012-07-17 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.43 3.11.10.15 0.8 1.2.3 1.0.0f 1 - - +v0.8.2 2012-07-09 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.36 3.11.10.14 0.8 1.2.3 1.0.0f 1 - - +v0.8.1 2012-06-29 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.33 3.11.10.12 0.8 1.2.3 1.0.0f 1 - - +v0.8.0 2012-06-22 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.32 3.11.10.10 0.8 1.2.3 1.0.0f 1 - - +v0.7.12 2012-06-19 osx-x64-pkg,src,win-x64-exe,win-x86-exe,win-x86-msi 1.1.30 3.11.10.0 0.6 1.2.3 1.0.0f 1 - - +v0.7.11 2012-06-15 osx-x64-pkg,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 1.1.26 3.11.10.0 0.6 1.2.3 1.0.0f 1 - - +v0.7.10 2012-06-11 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.25 3.9.24.31 0.6 1.2.3 1.0.0f 1 - - +v0.7.9 2012-05-29 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.23 3.11.1.0 0.6 1.2.3 1.0.0f 1 - - +v0.7.8 2012-04-18 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.18 3.9.24.9 0.6 1.2.3 1.0.0f 1 - - +v0.7.7 2012-03-30 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.15 3.9.24.7 0.6 1.2.3 0.9.8r 1 - - +v0.7.6 2012-03-13 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.8 3.9.17.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.5 2012-02-23 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.4 2012-02-14 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.1 3.9.5.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.3 2012-02-07 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.9.2.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.2 2012-02-01 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.8.9.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.1 2012-01-23 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.8.8.0 0.6 1.2.3 0.9.8r 1 - - +v0.7.0 2012-01-17 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.8.6.0 0.6 1.2.3 0.9.8r 1 - - +v0.6.21 2012-08-03 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.37 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.20 2012-07-10 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.37 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.19 2012-06-06 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.24 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.18 2012-05-14 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.21 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.17 2012-05-04 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.21 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.16 2012-04-27 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.19 3.6.6.25 0.6 1.2.3 0.9.8r 1 - - +v0.6.15 2012-04-08 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.16 3.6.6.24 0.6 1.2.3 0.9.8r 1 - - +v0.6.14 2012-03-23 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.12 3.6.6.24 0.6 1.2.3 0.9.8r 1 - - +v0.6.13 2012-03-15 osx-x64-pkg,src,win-x64-exe,win-x86-exe 1.1.9 3.6.6.24 0.6 1.2.3 0.9.8r 1 - - +v0.6.12 2012-03-02 osx-x64-pkg,src,win-x86-exe 1.1.4 3.6.6.24 0.6 1.2.3 0.9.8r 1 - - +v0.6.11 2012-02-08 osx-x64-pkg,src,win-x86-exe 1.1.1 3.6.6.20 0.6 1.2.3 0.9.8r 1 - - +v0.6.10 2012-02-03 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.20 0.6 1.2.3 0.9.8r 1 - - +v0.6.9 2012-01-27 osx-x64-pkg,src,win-x86-exe 1.1.0-3 3.6.6.19 0.6 1.2.3 0.9.8r 1 - - +v0.6.8 2012-01-20 osx-x64-pkg,src,win-x86-exe 1.1.0-2 3.6.6.19 0.6 1.2.3 0.9.8r 1 - - +v0.6.7 2012-01-07 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-10 3.6.6.15 0.6 1.2.3 0.9.8r 1 - - +v0.6.6 2011-12-15 osx-x64-pkg,src,win-x86-exe 1.1.0-beta-4 3.6.6.14 0.6 1.2.3 0.9.8r 1 - - +v0.6.5 2011-12-04 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.11 0.6 1.2.3 0.9.8r 1 - - +v0.6.4 2011-12-02 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-6 3.6.6.8 0.6 1.2.3 0.9.8r 1 - - +v0.6.3 2011-11-25 osx-x64-pkg,src,win-x86-exe 1.1.0-alpha-2 3.6.6.8 0.6 1.2.3 0.9.8r 1 - - +v0.6.2 2011-11-18 osx-x64-pkg,src,win-x86-exe - 3.6.6.8 0.6 1.2.3 0.9.8r 1 - - +v0.6.1 2011-11-11 osx-x64-pkg,src,win-x86-exe - 3.6.6.7 0.1 1.2.3 0.9.8r 1 - - +v0.6.0 2011-11-04 src,win-x86-exe - 3.6.6.6 0.1 1.2.3 0.9.8r 1 - - +v0.5.10 2011-10-22 src,win-x86-exe - 3.7.0.0 0.1 1.2.3 0.9.8r 1 - - +v0.5.9 2011-10-11 src,win-x86-exe - 3.6.4.0 0.1 1.2.3 0.9.8r 1 - - +v0.5.8 2011-09-30 src,win-x86-exe - 3.6.4.0 0.1 1.2.3 0.9.8r 1 - - +v0.5.7 2011-09-16 src,win-x86-exe - 3.6.4.0 0.1 - 0.9.8r 1 - - +v0.5.6 2011-08-26 src,win-x86-exe - 3.6.2.0 0.1 - 0.9.8r 1 - - +v0.5.5 2011-08-26 src,win-x86-exe - 3.5.8.0 0.1 - 0.9.8r 1 - - +v0.5.4 2011-08-26 src,win-x86-exe - 3.5.4.3 0.1 - - 1 - - +v0.5.3 2011-08-26 src,win-x86-exe - 3.4.14.0 0.1 - - 1 - - +v0.5.2 2011-08-26 src,win-x86-exe - 3.4.14.0 0.1 - - 1 - - +v0.5.1 2011-08-26 src,win-x86-exe - 3.4.10.0 0.1 - - 1 - - +v0.5.0 2011-08-26 src - 3.1.8.25 - - - 1 - - +v0.4.12 2011-09-15 src - 3.1.8.26 - - - 1 - - +v0.4.11 2011-08-26 src - 3.1.8.26 - - - 1 - - +v0.4.10 2011-08-26 src - 3.1.8.26 - - - 1 - - +v0.4.9 2011-08-26 src - 3.1.8.25 - - - 1 - - +v0.4.8 2011-08-26 src - 3.1.8.16 - - - 1 - - +v0.4.7 2011-08-26 src - 3.1.8.10 - - - 1 - - +v0.4.6 2011-08-26 src - 3.1.8.10 - - - 1 - - +v0.4.5 2011-08-26 src - 3.1.8.8 - - - 1 - - +v0.4.4 2011-08-26 src - 3.1.8.5 - - - 1 - - +v0.4.3 2011-08-26 src - 3.1.8.3 - - - 1 - - +v0.4.2 2011-08-26 src - 3.1.8.0 - - - 1 - - +v0.4.1 2011-08-26 src - 3.1.5.0 - - - 1 - - +v0.4.0 2011-08-26 src - 3.1.2.0 - - - 1 - - +v0.3.8 2011-08-26 src - 3.1.1.0 - - - 1 - - +v0.3.7 2011-08-26 src - 3.0.10.0 - - - 1 - - +v0.3.6 2011-08-26 src - 3.0.9.0 - - - 1 - - +v0.3.5 2011-08-26 src - 3.0.4.1 - - - 1 - - +v0.3.4 2011-08-26 src - 3.0.4.1 - - - 1 - - +v0.3.3 2011-08-26 src - 3.0.4.1 - - - 1 - - +v0.3.2 2011-08-26 src - 3.0.3.0 - - - 1 - - +v0.3.1 2011-08-26 src - 2.5.3.0 - - - 1 - - +v0.3.0 2011-08-26 src - 2.5.1.0 - - - 1 - - +v0.2.6 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.5 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.4 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.3 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.2 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.1 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.2.0 2011-08-26 src - 2.3.8.0 - - - 1 - - +v0.1.104 2011-08-26 src - 2.3.6.1 - - - - - - +v0.1.103 2011-08-26 src - 2.3.5.0 - - - - - - +v0.1.102 2011-08-26 src - 2.3.2.0 - - - - - - +v0.1.101 2011-08-26 src - 2.3.0.0 - - - - - - +v0.1.100 2011-08-26 src - 2.2.21.0 - - - - - - +v0.1.99 2011-08-26 src - 2.2.18.0 - - - - - - +v0.1.98 2011-08-26 src - 2.2.16.0 - - - - - - +v0.1.97 2011-08-26 src - 2.2.12.0 - - - - - - +v0.1.96 2011-08-26 src - 2.2.0 - - - - - - +v0.1.95 2011-08-26 src - 2.2.0 - - - - - - +v0.1.94 2011-08-26 src - 2.2.8.0 - - - - - - +v0.1.93 2011-08-26 src - 2.2.6.0 - - - - - - +v0.1.92 2011-08-26 src - 2.2.4.2 - - - - - - +v0.1.91 2011-08-26 src - 2.2.3.1 - - - - - - +v0.1.90 2011-08-26 src - 2.2.0.3 - - - - - - +v0.1.33 2011-08-26 src - 2.1.6.0 - - - - - - +v0.1.32 2011-08-26 src - 2.1.3.0 - - - - - - +v0.1.31 2011-08-26 src - 2.1.2.0 - - - - - - +v0.1.30 2011-08-26 src - 2.1.1.1 - - - - - - +v0.1.29 2011-08-26 src - 2.1.0.0 - - - - - - +v0.1.28 2011-08-26 src - 2.1.0.0 - - - - - - +v0.1.27 2011-08-26 src - 2.1.0.0 - - - - - - +v0.1.26 2011-08-26 src - 2.0.6.1 - - - - - - +v0.1.25 2011-08-26 src - 2.0.5.4 - - - - - - +v0.1.24 2011-08-26 src - 2.0.5.4 - - - - - - +v0.1.23 2011-08-26 src - 2.0.0 - - - - - - +v0.1.22 2011-08-26 src - 2.0.0 - - - - - - +v0.1.21 2011-08-26 src - 2.0.0 - - - - - - +v0.1.20 2011-08-26 src - 2.0.2.0 - - - - - - +v0.1.19 2011-08-26 src - 2.0.2.0 - - - - - - +v0.1.18 2011-08-26 src - 1.3.18.0 - - - - - - +v0.1.17 2011-08-26 src - 1.3.18.0 - - - - - - +v0.1.16 2011-08-26 src - 1.3.18.0 - - - - - - +v0.1.15 2011-08-26 src - 1.3.16.0 - - - - - - +v0.1.14 2011-08-26 src - 1.3.15.0 - - - - - - diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab b/_nodejs/.nvm/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab new file mode 100644 index 0000000..456145b --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nodejs.org-download-nightly-index.tab @@ -0,0 +1,1922 @@ +version date files npm v8 uv zlib openssl modules lts security +v14.0.0-nightly20200304de6cbd0e37 2020-03-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200303987a673395 2020-03-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202003026bcea0a383 2020-03-02 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020030111b7684522 2020-03-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002293d894d0511 2020-02-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200228331d636240 2020-02-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020022720a51b9dff 2020-02-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020022624aa9bda46 2020-02-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200225940325042b 2020-02-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200223793cfe54cd 2020-02-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002222f97e973ff 2020-02-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020022182afd85a31 2020-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002201c4e984ed9 2020-02-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200219e6c2277241 2020-02-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200218af19f4116c 2020-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002174c746a6cfd 2020-02-17 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200216a7c523e26d 2020-02-16 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020021579296dc2d0 2020-02-15 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020021413c05cd10c 2020-02-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200213e23b12e130 2020-02-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002123eba33eb07 2020-02-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200211fb437c49cf 2020-02-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200210d0413ae8f9 2020-02-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020020974291e4a7b 2020-02-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002088a14884bab 2020-02-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200207d213f21c72 2020-02-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - true +v14.0.0-nightly20200206e001710219 2020-02-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - true +v14.0.0-nightly20200204ee9e689df2 2020-02-04 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200203f7a1ef6fb5 2020-02-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202002029528f95336 2020-02-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020020122724894c9 2020-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200131a171314003 2020-01-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001305cf789e554 2020-01-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001290f8941962d 2020-01-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001287b7e7bd185 2020-01-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001278e245cd4e3 2020-01-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020012642995a3a11 2020-01-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.2 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200125725682cc50 2020-01-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020012432e7e813e9 2020-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001239f22fda646 2020-01-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001222606e1ed25 2020-01-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200121f0d2df41f8 2020-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001207d5a86cc05 2020-01-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200119b318926634 2020-01-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200118cc0748f509 2020-01-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200117cf5624c4d8 2020-01-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200116fc4e413554 2020-01-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200115e67dc1e09f 2020-01-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200114689ab46c64 2020-01-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200113a67c5dc064 2020-01-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200112f9c16b87ef 2020-01-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200111be055d103c 2020-01-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200110e468759c7d 2020-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200109aff6fffec5 2020-01-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200108a4ed3ea214 2020-01-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200107405e7b4557 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020010657a1ca99ab 2020-01-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2020010575b30c606c 2020-01-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200104d845915d46 2020-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly202001034bec6d13f9 2020-01-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200102e9695d93e3 2020-01-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20200101c052113238 2020-01-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191231e66c4deda8 2019-12-31 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912308a96d05ec7 2019-12-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191229c6822be46c 2019-12-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019122819291351bb 2019-12-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191227b46efa96cd 2019-12-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912265289f80ead 2019-12-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191225398790149d 2019-12-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191224db109e85d6 2019-12-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912235707ed21a2 2019-12-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191222312f3086c2 2019-12-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191221118b28abed 2019-12-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912209e6c2ba68a 2019-12-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912193e5967bacb 2019-12-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191218ea86f8c902 2019-12-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - true +v14.0.0-nightly20191217b376965e50 2019-12-17 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912163743fe1955 2019-12-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912153ead1c2fb7 2019-12-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191214d06efafe6b 2019-12-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191213afa9a7206c 2019-12-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191212086c7b41b2 2019-12-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191211855ca736de 2019-12-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912107629fb25f2 2019-12-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191209ba61253672 2019-12-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191208d1f4936fab 2019-12-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191207cf5ce2c9e1 2019-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191206eea5bb4160 2019-12-06 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201912051549c8e077 2019-12-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191204ff2ed3ec85 2019-12-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191203cc3f2b386c 2019-12-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191202c5fc802abc 2019-12-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019120149fb529139 2019-12-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191130246557eb11 2019-11-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191129fad952adbd 2019-11-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191128ea7a6f9dbd 2019-11-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019112773a244fcaf 2019-11-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191126a6fd2828c6 2019-11-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191125364ddd8ee6 2019-11-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019112478b7ddff1b 2019-11-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191123eb30b2c819 2019-11-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191122a18ec07406 2019-11-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201911218138e9ce50 2019-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201911209d09969f4c 2019-11-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191119c1f0e80989 2019-11-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191118850f38125c 2019-11-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191117f4061e2253 2019-11-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191116f61882bce4 2019-11-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191115c71b89eb06 2019-11-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191114ed401236f6 2019-11-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019111335ec01097b 2019-11-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191112e66a2acc4c 2019-11-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201911118ac771b809 2019-11-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly201911104b97c3addb 2019-11-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly20191109dde8fd3fab 2019-11-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.9.317.20 1.33.1 1.2.11 1.1.1d 81 - - +v14.0.0-nightly2019110855f4db183f 2019-11-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly2019110735ae49db51 2019-11-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191106b6201abacf 2019-11-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201911051f2fdc9538 2019-11-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191104bdee976d54 2019-11-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201911033a076bae9c 2019-11-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191102312c02d25e 2019-11-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201911012d8307e199 2019-11-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly2019103199247e7662 2019-10-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191030050a3b1d75 2019-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201910291d89c5d1e1 2019-10-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201910285783ed7667 2019-10-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly2019102772346bd8d4 2019-10-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191026cb36fa67d7 2019-10-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly2019102571bcd05232 2019-10-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly20191024a228e22533 2019-10-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v14.0.0-nightly201910234187fcb200 2019-10-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.9.1-nightly202003041bca7b6c70 2020-03-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.9.1-nightly20200302e6125cd53b 2020-03-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.9.1-nightly202003014d05508aa8 2020-03-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.9.1-nightly20200228f71fc9044a 2020-02-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.9.1-nightly20200219de0c6a0361 2020-02-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.8.1-nightly202002187c2d33f38f 2020-02-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.7 7.9.317.25 1.34.2 1.2.11 1.1.1d 79 - - +v13.8.1-nightly2020020671699e9f53 2020-02-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - true +v13.7.1-nightly20200122340a1bd9a0 2020-01-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - - +v13.6.1-nightly20200121cbd84c5ee1 2020-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - - +v13.6.1-nightly202001166e978f7d73 2020-01-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.6 7.9.317.25 1.34.1 1.2.11 1.1.1d 79 - - +v13.6.1-nightly202001126f95f01f95 2020-01-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.6.1-nightly202001084a702c3de2 2020-01-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.5.1-nightly2020010742d36dca90 2020-01-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.5.1-nightly20200104ca235112ae 2020-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.5.1-nightly20191219d09bca9772 2019-12-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.4.1-nightly2019121896a65e85c5 2019-12-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - true +v13.3.1-nightly20191214b3ae532392 2019-12-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.4 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.3.1-nightly20191212123327d4c1 2019-12-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.3.1-nightly201912118e16093b64 2019-12-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.3.1-nightly201912107e1dee3347 2019-12-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.34.0 1.2.11 1.1.1d 79 - - +v13.3.1-nightly20191204355b48bd06 2019-12-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.1-nightly2019120319b31c1bc5 2019-12-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.1-nightly201912029ec53cf5c1 2019-12-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.1-nightly20191201cbd50262c0 2019-12-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.1-nightly20191130f37450f580 2019-11-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.25 1.33.1 1.2.11 1.1.1d 79 - - +v13.2.1-nightly2019112294e4cbd808 2019-11-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.23 1.33.1 1.2.11 1.1.1d 79 - - +v13.1.1-nightly201911219b71534d23 2019-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.1 7.9.317.22 1.33.1 1.2.11 1.1.1d 79 - - +v13.1.1-nightly20191120c7c566023f 2019-11-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.1.1-nightly20191118a93345b7cd 2019-11-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.13.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.1.1-nightly20191106c568eb5b79 2019-11-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.1 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.2-nightly20191028e4ab6fced1 2019-10-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.2-nightly201910258b75aabee9 2019-10-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.0-nightly2019102271b342f937 2019-10-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191021a5bab21458 2019-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.33.1 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191019425357a11c 2019-10-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191018c8df5cf74a 2019-10-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191017c8df5cf74a 2019-10-17 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191016405a280cf2 2019-10-16 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly201910156afed1dc85 2019-10-15 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly201910145f80df8820 2019-10-14 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.17 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191013fce1a5198a 2019-10-13 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.15 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191012c64ed10d80 2019-10-12 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.15 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly2019101181bc7b3ba5 2019-10-11 headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.14 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191010768287489a 2019-10-10 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.14 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly201910096db45bf7de 2019-10-09 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.14 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191008064e111515 2019-10-08 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.8.279.14 1.32.0 1.2.11 1.1.1d 79 - - +v13.0.0-nightly20191007ffd22e8198 2019-10-07 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1d 78 - - +v13.0.0-nightly201910060521a98fd6 2019-10-06 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1d 78 - - +v13.0.0-nightly2019100424011de907 2019-10-04 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1d 78 - - +v13.0.0-nightly2019100388ef086e39 2019-10-03 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1d 78 - - +v13.0.0-nightly20191002ddcd2359f4 2019-10-02 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1d 78 - - +v13.0.0-nightly2019100116e47b976b 2019-10-02 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190930c42ab995c1 2019-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190929dd74b163f9 2019-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly2019092835bfe0e414 2019-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190927ccb524fa16 2019-09-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201909264d2856ed5a 2019-09-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201909257333c7163a 2019-09-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190924e078e482c5 2019-09-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201909234ef3ccbbe0 2019-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.10 1.32.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190912902c9fac19 2019-09-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190911f2e35ff691 2019-09-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190910c929b15d1d 2019-09-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190909821799024e 2019-09-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190908e585caa2be 2019-09-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190907bbcbce6071 2019-09-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly2019090672650bcf72 2019-09-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly2019090517d87d522c 2019-09-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190904a3307eac0e 2019-09-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190903d62d2b4560 2019-09-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly2019090261d973affb 2019-09-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201909019ab1e07774 2019-09-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly2019083198b718572f 2019-08-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.8 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190830c746ba4982 2019-08-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201908291d5186e657 2019-08-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201908283ae6f5e116 2019-08-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190827f96f9fbe31 2019-08-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190826627bf59e8d 2019-08-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190825b3172f834f 2019-08-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190824d5c3837061 2019-08-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly201908232fc87685d9 2019-08-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190822775048d54c 2019-08-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190821f70261fb30 2019-08-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.3 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190820317fa3a757 2019-08-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.7.299.4 1.31.0 1.2.11 1.1.1c 78 - - +v13.0.0-nightly20190819ec16fdae54 2019-08-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly2019081841637a530e 2019-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908175e3b4d6ed9 2019-08-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - true +v13.0.0-nightly2019081671b5ce5885 2019-08-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - true +v13.0.0-nightly201908158ae79c952b 2019-08-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly20190814427e5348a2 2019-08-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly20190813a49b20d324 2019-08-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly2019081215b2d13310 2019-08-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.31.0 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908118ef68e66d0 2019-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly2019081083495e7783 2019-08-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly2019080944f228c2cc 2019-08-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908080e03c449e3 2019-08-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908070b5b81c82a 2019-08-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.2 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly2019080637d27486fc 2019-08-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly20190804e3f4ec94b8 2019-08-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908032b03e1d0a5 2019-08-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly20190802452b393c1f 2019-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.6.303.28 1.30.1 1.2.11 1.1.1c 77 - - +v13.0.0-nightly201908018492acfd57 2019-08-01 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907317435dc8b2b 2019-07-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907301567461052 2019-07-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072962a809fa54 2019-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072835cb955865 2019-07-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190727147b9d9792 2019-07-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072664e4b0c0ac 2019-07-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072543e5478e2f 2019-07-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907241dc458cdd0 2019-07-24 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072303317f0e8e 2019-07-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190722b686bd79dc 2019-07-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907216948a95562 2019-07-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019072068c83f962e 2019-07-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907192fd2dd7565 2019-07-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.10.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190718ed24b8f10a 2019-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019071754fcb14467 2019-07-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190716d5737a8537 2019-07-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907156c430b48b9 2019-07-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190714e12f48ef07 2019-07-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190713cf929c04b0 2019-07-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019071286f8f4f791 2019-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190711e800f9d68a 2019-07-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190710fe4d53df51 2019-07-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190709db55c3cfc1 2019-07-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019070836fdf1aa6c 2019-07-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190707327c6734cb 2019-07-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190706c25cccf130 2019-07-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190705cdd3833bca 2019-07-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019070439a935883d 2019-07-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190703d3b10f66bd 2019-07-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201907029868126546 2019-07-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.0 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019070120d099af7a 2019-07-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.0 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201906308772da6ea8 2019-06-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.30.0 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190629334bac79eb 2019-06-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190628d9da0a9912 2019-06-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019062763a0f4cdd3 2019-06-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201906265b4a0cb149 2019-06-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190625e2d445be8f 2019-06-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190624d4549e75d4 2019-06-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190623554ffa3432 2019-06-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190622e4136c1ece 2019-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190621bfe4c9c2c0 2019-06-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190620d698983f45 2019-06-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly2019061982fe33f18a 2019-06-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly20190618779a243f86 2019-06-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1c 74 - - +v13.0.0-nightly201906179bead0ce85 2019-06-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906162b7dfbcdbe 2019-06-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly2019061552255868c5 2019-06-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906148cdc1bdad6 2019-06-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly2019061343a5170858 2019-06-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906121f143b8625 2019-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly2019061162ac84b5f8 2019-06-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906105bad51406d 2019-06-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190609abf765e33c 2019-06-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190608a18e27df9e 2019-06-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190607b31bfaddeb 2019-06-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906065c61c5d152 2019-06-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906052c76874e4c 2019-06-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190604714a32c41f 2019-06-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly201906037e18c650de 2019-06-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190602187b056408 2019-06-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.5.288.22 1.29.1 1.2.11 1.1.1b 74 - - +v13.0.0-nightly20190601aa8b820aaa 2019-06-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905311279d513b8 2019-05-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905305026db142a 2019-05-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019052912f5e0f8f8 2019-05-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190528fc7c5b9795 2019-05-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190527ac95c2f0f1 2019-05-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190526dd6481a183 2019-05-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905257d5cf572f3 2019-05-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019052477b9ce57e2 2019-05-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190523165916b1f3 2019-05-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019052247c5c3da86 2019-05-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.29.1 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905210ca9297c39 2019-05-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905201a9a577a96 2019-05-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905195112b3d9a6 2019-05-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190518af83b7963f 2019-05-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905179375088bd3 2019-05-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905169f99d4e252 2019-05-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019051553bef423f3 2019-05-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190514523a9fbcb4 2019-05-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905133309c856bc 2019-05-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190512a244b6f591 2019-05-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190511ac56dc96e3 2019-05-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.27 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905106f2bd9dcc3 2019-05-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190509e582d11913 2019-05-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905089a174db3d8 2019-05-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190507fa3eefcb83 2019-05-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905068c94d5eccd 2019-05-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190505c21693b39d 2019-05-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190504cb848b4546 2019-05-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905038dae89b396 2019-05-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190502e5c8be2bd0 2019-05-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201905014206e7c2c4 2019-05-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190430d33fddb7f4 2019-04-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201904294cf8b4212c 2019-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019042831b3dd2842 2019-04-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly20190427eca71e5a0c 2019-04-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019042608a9c4a996 2019-04-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly2019042580c0b89bbb 2019-04-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v13.0.0-nightly201904249b982feedf 2019-04-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v12.13.1-nightly20191022d9174b4cc5 2019-10-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.12.0 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 Erbium - +v12.12.1-nightly201910123f3c41cfb0 2019-10-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 - - +v12.11.2-nightly201910115fdf4a474f 2019-10-11 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 - - +v12.11.2-nightly20191010adee99883a 2019-10-10 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.13 1.32.0 1.2.11 1.1.1d 72 - - +v12.11.2-nightly20191002bbbe07a447 2019-10-02 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.11.1-nightly20190926acd08fdce5 2019-09-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.10.1-nightly20190925edd7c579e8 2019-09-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.10.1-nightly201909244dab297c5e 2019-09-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.11 1.32.0 1.2.11 1.1.1c 72 - - +v12.10.1-nightly20190923910a27122f 2019-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.11.3 7.7.299.8 1.32.0 1.2.11 1.1.1c 72 - - +v12.0.0-nightly20190423859421188b 2019-04-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.28.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190422528d100394 2019-04-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190421e9fb92dc42 2019-04-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904208d901bb44e 2019-04-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019041957ab3b56fc 2019-04-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.21 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190418d17dfc7bb1 2019-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019041709cdc37824 2019-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019041653e0f632db 2019-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904152fed83dee8 2019-04-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904141fc4255221 2019-04-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904139b6b567bc4 2019-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190412908292cf1f 2019-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190411655c90b287 2019-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019041041d5666aaa 2019-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190409bf766c1b44 2019-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904085a8c55f078 2019-04-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019040777dee25efd 2019-04-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190406de23055536 2019-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.18 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190405c86883cfac 2019-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190404e1d55a0cbc 2019-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019040398b5ba840e 2019-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201904020a5a762a16 2019-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019040166b95362df 2019-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly20190331bb98f27181 2019-03-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019033061ef9df958 2019-03-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly201903297d0e50dcfe 2019-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.4.288.13 1.27.0 1.2.11 1.1.1b 72 - - +v12.0.0-nightly2019032885546c2a04 2019-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190327ed5e69d7e6 2019-03-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly2019032651256e5d78 2019-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190325cdb87d9548 2019-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly201903248330555295 2019-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190323afdadbcff5 2019-03-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190322ee429e4b2c 2019-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190321f47adfbda5 2019-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190320d933cc4b02 2019-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190319cd9898a52a 2019-03-19 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.27.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly201903180a00933921 2019-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.26.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly201903172f9c9eebb4 2019-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.26.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly2019031622de2cfb71 2019-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.26.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190315cd8b7391dc 2019-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.3.492.25 1.26.0 1.2.11 1.1.1b 71 - - +v12.0.0-nightly20190314107c95da0d 2019-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly20190313e6fa50e953 2019-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly201903127ac904e5d2 2019-03-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly20190311a445244a0c 2019-03-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly201903106e81a959d0 2019-03-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly201903091acf3b155f 2019-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly20190308254635198a 2019-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly201903070fa11654c7 2019-03-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly20190306d38cd82513 2019-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1b 68 - - +v12.0.0-nightly2019030584ebaaa339 2019-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019030417b7fa75c3 2019-03-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019030360a148ad2e 2019-03-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190302453ed05343 2019-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190301584305841d 2019-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - true +v12.0.0-nightly201902284a3928e125 2019-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190227a1a01d3f27 2019-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190226ccd6b12fec 2019-02-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019022579a3348d14 2019-02-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902247e0ddf66b9 2019-02-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902238ebd339031 2019-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902223d2e862e52 2019-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190221042e2640e6 2019-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902207b198935d6 2019-02-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902190ebff65b65 2019-02-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190218c3d889182b 2019-02-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902173fbf55a87c 2019-02-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190216a8c3adfbda 2019-02-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902158e68dc53b3 2019-02-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019021469a8e34003 2019-02-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.26.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190213048b977d8e 2019-02-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.7.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019021293417ac995 2019-02-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902110b585457ee 2019-02-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190210e154176b7c 2019-02-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190209016c7b9c32 2019-02-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902082ea2000625 2019-02-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190207d310d8df62 2019-02-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190206686043e76e 2019-02-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190205793c63073a 2019-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190204d6a32cfe7c 2019-02-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902034deb23a2f6 2019-02-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902020f8e8f7c6b 2019-02-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201902017c9fba30ef 2019-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019013143bba40717 2019-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190130dd682cef29 2019-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190129aa8fcee7ce 2019-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201901281d60794321 2019-01-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201901277493db21b6 2019-01-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190126bbb2134e7b 2019-01-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190125399ef4f536 2019-01-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly2019012447062f12a7 2019-01-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly20190123914af23b3d 2019-01-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.1a 68 - - +v12.0.0-nightly201901222c9e12e496 2019-01-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.25.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901218b2e861da1 2019-01-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190120c1ac578881 2019-01-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901192e613a9c30 2019-01-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2019011855e0ad9ae6 2019-01-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190117228a3f840d 2019-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190116b367ab2a66 2019-01-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901152f1ae9eebb 2019-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901147f913293c1 2019-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190113c24fccf064 2019-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2019011291ef9c4c3f 2019-01-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190111eb664c3b6d 2019-01-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190110e18b461965 2019-01-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190109e54d11e2f6 2019-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901089987f1abb9 2019-01-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901077ed790e9db 2019-01-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901066c0162149b 2019-01-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190105992c8ab476 2019-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901041f1a373df0 2019-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190103b5239d9ad3 2019-01-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201901025fab50bdaf 2019-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20190101da9a4d0fb4 2019-01-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181231da13c44b0d 2018-12-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181230903630e72e 2018-12-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2018122900944c7cc2 2018-12-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2018122859fa7f1257 2018-12-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812273614157b78 2018-12-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181226ae73b73eeb 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812259391638f88 2018-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181224e7e26b2119 2018-12-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812230c1a388218 2018-12-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2018122255a1889af7 2018-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.33 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812210461e4cd9b 2018-12-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181220e5966ef60c 2018-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.1 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181219e1ab457490 2018-12-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812188828426af4 2018-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181217b54d4a68e3 2018-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812168f4b924f4a 2018-12-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812150bf7d4149c 2018-12-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2018121449f1db47e2 2018-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181213a3801e9683 2018-12-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181212f194b7f626 2018-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly2018121160ce2fd827 2018-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812104aabd7ed64 2018-12-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly201812094dc10ac7d7 2018-12-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181208b5e9086c5a 2018-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181207cbf0e5a1f4 2018-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.1.302.28 1.24.0 1.2.11 1.1.0j 68 - - +v12.0.0-nightly20181206aa943d098e 2018-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly2018120506e5afa948 2018-12-05 aix-ppc64,headers,linux-arm64,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly201812040c65314e0e 2018-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly2018120332fed93aee 2018-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly201812023fb627bead 2018-12-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181201f34ca9f783 2018-12-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181130171b8108df 2018-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181129c481799d72 2018-11-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly201811287d18e922ab 2018-11-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - true +v12.0.0-nightly2018112711c17e4bc9 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181126e958ee7a70 2018-11-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181125824f16c861 2018-11-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly20181124e0893f03c3 2018-11-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly2018112312b69f9765 2018-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0j 67 - - +v12.0.0-nightly201811229d34a1e3c0 2018-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181121d88e26de8e 2018-11-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181120b32c5f0408 2018-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811199801eb9e3a 2018-11-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181118d964d276db 2018-11-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181117344a46ad03 2018-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly2018111662d053b707 2018-11-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.24.0 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811153212f77ac6 2018-11-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly2018111412554e01f5 2018-11-14 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181113dde9b3a0d3 2018-11-13 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181112d6f52f5a38 2018-11-12 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.38 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811111e0005eac9 2018-11-11 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.36 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181110d58a0c6285 2018-11-10 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.36 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly2018110983410d6ac8 2018-11-09 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.35 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181108dc3bc8928f 2018-11-08 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.35 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811078c3f903e4e 2018-11-07 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.35 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811069a20a12830 2018-11-06 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.35 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201811057e1b178fb6 2018-11-05 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181104d8fb81fab3 2018-11-04 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181103d24756bf79 2018-11-03 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181102a8e98f8ea9 2018-11-02 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly2018110151294c897f 2018-11-01 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181031d690a87b8c 2018-10-31 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181030b255cd48b1 2018-10-30 aix-ppc64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201810299697c0820f 2018-10-29 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181028336651bad0 2018-10-28 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181027482b56ae60 2018-10-27 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly201810266223236151 2018-10-26 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly2018102524cb1f33d8 2018-10-25 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v12.0.0-nightly20181024bb79e768e5 2018-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.1.0-nightly20181101af6d26281f 2018-11-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.32 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181023d901d16b39 2018-10-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181022d2fcd1dd39 2018-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181021beb0f03e78 2018-10-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly2018102035ed66c776 2018-10-20 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810192cb2597d72 2018-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181018d22ec11e4d 2018-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181017cf3f8dd42e 2018-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.28 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181016c34eae5f88 2018-10-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181015e096df3743 2018-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181014f569ecf7b3 2018-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810139f7e3a4040 2018-10-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181012714c1b88d2 2018-10-12 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181011972d0beb59 2018-10-11 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.25 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810103e809e7de1 2018-10-10 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.24 1.23.2 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810092ec57a7134 2018-10-09 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.24 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810081c75ec2c7e 2018-10-08 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.24 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181007061e09891c 2018-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.24 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181006e273abc01b 2018-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.24 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181005ff3fd3bf80 2018-10-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.22 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20181004cd40d7afac 2018-10-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.22 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly2018100337e8381150 2018-10-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.22 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810029b34dfed76 2018-10-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201810011be804d625 2018-10-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly2018093070ab3108e2 2018-09-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20180929ea232bd320 2018-09-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20180928406e3ad212 2018-09-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20180927a58f37720d 2018-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201809260ae146cd8e 2018-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly20180925ea3bb9add2 2018-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201809244da11f2dc5 2018-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.1 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201809238aca934009 2018-09-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 7.0.276.20 1.23.0 1.2.11 1.1.0i 67 - - +v11.0.0-nightly201809222b29df71eb 2018-09-22 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.23 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly2018092156493bf1eb 2018-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.23 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly201809200623aabbe1 2018-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.23 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180919a1381fab8a 2018-09-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180918988be43e33 2018-09-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly201809171747d707d7 2018-09-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly201809169c9c01f183 2018-09-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180915de37ba34c5 2018-09-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly2018091490c93682d1 2018-09-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly201809131cee085367 2018-09-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180912b36c581d5b 2018-09-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180911121439a8ff 2018-09-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180910932a74ae74 2018-09-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly2018090967ba8ff31a 2018-09-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180908922a1b03b6 2018-09-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.9.427.22 1.23.0 1.2.11 1.1.0i 66 - - +v11.0.0-nightly20180907e917a23d2e 2018-09-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201809062bf4697ff4 2018-09-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018090565f0323b07 2018-09-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018090471f633a32f 2018-09-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180903c100d400bd 2018-09-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018090259e5a39d30 2018-09-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180901c8880ea276 2018-09-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808318e189794df 2018-08-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018083060465700ed 2018-08-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808296e942e7353 2018-08-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180828c241f4ac4a 2018-08-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180827da8641f3b4 2018-08-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180826e10290cc67 2018-08-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808255d210d4ac9 2018-08-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018082456e331a2a2 2018-08-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180823264c99f6c6 2018-08-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018082298cf84f2c9 2018-08-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808216e9e150b6a 2018-08-21 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.23.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018082079642ae071 2018-08-20 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly20180819c535bde5da 2018-08-19 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808187cbbb27c07 2018-08-18 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018081738145344f1 2018-08-17 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly2018081616accff90f 2018-08-16 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 65 - - +v11.0.0-nightly201808150257fd7ce9 2018-08-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180814c75c917823 2018-08-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly201808137cec27c799 2018-08-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly2018081201a160a05d 2018-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180811e0395247c8 2018-08-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180810346f2a7bec 2018-08-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180809566d11a1ca 2018-08-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly201808086ad12d47f5 2018-08-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180807a4c1cf5f86 2018-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180806933d8eb689 2018-08-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180805a196aa2e24 2018-08-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180804a2ec80851c 2018-08-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180803d68f946fe4 2018-08-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180802a3e511b971 2018-08-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly2018080119aa41c6fc 2018-08-01 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180731be322bd9ad 2018-07-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180730afc5636fe6 2018-07-30 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly201807298c6d1a0686 2018-07-29 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180728045b07d518 2018-07-28 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly20180727c91e0ed3ad 2018-07-27 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 65 - - +v11.0.0-nightly201807264d94bb2b1f 2018-07-26 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180725f5a2167eb5 2018-07-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807245384570486 2018-07-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807233095eecc47 2018-07-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807228ac916309b 2018-07-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180721946686521d 2018-07-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180719373aae1f86 2018-07-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180718b75bde3bc5 2018-07-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180717ab10bfe376 2018-07-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180716df97126173 2018-07-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807153ffbbd3eef 2018-07-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018071461cd101e12 2018-07-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807138cae9b2ff8 2018-07-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180712acf0606f72 2018-07-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807118174d0c8ca 2018-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.22.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180710573744caae 2018-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180709a478259af7 2018-07-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018070801eee530e3 2018-07-08 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180707ff958ad0c0 2018-07-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807060ef04b8133 2018-07-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180705e021ca28ea 2018-07-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180704f374d6aaf9 2018-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180703f85962fe4d 2018-07-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180702484c6c31b0 2018-07-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201807017bdc694267 2018-07-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806301bf42f4777 2018-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180629d6397afbac 2018-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018062880496a5570 2018-06-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806278326bea6c2 2018-06-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806268836a0d780 2018-06-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180625c403eeb7fd 2018-06-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806246ced651b6c 2018-06-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180623a40e06233e 2018-06-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806229ca41e9642 2018-06-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806217a2e2fb36d 2018-06-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180620ed1035d335 2018-06-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806194970e2bec8 2018-06-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180618a13eba7e9f 2018-06-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018061754ee8cb5dd 2018-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180616b505d2a1cf 2018-06-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806152749460ddc 2018-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018061460e6991291 2018-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806134c166935ae 2018-06-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018061231d5bdea70 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180611f86a181d47 2018-06-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180610045472528c 2018-06-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.44 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180609ef1f130041 2018-06-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.44 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180608e41ccd4e2d 2018-06-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.44 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018060785fe134026 2018-06-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180606aa08cf1e7a 2018-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201806050300f7c68cffa5de7f0099e3afa95093b0bbbe3c 2018-06-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018053189d211f54a 2018-05-31 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180530c1a87a30e7 2018-05-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805299f4bf4ca43 2018-05-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805285624a6f8a7 2018-05-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180527c241b7d85c 2018-05-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180526c700cc42da 2018-05-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180525ac8226115e 2018-05-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805249a02de7084 2018-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805235823938d15 2018-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805224f0ab76b6c 2018-05-22 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805217f0f978aff 2018-05-21 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180520df511c6195 2018-05-20 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180519064057b7ad 2018-05-19 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805180419adc771 2018-05-18 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805170d9500daed 2018-05-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805162b8cd93246 2018-05-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.31 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180515810af50ba2 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180514ffb503be5f 2018-05-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180513c0359f0988 2018-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018051220509ebee6 2018-05-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180511f145a53a78 2018-05-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180510b267d2aae6 2018-05-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180509d5b259e22b 2018-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180508dd03709148 2018-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805075efbe4c1e8 2018-05-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018050634bd9f318a 2018-05-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly201805051cf7ef6433 2018-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180504cd8ed1c447 2018-05-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180503c493b98b0b 2018-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180502392d80a617 2018-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180501d3abb60b05 2018-05-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180430283a967e35 2018-04-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180429b55a11d1b1 2018-04-29 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018042865d97c96aa 2018-04-28 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180427e10cb7fdda 2018-04-27 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly20180426d4726d2f3f 2018-04-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v11.0.0-nightly2018042595197ed2b0 2018-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v10.16.4-nightly20190923859d47593e9fd97e6a9eae6eeb8b6e910acfe434 2019-09-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.4-nightly2019092055692ba1605dd6a39c85171847fdbe391573989e 2019-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.4-nightly201909044f41e4f471 2019-09-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.4-nightly2019082055692ba160 2019-08-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.4-nightly2019081655692ba160 2019-08-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium true +v10.16.3-nightly20190807b743000a96 2019-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.2-nightly20190801f025f8524b 2019-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.1-nightly201907310339fba1bb 2019-07-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.1-nightly20190727f332265cda 2019-07-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.1-nightly201907264a607fab49 2019-07-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1c 64 Dubnium - +v10.16.1-nightly2019071835be08a16f 2019-07-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly20190717c940dc09c6 2019-07-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly20190710d230e6d24a 2019-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly201907045323a7e170 2019-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly20190703cabcc14f97 2019-07-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly2019062907d46a8a03 2019-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly201906268516da1720 2019-06-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly201906085ffe04753e 2019-06-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly20190607609d2b9ea4 2019-06-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.16.1-nightly201905296e849c3326 2019-05-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.15.4-nightly20190522cda0d16414 2019-05-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.28.0 1.2.11 1.1.1b 64 Dubnium - +v10.15.4-nightly2019052025d73aa187 2019-05-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.27.0 1.2.11 1.1.1b 64 Dubnium - +v10.15.4-nightly20190517ec02117232 2019-05-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.27.0 1.2.11 1.1.1b 64 Dubnium - +v10.15.4-nightly20190516865bceff1a 2019-05-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.24.1 1.2.11 1.1.1b 64 Dubnium - +v10.15.4-nightly20190514ebe51a4768 2019-05-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.24.1 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly2019051129c6530bbd 2019-05-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.9.0 6.8.275.32 1.24.1 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly201905019101d9368f 2019-05-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 6.8.275.32 1.24.1 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly201904290c3dbc76a2 2019-04-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 6.8.275.32 1.24.1 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly20190418ca2fd1b251 2019-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.5.0-next.0 6.8.275.32 1.24.1 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly2019041707ded7c975 2019-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly201904094f60364201 2019-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly201904062643801d9d 2019-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly20190329b0b73fa561 2019-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.1a 64 Dubnium - +v10.15.4-nightly20190320b9188d473b 2019-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.4-nightly2019031626288c8ab7 2019-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.4-nightly2019031538c9d2bfea 2019-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.4-nightly20190313b5588daef0 2019-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.4-nightly20190306f612a714fa 2019-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.3-nightly20190301156e4c8e89 2019-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly201902215711238b4e 2019-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly2019022013f9356b04 2019-02-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly2019021415756e0acc 2019-02-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly201902136be2d6187c 2019-02-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly20190212be17cc59c7 2019-02-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly201902063b9fd0881a 2019-02-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly20190205e20e3472a4 2019-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.2-nightly201901307840f713ce 2019-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.1-nightly201901292d6e145340 2019-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.1-nightly20190114755bb9658e 2019-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.24.0 1.2.11 1.1.0j 64 Dubnium - +v10.15.1-nightly2019011307d9eb6c2b 2019-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.24.0 1.2.11 1.1.0j 64 Dubnium - +v10.15.1-nightly201812311bceb9d397 2018-12-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.15.1-nightly20181227d04c3c2718 2018-12-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly2018122617f4208a3b 2018-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly20181225b7bb114e47 2018-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly20181222d21ff98d83 2018-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly2018121577c2cc94b7 2018-12-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly20181214d35739de8c 2018-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.3-nightly201812124a858b27c0 2018-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.2-nightly20181206fb99a4e9fa 2018-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.2-nightly201812044035ca16c5 2018-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.2-nightly201811304864cb0038 2018-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.1-nightly20181129bda1cc703a 2018-11-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.14.1-nightly20181128391f8bf779 2018-11-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0j 64 Dubnium - +v10.13.1-nightly20181127a66d8774ac 2018-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly2018112220430ae487 2018-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly20181118469473d550 2018-11-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly201811139a7554a85b 2018-11-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly201811082290c315a2 2018-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly201811058552bb4065 2018-11-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly20181102523db5f5a9 2018-11-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.13.1-nightly201810318e7a12f450 2018-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 Dubnium - +v10.12.1-nightly201810283f63297fe8 2018-10-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810208b431ad84c 2018-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810165fea320753 2018-10-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly20181015aecba73e52 2018-10-15 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810148def0379b7 2018-10-14 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810137c9b37e2eb 2018-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810123a5887f7a1 2018-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.12.1-nightly201810114153114797 2018-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.11.1-nightly20181010d16486b215 2018-10-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.2 1.2.11 1.1.0i 64 - - +v10.11.1-nightly2018100846c7d0d21f 2018-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly201810078a0ecd6d35 2018-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly20181006cbd851fe6f 2018-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly201810042da6f622dc 2018-10-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly201810037d21cc2177 2018-10-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly2018100224c3406d0a 2018-10-02 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly2018092941057feb3d 2018-09-29 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly2018092899fd7a771a 2018-09-28 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly201809267639390032 2018-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly20180925f66e9abcb3 2018-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.1 1.2.11 1.1.0i 64 - - +v10.11.1-nightly20180924e16dd6d165 2018-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.11.1-nightly20180921a22485d8f1 2018-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly201809205da1f0ca2c 2018-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180919774afa7d23 2018-09-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly201809183b763cdf77 2018-09-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180916f2ae0cb255 2018-09-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly2018091592b695ed26 2018-09-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180913108a1695ea 2018-09-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180912d03ce9df05 2018-09-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly201809110c3242862a 2018-09-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly2018091036666629f6 2018-09-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180909c1c78ca4eb 2018-09-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180908e5cdfb0856 2018-09-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.32 1.23.0 1.2.11 1.1.0i 64 - - +v10.10.1-nightly20180907ca06e65b08 2018-09-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180906707a37f74f 2018-09-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly201809041ce2ea3cc8 2018-09-04 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.4.1 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly2018090358e90a2191 2018-09-03 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180902aecf4e03f7 2018-09-02 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly201809018da21a762f 2018-09-01 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180831520167ecc0 2018-08-31 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly2018082909a824fcdd 2018-08-29 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly2018082899f3d1ecb0 2018-08-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly2018082529a5efa3f0 2018-08-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.30 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180821fc329172ae 2018-08-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.23.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180820f5341f0a83 2018-08-20 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly201808194a56313d93 2018-08-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 64 - - +v10.9.0-nightly20180816b1adb44b94 2018-08-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0i 64 - - +v10.8.1-nightly2018081382830a809b 2018-08-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly20180812fdeace6a02 2018-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly201808104e6be4c659 2018-08-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.8.275.24 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly20180808a6b9ee9c89 2018-08-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly2018080744edfa436c 2018-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly20180805d66e52fb8e 2018-08-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly20180803168abb5801 2018-08-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.8.1-nightly20180802c6a56ae23e 2018-08-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly2018080162fd84528e 2018-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180731f4b6031e39 2018-07-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.2.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly201807272a0fa4792e 2018-07-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180726af6b82469d 2018-07-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180725c44df51249 2018-07-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180722b98bf829d0 2018-07-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180721bd352f0298 2018-07-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180720484140e223 2018-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.7.1-nightly20180719ec0ff7008a 2018-07-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly20180718eef975ebae 2018-07-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly2018071767908e9933 2018-07-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly20180716678313d18b 2018-07-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly201807154ed5d1a623 2018-07-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.49 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly20180712b9bbbbe5d1 2018-07-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.22.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly2018071092d79212ec 2018-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly20180709eaea66e3c0 2018-07-09 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,sunos-x64 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly20180707214c608208 2018-07-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.6.1-nightly2018070547b10e30c0 2018-07-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly201807035d6d6fb121 2018-07-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180701b28fd37a69 2018-07-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180630bb0795a5c5 2018-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180629e081866f64 2018-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180626d1b750d360 2018-06-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.21.0 1.2.11 1.1.0h 64 - - +v10.5.1-nightly2018062523598239d1 2018-06-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180623e0bcb6aa17 2018-06-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.5.1-nightly20180621fb2592ff12 2018-06-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly20180619bc20ec0c0f 2018-06-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly20180617529d24e3e8 2018-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly20180616e4a7e0d28b 2018-06-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly20180615521f8f1d95 2018-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly20180614a75e44d135 2018-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.46 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.2-nightly201806135d3dfedca2 2018-06-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1-nightly201806125752f520b1 2018-06-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1-nightly2018061102b404783a 2018-06-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.45 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1-nightly20180609c725a539f1 2018-06-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.44 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1-nightly2018060820f8b68a34 2018-06-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.44 1.20.3 1.2.11 1.1.0h 64 - - +v10.4.1-nightly201806070577312852 2018-06-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v10.3.1-nightly201806067c0c61bde1 2018-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.7.288.43 1.20.3 1.2.11 1.1.0h 64 - - +v10.3.1-nightly20180530471d8156af 2018-05-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.2.2-nightly20180526efc7f91354 2018-05-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 6.1.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.2.2-nightly201805254963bcc9b4 2018-05-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.2.1-nightly20180524be71c5dea9 2018-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.1.1-nightly20180523235a272838 2018-05-23 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.32 1.20.3 1.2.11 1.1.0h 64 - - +v10.1.1-nightly20180515981a2f7b16 2018-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v10.1.1-nightly20180513b6ea5df08a 2018-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.3 1.2.11 1.1.0h 64 - - +v10.1.1-nightly20180509f55fdd1e5e 2018-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.1-nightly20180505ff148b987d 2018-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.27 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.1-nightly201804254289402aa3 2018-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.0-nightly20180424982adb5994 2018-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.0-nightly201804231c66a10a0c 2018-04-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.2 1.2.11 1.1.0h 64 - - +v10.0.0-nightly20180422e5f53206dd 2018-04-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - - +v10.0.0-nightly201804212a88f02f2f 2018-04-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - - +v10.0.0-nightly201804201b438a7737 2018-04-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - - +v10.0.0-nightly20180419bbdb4af0bd 2018-04-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - - +v10.0.0-nightly2018041872549aa9cd 2018-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 64 - - +v10.0.0-nightly201804175eb9f3c91c 2018-04-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.24 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly20180416978e1524bb 2018-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly20180415b003c86bf4 2018-04-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly2018041491e0f8db11 2018-04-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly201804132a6ab9b37b 2018-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly201804120aab8ff602 2018-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.6.346.23 1.20.0 1.2.11 1.1.0h 63 - - +v10.0.0-nightly2018041142d8976dff 2018-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.1.0h 62 - - +v10.0.0-nightly20180410d1156da815 2018-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.1.0h 62 - - +v10.0.0-nightly20180409244af7a9d5 2018-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - - +v10.0.0-nightly2018040808a36a0666 2018-04-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - - +v10.0.0-nightly2018040777b52fd58f 2018-04-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - - +v10.0.0-nightly2018040653aaa55a3a 2018-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180405b29c36b807 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.20.0 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180404b22a189b43 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180403d54f651910 2018-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180402a9a1f12b42 2018-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180401141be923f3 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly2018033128b622cb08 2018-03-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly2018033083d44bee01 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - - +v10.0.0-nightly20180329aec019030d 2018-03-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - true +v10.0.0-nightly20180328bc690e9ef5 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2o 62 - true +v10.0.0-nightly201803278eca6b8d3d 2018-03-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.43 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803269396b77238 2018-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803259125479be9 2018-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180324ca22c96f16 2018-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180323b41ed29b80 2018-03-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180322e714da6f0a 2018-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803219b7a6914a7 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.41 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803206a958d2bf8 2018-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.40 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803190fb017d684 2018-03-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.40 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180318d74184c2fa 2018-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803171329844a08 2018-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018031696cb4fb795 2018-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803153c61b87e59 2018-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180314040dd244de 2018-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.38 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018031352e869bee8 2018-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018031222b6804259 2018-03-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018031198a14e026b 2018-03-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018031097579068b5 2018-03-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180309099e621648 2018-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly201803083dfce5cdad 2018-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly20180307a6c14b2f42 2018-03-07 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.5.254.31 1.19.2 1.2.11 1.0.2n 62 - - +v10.0.0-nightly2018030678a7536db3 2018-03-06 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180305b20af8088a 2018-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180304f2d93795bf 2018-03-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201803035a55a71150 2018-03-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201803029e9c516512 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180301740c426b21 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802283f78d3fcf8 2018-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180227a27e6d7321 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180226dbe645f114 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180225da886d9a4c 2018-02-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018022415e41a9951 2018-02-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180223a29089d7c8 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.2 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180222fecc64d6dc 2018-02-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802216bdc18c592 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802207514eb3cff 2018-02-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802175156342105 2018-02-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.46 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180216f25104e136 2018-02-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-exe 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180215a16081cbad 2018-02-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018021492c86fd84d 2018-02-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180213e782715d0a 2018-02-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.44 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802123d53848d75 2018-02-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201802112aa3e3b00f 2018-02-11 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018021001d049165c 2018-02-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180209dbd1d1d43f 2018-02-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180208d3569b623c 2018-02-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018020792ba624fa1 2018-02-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.42 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180206ac829f0135 2018-02-06 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.41 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180205d4b605b990 2018-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.41 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018020447a984ada0 2018-02-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180203f8fda0d5ad 2018-02-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018020289dd21a8ad 2018-02-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180201ad94be84f9 2018-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly2018013126ce1ae647 2018-01-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180130e56189ed58 2018-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201801295c8ce90c2f 2018-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201801294a498335f5 2018-01-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180127f29c2cbec5 2018-01-27 osx-x64-pkg 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180126fa33f026cc 2018-01-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly20180125c016cc2b17 2018-01-25 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.4.388.40 1.19.1 1.2.11 1.0.2n 61 - - +v10.0.0-nightly201801242313424abc 2018-01-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.19.1 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801239870b53810 2018-01-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180122e7ff00d0c5 2018-01-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801218803b69c72 2018-01-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180120e1c29f2c52 2018-01-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180119cbd634947d 2018-01-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801187809f386b0 2018-01-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801171b0d9795b6 2018-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180116f75bc2c1a5 2018-01-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2018011585739b6c5b 2018-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180114858b48b692 2018-01-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180113c770f43a91 2018-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801121385e1bc63 2018-01-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180111470bd39390 2018-01-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801106e3818f2a2 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180109f3f3f8890c 2018-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801086aac05bf47 2018-01-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801078a86d9c1cf 2018-01-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180106b396c4db66 2018-01-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20180105feaf6ac3dc 2018-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801043f2382bd9a 2018-01-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201801033b1e263b7b 2018-01-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712294117e22cf3 2017-12-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171228120ea9b5c4 2017-12-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2017122771396a200d 2017-12-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2017122603b8ac14e7 2017-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2017122581c2b59609 2017-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171224359819e760 2017-12-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712238599465d33 2017-12-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171222b5d415311b 2017-12-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.48 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171221a4f44acd69 2017-12-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171220d6b1b84ca0 2017-12-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712193b8da4cbe8 2017-12-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171218ce38c49fb8 2017-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171217b2432a7f00 2017-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712162ac7aded29 2017-12-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171214decab712ba 2017-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2017121304ae4862e6 2017-12-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712127a055f1d39 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly2017121151a7d97625 2017-12-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171210d2626ef6b7 2017-12-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly20171209e9d1e1265a 2017-12-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712084e65f9d504 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2n 60 - - +v10.0.0-nightly201712070bc10b0472 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2m 60 - - +v10.0.0-nightly20171206cd174df353 2017-12-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.3.292.46 1.18.0 1.2.11 1.0.2m 60 - - +v10.0.0-nightly201712053549d9c2bc 2017-12-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171204a322b8e316 2017-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171203fff4272fa7 2017-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171202c589561aaf 2017-12-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171201e9e9863ca7 2017-12-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171130701dc9a86e 2017-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711294503da8a3a 2017-11-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711280fb1e07689 2017-11-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711274ca4db0d4c 2017-11-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171126bb4462681c 2017-11-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly2017112529423b49c7 2017-11-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171124887e2327ee 2017-11-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171123088bba31a3 2017-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171121a95d88c881 2017-11-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171120ad1967d656 2017-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly2017111997ba69f915 2017-11-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171118707cd3f615 2017-11-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171117959c425a19 2017-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171116b3127cd537 2017-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171115157df5a47c 2017-11-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171114803cacd228 2017-11-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly2017111314d24cc4d2 2017-11-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171112c5a49e148d 2017-11-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711117b3446e7bb 2017-11-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.16.1 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711106f02da255f 2017-11-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171109f002c3d2ed 2017-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171108d597317a20 2017-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171107a77bfcaac7 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711060300565af9 2017-11-06 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly201711059f3d59eabb 2017-11-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171104291ff72f85 2017-11-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly2017110372f21d248f 2017-11-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v10.0.0-nightly20171102d4471e06e8 2017-11-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v10.0.0-nightly2017110118df171307 2017-11-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.11.2-nightly201804135d9a7f81ae 2018-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.20.0 1.2.11 1.0.2o 59 - - +v9.11.2-nightly201804065ecd82d07d 2018-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.20.0 1.2.11 1.0.2o 59 - - +v9.11.2-nightly201804056bc6eeeabe 2018-04-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.2-nightly201804042bdf3ca235 2018-04-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.2-nightly20180403c1b83fcbc2 2018-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.2-nightly201804020bcad33c7a 2018-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.2-nightly20180330dac5f67e64 2018-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - - +v9.10.1-nightly201803284844a263ce 2018-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2o 59 - true +v9.10.0-nightly201803270a18bf1304 2018-03-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.9.1-nightly201803256591d9f761 2018-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.9.1-nightly20180324d1c45e258c 2018-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.9.1-nightly20180322d3833b0734 2018-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.9.1-nightly201803215960cde4eb 2018-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.1-nightly20180320607b33cfcc 2018-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.1-nightly20180318d2b99e3774 2018-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.1-nightly20180317e7ce4d6c13 2018-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.1-nightly201803158daa6fa902 2018-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.8.1-nightly20180308fed51b3a15 2018-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.2-nightly20180307cde6671b41 2018-03-07 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.2-nightly20180305479b622e49 2018-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.2-nightly20180302e4fe235b5e 2018-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.7.1-nightly201803013f3995b7b7 2018-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.6.2-nightly201802277853a7fd2a 2018-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.6.2-nightly201802262177138db0 2018-02-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.2 1.2.11 1.0.2n 59 - - +v9.6.2-nightly20180223aec66c660c 2018-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.6.1-nightly20180222927c1b1a7e 2018-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.5.1-nightly20180221b9b58100e0 2018-02-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.5.1-nightly2018020181da708f73 2018-02-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.19.1 1.2.11 1.0.2n 59 - - +v9.4.1-nightly20180124dd56bd1591 2018-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.4.1-nightly20180117722fe464bc 2018-01-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.4.1-nightly20180115167e9c6dcd 2018-01-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.4.1-nightly20180111506d85bfba 2018-01-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.4.1-nightly2018011039970e9caf 2018-01-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.3.1-nightly2018010930273d400c 2018-01-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.3.1-nightly201712226bd0aff092 2017-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.6.0 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.3.1-nightly20171213b8ecf3c6f6 2017-12-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.2.2-nightly20171212f8143214be 2017-12-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.46 1.18.0 1.2.11 1.0.2n 59 - - +v9.2.1-nightly20171208f0f9e1abf0 2017-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.44 1.16.1 1.2.11 1.0.2n 59 - - +v9.1.1-nightly20171207c81e9682c4 2017-12-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2n 59 - - +v9.1.1-nightly201711075f5ef4226e 2017-11-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v9.0.1-nightly20171105ed0fbd8d72 2017-11-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2m 59 - - +v9.0.0-nightly2017103182790d84f2 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly20171030e567402aba 2017-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 5.5.1 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly20171029896eaf6820 2017-10-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly201710281c0772444c 2017-10-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly2017102798eab4a461 2017-10-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly20171025d2e44d5e7f 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - true +v9.0.0-nightly2017102447ed02cec6 2017-10-24 linux-ppc64le,linux-s390x,linux-x64,linux-x86,sunos-x64,sunos-x86 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly20171021fe4675b301 2017-10-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly20171020686e092202 2017-10-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly201710193c0ebf5aca 2017-10-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.2.414.32 1.15.0 1.2.11 1.0.2l 59 - - +v9.0.0-nightly2017101870832bc353 2017-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171017ff747e3fe8 2017-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171016e2015b5347 2017-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017101542479130a9 2017-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171014971aad1b13 2017-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171013981595c316 2017-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171012bf8f1d3208 2017-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017101107f1efc2ae 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017101092146e00fd 2017-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171009fca31be833 2017-10-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017100841b65b9fa3 2017-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171007fabd618eef 2017-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly201710064f339b54e9 2017-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.15.0 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171004a3cd8ed168 2017-10-04 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly201710037cff6e80bf 2017-10-03 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly201710027069e633ca 2017-10-02 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20171001f9be5fe52a 2017-10-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170930cec6e21668 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017092998077446f9 2017-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly201709282f2f1cfa87 2017-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170924456d8e21ea 2017-09-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170923150b8f7fda 2017-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017092220259f9092 2017-09-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170921cd1b55a942 2017-09-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017092075606c4f69 2017-09-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017091919766547fa 2017-09-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170918c75f87cc4c 2017-09-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly2017091775f7b2f577 2017-09-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170916b0d3bec95c 2017-09-16 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170915a5916107dd 2017-09-15 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly201709141a0727d85e 2017-09-14 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170913bf1ca8fb2e 2017-09-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.36 1.14.1 1.2.11 1.0.2l 58 - - +v9.0.0-nightly20170912a10856a7d3 2017-09-12 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017091061e9ba1271 2017-09-10 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201709095f22375922 2017-09-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170908aa76ce943b 2017-09-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170907641646463d 2017-09-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201709068485a7c0b7 2017-09-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170905ea2e6363f2 2017-09-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170904b24e269a48 2017-09-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170903c7c9e20ed0 2017-09-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017090208984b26d3 2017-09-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170901dd52cad044 2017-09-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170831365c24591c 2017-08-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170830a80b1621b0 2017-08-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708291ffd01cf7f 2017-08-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708287854562143 2017-08-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708274d893e093a 2017-08-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017082699c478eb36 2017-08-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170825a1d34b3f49 2017-08-25 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170824abced13e29 2017-08-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708204cff2cc20f 2017-08-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170819467385a49b 2017-08-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708184d842e3d66 2017-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017081760f2fa9a8b 2017-08-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170816e9c0263696 2017-08-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708155f31d54720 2017-08-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170814afe68c1868 2017-08-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017081395bbb68175 2017-08-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170812ab2b331f5e 2017-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708117307839b55 2017-08-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly2017081097c43940c8 2017-08-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708091e569f42b6 2017-08-09 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170808f11379d25b 2017-08-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708073f98b0f33c 2017-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170806e96ca62480 2017-08-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170805ff65a2e051 2017-08-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly201708042dc09f656b 2017-08-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170803d41423fe72 2017-08-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170802e506bcd899 2017-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v9.0.0-nightly20170801cee8d6d65e 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017072975bf8a9db9 2017-07-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707288dce05fa71 2017-07-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.39 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707259ab3172e5d 2017-07-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707245c2d1af310 2017-07-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017072369f653dff9 2017-07-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707228979b4fc9f 2017-07-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707214f87522244 2017-07-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707207fdcb68dc3 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170719aa496f4bee 2017-07-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170718f406a7ebae 2017-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170717a6cec04aaa 2017-07-17 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170716e8170f2246 2017-07-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170715785a9e5a57 2017-07-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.38 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170714016d81ceec 2017-07-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170713598a128ff4 2017-07-13 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.13.1 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170712f52c707853 2017-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - true +v9.0.0-nightly2017071180c9fd9569 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - true +v9.0.0-nightly2017071094dd42577c 2017-07-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017070918069523f8 2017-07-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170708b647f04df1 2017-07-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017070749d13a17b1 2017-07-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170706f651e40350 2017-07-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707058520e6f280 2017-07-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707045100cc6851 2017-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170703fe730d34ce 2017-07-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201707023129b2c035 2017-07-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017070171ca122def 2017-07-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170630e6b69b9418 2017-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017062947d1e125ac 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017062850ba13ef0e 2017-06-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170627b714060e08 2017-06-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201706265fbbd25dc4 2017-06-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017062487d682b69a 2017-06-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201706233b0e800f18 2017-06-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201706223e178848a5 2017-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017062132c7f114c5 2017-06-21 aix-ppc64,headers,linux-arm64,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170620d2913384aa 2017-06-20 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017061924ecc331e2 2017-06-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017061881c0045378 2017-06-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170617ecf6a46d98 2017-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201706161e2905f46a 2017-06-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170615de4a749788 2017-06-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly201706142f34bf0f77 2017-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170613e5a494857a 2017-06-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly2017061227cc30aea8 2017-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170608d0571a926a 2017-06-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170607eef94a8bf8 2017-06-07 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.32 1.12.0 1.2.11 1.0.2l 56 - - +v9.0.0-nightly20170606b830c976b5 2017-06-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - - +v9.0.0-nightly201706057024c5a302 2017-06-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - - +v9.0.0-nightly201706044d89e3c261 2017-06-04 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - - +v9.0.0-nightly20170603917f86ea35 2017-06-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - - +v9.0.0-nightly201706021609899142 2017-06-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2l 55 - - +v9.0.0-nightly201706019b730620a7 2017-06-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v9.0.0-nightly20170531102e1aa4e3 2017-05-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.9.1-nightly20171104a815e1b6a2 2017-11-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2m 57 Carbon - +v8.9.1-nightly2017110308b75c1591 2017-11-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2m 57 Carbon - +v8.9.1-nightly20171102dfac6cc0bb 2017-11-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon - +v8.9.1-nightly2017103140d82118d8 2017-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.46 1.15.0 1.2.11 1.0.2l 57 Carbon - +v8.8.2-nightly20171030f00ba6b142 2017-10-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.5.1 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.8.2-nightly201710264359a93cc9 2017-10-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.8.1-nightly201710256fbef7f350 2017-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.7.1-nightly2017102478a6ef46a9 2017-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.7.1-nightly20171018e34509e8ed 2017-10-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.7.1-nightly20171012415821c309 2017-10-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.6.1-nightly201710116f42b680e3 2017-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.6.1-nightly201710109eb991a827 2017-10-10 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.6.1-nightly201710088ae4ae605c 2017-10-08 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.15.0 1.2.11 1.0.2l 57 - - +v8.6.1-nightly2017100497f7590c82 2017-10-04 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - - +v8.6.1-nightly20171003b22014ef2b 2017-10-03 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.4.2 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - - +v8.6.1-nightly20170930e4c6698c29 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - - +v8.6.1-nightly2017092937d1779e05 2017-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.42 1.14.1 1.2.11 1.0.2l 57 - - +v8.6.1-nightly20170928b6a8e5cb18 2017-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.1.534.38 1.14.1 1.2.11 1.0.2l 57 - - +v8.5.1-nightly20170921535f8d5281 2017-09-21 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.5.1-nightly201709204efc6fec6b 2017-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.5.1-nightly20170914a792ea7709 2017-09-14 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.5.1-nightly2017091299dc1f93a7 2017-09-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.4.1-nightly201709104b28e0055e 2017-09-10 aix-ppc64,headers,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.287.53 1.14.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly201708182d8d355a5f 2017-08-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly20170814dd521d0a28 2017-08-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly20170813ee2ae0f30b 2017-08-13 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly20170812c5ee34e39b 2017-08-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly20170811a781bb4508 2017-08-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.3.1-nightly201708109888bb1238 2017-08-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly2017080791b7843aeb 2017-08-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly201708028a3bc874fa 2017-08-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 6.0.286.52 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly2017080132b30d519e 2017-08-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly201707291a5927fc27 2017-07-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly20170728e2356e72e7 2017-07-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly20170724bdcd496c98 2017-07-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly201707236fc0ceab00 2017-07-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly2017072224b384d6a0 2017-07-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.2.1-nightly201707206fce1a314e 2017-07-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.8.283.41 1.13.1 1.2.11 1.0.2l 57 - - +v8.1.5-nightly20170718e9491f1cd4 2017-07-18 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.3.0 5.9.211.37 1.13.1 1.2.11 1.0.2l 57 - - +v8.1.5-nightly201707128d1f3dae37 2017-07-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.5-nightly20170711f457b05499 2017-07-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.4-nightly20170704c2c7eb1a41 2017-07-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.4-nightly20170630ff71987764 2017-06-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.4-nightly2017062982dc65bf6b 2017-06-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.3-nightly201706220b96a2640b 2017-06-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.3-nightly20170620f64ea03a3a 2017-06-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.37 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.3-nightly201706175238fa248f 2017-06-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.9.211.35 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.2-nightly20170614a1b27dbfb4 2017-06-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.1-nightly2017061323318c7661 2017-06-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.1.0-nightly20170612f6fc46e036 2017-06-12 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.3 5.8.283.41 1.12.0 1.2.11 1.0.2l 57 - - +v8.0.0-nightly20170530effeff1843 2017-05-30 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017052910913271bf 2017-05-29 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017052890877003c1 2017-05-28 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170527f84666f923 2017-05-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017052619685eac65 2017-05-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.41 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170525413691fde0 2017-05-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.40 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170524260cd411d4 2017-05-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017052360390cd7fb 2017-05-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 5.0.0-beta.56 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017052206f62eb384 2017-05-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705212b541471db 2017-05-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705208250bfd1e5 2017-05-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705196f216710eb 2017-05-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705185de722ab6d 2017-05-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705176342988053 2017-05-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017051611918c4aed 2017-05-16 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.39 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170515ef16319eff 2017-05-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170514b5ae22dd1c 2017-05-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017051384fc069b95 2017-05-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705121d5f5aa7e1 2017-05-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170511631cb42b4e 2017-05-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170510cfe7b34058 2017-05-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170509faf6654ff7 2017-05-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly20170508ea1b8a5cbc 2017-05-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly201705073fd890a06e 2017-05-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.8.283.38 1.11.0 1.2.11 1.0.2k 55 - - +v8.0.0-nightly2017050673d9c0f903 2017-05-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201705052614d247fb 2017-05-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201705043f48ab3042 2017-05-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170503d56a7e640f 2017-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201705029802d466cc 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201705010f58d3cbef 2017-05-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170430aa3eab00da 2017-04-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017042997ec72b76d 2017-04-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170428b2c7a51dd7 2017-04-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170427892ce06dbd 2017-04-27 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170426d7ba2a6035 2017-04-26 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170425ba7bac5c37 2017-04-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.5.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017042485a4e25775 2017-04-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170423cf68280ce1 2017-04-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170422bd97e48d9a 2017-04-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017042158066d16d5 2017-04-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170420468275ac79 2017-04-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170419a2843f2cf9 2017-04-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704186c912a8216 2017-04-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170417ade80eeb1a 2017-04-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170416b837bd2792 2017-04-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170415e125f174dc 2017-04-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170414635af7dc5f 2017-04-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704133900cf66a5 2017-04-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704122ced07ccaf 2017-04-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170411b8f416023d 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170410b470a85f07 2017-04-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704094dde87620a 2017-04-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170408afd5966fa9 2017-04-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170407c6e0ba31ec 2017-04-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170406a94a5da78c 2017-04-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170405491d59da84 2017-04-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170404394b6ac5cb 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017040353828e8bff 2017-04-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704022d039ffa29 2017-04-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201704010ea45707a4 2017-04-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201703314d255b04bf 2017-03-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201703304ddd23f0ec 2017-03-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017032961ebfa8d1f 2017-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170328fd18243a50 2017-03-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly2017032766e7dc5587 2017-03-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170326d13bd4acc0 2017-03-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly20170325ed12ea371c 2017-03-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 4.2.0 5.7.492.69 1.11.0 1.2.11 1.0.2k 54 - - +v8.0.0-nightly201703249ff7ed23cd 2017-03-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170323ee19e2923a 2017-03-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly2017032281ab78e62e 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170321ab2d49bcac 2017-03-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170320ef4768754c 2017-03-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.57 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201703185bda5faffd 2017-03-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170317704263139b 2017-03-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201703165bfd13b81e 2017-03-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170315b5eccc4c7e 2017-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170314879d6663ea 2017-03-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170313b170fb7c55 2017-03-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170312efec14a7d1 2017-03-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170311c67207731f 2017-03-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170310b806e18dd7 2017-03-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170309e4fbd8e244 2017-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.56 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201703087e0410499d 2017-03-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170307efaab8fccf 2017-03-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170306fd17e8b8d2 2017-03-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly2017030539f7e72440 2017-03-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170304b535e25b27 2017-03-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201703034cb9f4fde4 2017-03-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170302172be50fe1 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly2017030187a039d721 2017-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201702280a44b71c50 2017-02-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170227893632ec07 2017-02-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170226813b312b0e 2017-02-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170225ee7b7f6935 2017-02-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201702246eb614adc8 2017-02-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201702238e8fbd80d0 2017-02-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly20170222a1802e670d 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.6.326.55 1.11.0 1.2.11 1.0.2k 53 - - +v8.0.0-nightly201702211162e284ca 2017-02-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 52 - - +v8.0.0-nightly20170220dfa8abe1b5 2017-02-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 52 - - +v8.0.0-nightly20170219751404dc28 2017-02-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170218ca37ec084a 2017-02-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170217736814e064 2017-02-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170216642eec162d 2017-02-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702152ba4eeadbb 2017-02-15 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170214ac602a251a 2017-02-14 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170213f2023d7b6f 2017-02-13 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702124cafa60c99 2017-02-12 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702115cd9d76b02 2017-02-11 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170210b471392f8c 2017-02-10 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170209a4bb9fdb89 2017-02-09 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702082db3b941a9 2017-02-08 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702077ba847df1c 2017-02-07 aix-ppc64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702063fffebbde3 2017-02-06 aix-ppc64,headers,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702059a0829d728 2017-02-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170204e116cbe320 2017-02-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170203907ce8dd6c 2017-02-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly2017020258dc229d9a 2017-02-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201702011b30df1003 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170131aa8eb8747c 2017-01-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201701300d290a2ae0 2017-01-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly201701291155ade002 2017-01-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly2017012818d4ee97d8 2017-01-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170127b19334e566 2017-01-27 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.5.372.40 1.10.2 1.2.8 1.0.2k 52 - - +v8.0.0-nightly20170126a67a04d765 2017-01-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.1 5.4.500.46 1.10.2 1.2.8 1.0.2k 51 - - +v8.0.0-nightly20170125124d155f5e 2017-01-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701247eef09ddcf 2017-01-24 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701234757ddcce1 2017-01-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170122ff75e21662 2017-01-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2017012193c4820458 2017-01-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170120ba776b3a56 2017-01-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2017011949902124a9 2017-01-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170118622b43997f 2017-01-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170117d86ff5fc29 2017-01-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170116a0e13dae1f 2017-01-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2017011534bf31ea8a 2017-01-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170114f18b4632b9 2017-01-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701134424e847d5 2017-01-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701127f20c8a3d4 2017-01-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.2 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170111fa3836152d 2017-01-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170110762a303e1f 2017-01-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2017010941567ee9d8 2017-01-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701078a12368a20 2017-01-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.46 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170106fc647fddff 2017-01-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701056830849b2e 2017-01-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2017010426bf9545e0 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201701037c77932fa2 2017-01-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170102b978aff719 2017-01-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20170101b465cd07fe 2017-01-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161231a6ca94a5f5 2016-12-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612302213f3640a 2016-12-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612298dcebe8c42 2016-12-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612281b2d3f7ae7 2016-12-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161226499efbd085 2016-12-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2016122545c9ca7fd4 2016-12-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161224ff88a5a25b 2016-12-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612230bdd39f729 2016-12-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2016122244b38bb001 2016-12-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612219e4a899d31 2016-12-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161220613798335c 2016-12-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612195d14602181 2016-12-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612180d3ac89ff7 2016-12-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612174a257568e2 2016-12-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161216885c80f3de 2016-12-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612154a5c719be5 2016-12-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612143c29b2f851 2016-12-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161213832960592f 2016-12-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161212a8e87084cf 2016-12-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161211aa77b767b6 2016-12-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612107c2dbd13b5 2016-12-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161209d8c7534fcd 2016-12-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161208df3978421b 2016-12-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161207b0c10a24a6 2016-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612068951d3e0e5 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161205196d27dd8c 2016-12-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201612045be66db688 2016-12-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161203e21e12944c 2016-12-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161202479822c45e 2016-12-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161201cf719152b0 2016-12-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161130330e63c581 2016-11-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611295887c2ba38 2016-11-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611284fffe32a4b 2016-11-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611276b2aa1a2b9 2016-11-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161126951ba0d0a9 2016-11-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161125630c63ee68 2016-11-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611245cf0157b82 2016-11-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161123fd644f51f8 2016-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611223f1e38c847 2016-11-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611213cbb553df8 2016-11-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161120440057eae0 2016-11-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611198f05611a5c 2016-11-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2016111806198964e2 2016-11-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611171fca11e114 2016-11-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161116367065be4b 2016-11-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161115a804627837 2016-11-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161114fc44bd4d0b 2016-11-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161113195989d3a3 2016-11-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161112f673c97548 2016-11-12 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611114affb8929f 2016-11-11 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.41 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161110ca57912e05 2016-11-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161109d548d28f51 2016-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611080b5191f15d 2016-11-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611071aa595e5bd 2016-11-07 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161106f8f67d253e 2016-11-06 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161105a99b441c2c 2016-11-05 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611041a55e9a567 2016-11-04 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201611033c1e5b366f 2016-11-03 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2016110254d34314e3 2016-11-02 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly2016110121427fded9 2016-11-01 aix-ppc64,headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610310e92bb99c6 2016-10-31 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161030b9f6a2dc05 2016-10-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161029ec7c27f4cb 2016-10-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161028758ca8d179 2016-10-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610274d896c44f3 2016-10-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610268f00455c51 2016-10-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161025e8eaaa7724 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610245532a7adec 2016-10-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610236e5389eb5a 2016-10-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610225d818ccc22 2016-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610206845d6e318 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly20161019ef030da818 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v8.0.0-nightly201610180e6750d1cd 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - true +v7.10.1-nightly2017050369a8053e8a 2017-05-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.9.1-nightly20170411675ece47b3 2017-04-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.8.1-nightly20170329517f13b607 2017-03-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.2.0 5.5.372.43 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.5-nightly20170322bc664cb034 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.42 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.4-nightly20170315753adee6aa 2017-03-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.3-nightly20170309c62798034a 2017-03-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.2-nightly20170302b20bc130ef 2017-03-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.7.1-nightly201703019c75f4c78a 2017-03-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.41 1.11.0 1.2.11 1.0.2k 51 - - +v7.6.1-nightly201702227a6367017c 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.5.372.40 1.11.0 1.2.11 1.0.2k 51 - - +v7.5.1-nightly2017020113a024d531 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.1.2 5.4.500.48 1.10.2 1.2.8 1.0.2k 51 - - +v7.4.1-nightly20170104e07b6516d7 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 4.0.5 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v7.3.1-nightly20161221586967a078 2016-12-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.45 1.10.1 1.2.8 1.0.2j 51 - - +v7.2.2-nightly20161207c2cc11b3c6 2016-12-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.4.500.44 1.10.1 1.2.8 1.0.2j 51 - - +v7.2.1-nightly201611248cabe28efb 2016-11-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v7.2.0-nightly20161123c1aa949064 2016-11-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.43 1.10.1 1.2.8 1.0.2j 51 - - +v7.1.1-nightly201611093daf11635d 2016-11-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.4.500.36 1.10.0 1.2.8 1.0.2j 51 - - +v7.0.1-nightly2016102527e1749dcb 2016-10-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610246bbdd668bd 2016-10-24 aix-ppc64,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-tar,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.36 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly2016102260042ca70e 2016-10-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161020d62e7bd1f9 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610193518372835 2016-10-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161017e6d1d54230 2016-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610171fcd088fd9 2016-10-17 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161016f7842ad169 2016-10-16 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161015113c697ded 2016-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161014835fbeee00 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610146eece7773e 2016-10-14 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161013e4ee09a5b3 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161013804d57db67 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610113d54ea4304 2016-10-11 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161010c9dade48b4 2016-10-10 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610097542bdddda 2016-10-09 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161008b35f22b135 2016-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201610087084b9c5a1 2016-10-08 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610074d6297fef0 2016-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161006bd0bedb86a 2016-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610057b5ffa46fe 2016-10-05 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161004e10516d5a4 2016-10-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161003b3d283acd4 2016-10-03 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.31 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly201610023c5cf12709 2016-10-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20161001c8c2544cd9 2016-10-01 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly20160930f5d997c476 2016-09-30 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - - +v7.0.0-nightly2016092933dd4ec645 2016-09-29 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 51 - true +v7.0.0-nightly201609288cd2306cc3 2016-09-28 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - true +v7.0.0-nightly201609276b443d1731 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.8 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - - +v7.0.0-nightly2016092652b6cfb6eb 2016-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2j 48 - - +v7.0.0-nightly2016092550be885285 2016-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - - +v7.0.0-nightly201609247f71419ee4 2016-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - - +v7.0.0-nightly201609235cb5b1f8c4 2016-09-23 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - - +v7.0.0-nightly201609224d958725b4 2016-09-22 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.4.500.27 1.9.1 1.2.8 1.0.2i 48 - - +v7.0.0-nightly201609217b7d50a29e 2016-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201609202b5acda7a2 2016-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160919366495d4e2 2016-09-19 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016091830701a72c0 2016-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160917ffe8dffbc4 2016-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160916d3834a1fa3 2016-09-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160915ea2a309e3b 2016-09-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201609145ce117bab0 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016091353178f908f 2016-09-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160912f1629e78c7 2016-09-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016091183a354c33b 2016-09-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160910e57ff455e2 2016-09-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160909cc00be6ace 2016-09-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160908c21458a15d 2016-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160907c436437d3e 2016-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160906a945244830 2016-09-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160905a290ddfdc9 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160904dfe1c7e9b8 2016-09-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201609037e8d994e33 2016-09-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201609025930d59b0f 2016-09-02 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201609013504a98b72 2016-09-01 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.82 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160831266270e618 2016-08-31 win-x64-7z,win-x64-exe,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160830eca74a9d91 2016-08-30 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608291657f12f75 2016-08-29 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160827c8619ea3c3 2016-08-27 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160826a6d53c6779 2016-08-26 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016082518017d675b 2016-08-25 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016082451f96dfcfc 2016-08-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016082309f861f231 2016-08-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608223242b27b54 2016-08-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608219a91ffbbde 2016-08-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160820f6a74345d1 2016-08-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016081976007079ec 2016-08-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160818dbbbf217de 2016-08-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608173177b99737 2016-08-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160816647826017e 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016081524e4488891 2016-08-15 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608143fe55f6f91 2016-08-14 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160813fce4b981ea 2016-08-13 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160812ca6363b8ae 2016-08-12 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160811e40234d6e2 2016-08-11 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.80 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608104878e1c0e5 2016-08-10 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160809ae25ed3ccd 2016-08-09 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608085111e789e6 2016-08-08 win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608074c86fa30d8 2016-08-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160806b779eb423d 2016-08-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160805769f63ccd8 2016-08-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201608041a9e247c79 2016-08-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.79 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016080329e49fc286 2016-08-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.78 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160802b4258bba11 2016-08-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016080175c6d9dd95 2016-08-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160731df4ef63aa5 2016-07-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160729f789eb3106 2016-07-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016072899e2d43801 2016-07-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160727868638b903 2016-07-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160726e22ffefff2 2016-07-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160725809aabcc13 2016-07-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160722b3127df59a 2016-07-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201607219359de9dd2 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160720814b8c3cf7 2016-07-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160719f56cd32c70 2016-07-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.77 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016071817883dfaaf 2016-07-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.76 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160717c897d0ba71 2016-07-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201607156510eb5ddc 2016-07-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201607146e15ae98fe 2016-07-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016071311b23068cd 2016-07-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160712ef1f7661c7 2016-07-12 headers,linux-arm64,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160712863952ebad 2016-07-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.75 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160621ecc48a154d 2016-06-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201606205bddc9a741 2016-06-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160619a92089b6bd 2016-06-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160618a06ccdbdb5 2016-06-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160617de9a84186e 2016-06-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160616336b027411 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160615357f904169 2016-06-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160614f914f37742 2016-06-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160613e2e615e87e 2016-06-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160612d06820c624 2016-06-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016061147b9b14574 2016-06-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160610624734e640 2016-06-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160609a766ebf594 2016-06-09 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160608779091ffdb 2016-06-08 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160607671cffa313 2016-06-07 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.5 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160606a32f7eb4be 2016-06-06 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160605f44b18f010 2016-06-05 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160604de0aa23ad7 2016-06-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160603d0151695a7 2016-06-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160602aac79dfd78 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160601f81f0c351a 2016-06-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160531ef9a8fa35b 2016-05-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160530894203dae3 2016-05-30 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160529a0c70808b3 2016-05-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160528ead6c2d5bb 2016-05-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.9.3 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605278af25a39d3 2016-05-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160526841c7025a9 2016-05-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016052518fb4f9a91 2016-05-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.52 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160524ed11ac6080 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160523c111cf207a 2016-05-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605225b72f891a8 2016-05-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605207c3e920ba9 2016-05-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160519395cc885f4 2016-05-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016051803505052a1 2016-05-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160517b53473f0e7 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.1 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016051678520fa472 2016-05-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016051532b46d91a7 2016-05-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160514f4f6c6e815 2016-05-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160513084b2ec198 2016-05-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605122d524bcd1e 2016-05-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.47 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160510572e28efa2 2016-05-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.9 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605097f1111b1bb 2016-05-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly2016050883aa1f7f3f 2016-05-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly201605073f69ea53fd 2016-05-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160506b8573d0555 2016-05-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160505a4f94b4271 2016-05-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160504bc8b525440 2016-05-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2h 48 - - +v7.0.0-nightly20160503a2e57192eb 2016-05-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly201605028ebec086a5 2016-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly201605019f8d0ea6db 2016-05-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly20160430bcce05dba4 2016-04-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly20160429706778a902 2016-04-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly20160428ded3aea449 2016-04-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly201604273cdb5063f2 2016-04-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v7.0.0-nightly20160426cc5d9767af 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 48 - - +v6.11.1-nightly20170607f7ca483d68 2017-06-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.102 1.11.0 1.2.11 1.0.2k 48 Boron - +v6.10.4-nightly20170502312091a196 2017-05-02 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.101 1.9.1 1.2.11 1.0.2k 48 Boron - +v6.10.3-nightly2017040479546c0b5a 2017-04-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.98 1.9.1 1.2.11 1.0.2k 48 Boron - +v6.10.2-nightly20170322426968ddd8 2017-03-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.95 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.10.1-nightly20170222ee10f21f3b 2017-02-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.93 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.9.6-nightly201702013f61aae59d 2017-02-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.9.5-nightly2017013187ac44974a 2017-01-31 aix-ppc64,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2k 48 Boron - +v6.9.5-nightly201701061a47e5f409 2017-01-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.4-nightly201701049844692719 2017-01-04 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.10 5.1.281.89 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.3-nightly20161206c350268432 2016-12-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.9 5.1.281.88 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.2-nightly201610208bb346d61a 2016-10-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.9.1-nightly201610183843b96e46 2016-10-18 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 Boron - +v6.8.2-nightly201610154613c22b00 2016-10-15 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - - +v6.8.1-nightly201610132540417ef5 2016-10-13 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.8 5.1.281.84 1.9.1 1.2.8 1.0.2j 48 - - +v6.7.1-nightly20161007d7454e7547 2016-10-07 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161006d7454e7547 2016-10-06 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161005d7454e7547 2016-10-05 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161004d7454e7547 2016-10-04 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161003d7454e7547 2016-10-03 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161002d7454e7547 2016-10-02 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20161001d7454e7547 2016-10-01 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20160930d7454e7547 2016-09-30 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20160929d7454e7547 2016-09-29 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.7.1-nightly20160928d7454e7547 2016-09-28 aix-ppc64,headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - true +v6.6.1-nightly20160927f8ad0dc0e2 2016-09-27 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - - +v6.6.1-nightly20160926f8ad0dc0e2 2016-09-26 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2j 48 - - +v6.6.1-nightly20160925a14d832884 2016-09-25 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - - +v6.6.1-nightly20160924a14d832884 2016-09-24 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - - +v6.6.1-nightly20160923a14d832884 2016-09-23 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - - +v6.6.1-nightly20160922a14d832884 2016-09-22 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2i 48 - - +v6.6.1-nightly201609217d9afc7b52 2016-09-21 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609207d9afc7b52 2016-09-20 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609197d9afc7b52 2016-09-19 aix-ppc64,headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609187d9afc7b52 2016-09-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609177d9afc7b52 2016-09-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609167d9afc7b52 2016-09-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.6.1-nightly201609157d9afc7b52 2016-09-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.83 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160914180867d6a6 2016-09-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160913180867d6a6 2016-09-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160912180867d6a6 2016-09-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160911180867d6a6 2016-09-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160910180867d6a6 2016-09-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160909180867d6a6 2016-09-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160908180867d6a6 2016-09-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160907180867d6a6 2016-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160906180867d6a6 2016-09-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160905180867d6a6 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160904180867d6a6 2016-09-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160903180867d6a6 2016-09-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160902180867d6a6 2016-09-02 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160901180867d6a6 2016-09-01 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160831180867d6a6 2016-08-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160830862610f9e8 2016-08-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160829862610f9e8 2016-08-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160828862610f9e8 2016-08-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160827862610f9e8 2016-08-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.5.1-nightly20160826862610f9e8 2016-08-26 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly20160825723fa9637c 2016-08-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-s390x,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.1.281.81 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly2016082492ecbc4edc 2016-08-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly20160823a146e683dd 2016-08-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly20160822a146e683dd 2016-08-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly20160821ffb2db8285 2016-08-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly20160820ffb2db8285 2016-08-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly2016081908e2b0408a 2016-08-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly2016081808e2b0408a 2016-08-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly2016081708e2b0408a 2016-08-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.61 1.9.1 1.2.8 1.0.2h 48 - - +v6.4.1-nightly201608165cff1476b2 2016-08-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160815da9bd2fc48 2016-08-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160814da9bd2fc48 2016-08-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160813da9bd2fc48 2016-08-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160812da9bd2fc48 2016-08-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160811da9bd2fc48 2016-08-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160810da9bd2fc48 2016-08-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly2016080975b37a6bac 2016-08-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly2016080875b37a6bac 2016-08-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly2016080775b37a6bac 2016-08-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly2016080675b37a6bac 2016-08-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly2016080575b37a6bac 2016-08-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.60 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160804af63871593 2016-08-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.59 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160803af63871593 2016-08-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.59 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160802980f4da8c4 2016-08-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160731e82e80417b 2016-07-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160730e82e80417b 2016-07-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160729e82e80417b 2016-07-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.58 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160728342a85b1a7 2016-07-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160727342a85b1a7 2016-07-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160726342a85b1a7 2016-07-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160725342a85b1a7 2016-07-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160724342a85b1a7 2016-07-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160723342a85b1a7 2016-07-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160722342a85b1a7 2016-07-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.2-nightly20160721342a85b1a7 2016-07-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.57 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly201607209e9d499b8b 2016-07-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160719f3182f6971 2016-07-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160718c10ade917a 2016-07-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.55 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160717e1e477e2a0 2016-07-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160716e1e477e2a0 2016-07-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160715e1e477e2a0 2016-07-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly201607144480b14fda 2016-07-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly201607134480b14fda 2016-07-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.3.1-nightly20160712b4547340ee 2016-07-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-7z,win-x64-exe,win-x64-msi,win-x64-zip,win-x86-7z,win-x86-exe,win-x86-msi,win-x86-zip 3.10.3 5.0.71.54 1.9.1 1.2.8 1.0.2h 48 - - +v6.0.0-nightly20160425eb4201f07a 2016-04-25 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.35 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160424f1294f5bfd 2016-04-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160423983a809456 2016-04-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201604227940ecfa00 2016-04-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201604211fa8fce210 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.34 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201604207dc1a87a7b 2016-04-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.33 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160419697790c117 2016-04-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly2016041858561cf6a8 2016-04-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160417978166796e 2016-04-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160416f49a1d0501 2016-04-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly2016041581fd4581b9 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201604154a74fc9776 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 5.0.71.32 1.9.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160307449684752c 2016-03-07 linux-arm64,linux-ppc64le,linux-x64,linux-x86,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160307061ebb39c9 2016-03-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201603058af4bb86c0 2016-03-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly2016030417924703d6 2016-03-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.9.385.27 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160303831b30eeb7 2016-03-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly201603024c724dd439 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160301d9f7a597e4 2016-03-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2g 47 - - +v6.0.0-nightly20160229f296a7f16f 2016-02-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly20160228f0c06147b3 2016-02-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602277fc6645982 2016-02-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602263e3d941495 2016-02-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602256e6ce09861 2016-02-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602247b0a83d2b0 2016-02-24 headers,linux-arm64,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602102848f84332 2016-02-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly201602091693349616 2016-02-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.8.271.17 1.8.0 1.2.8 1.0.2f 47 - - +v6.0.0-nightly20160127fcae05e4b5 2016-01-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly201601266a73dbad51 2016-01-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly201601250f8e63caff 2016-01-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly2016012496934cbb30 2016-01-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly2016012355607a0f32 2016-01-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly20160122518548f1d8 2016-01-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.8.271.17 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly201601215ef9989bd6 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly201601201e5a02628c 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly20160119df4d209ad5 2016-01-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly20160118eee9dc7e9d 2016-01-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly2016011783d2b7707e 2016-01-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly20160116da550aa063 2016-01-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v6.0.0-nightly2016011666b9c0d8bd 2016-01-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.7.80.32 1.8.0 1.2.8 1.0.2e 47 - - +v5.11.2-nightly2016062103d36aea4f 2016-06-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016062003d36aea4f 2016-06-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061903d36aea4f 2016-06-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061827785aeb37 2016-06-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061727785aeb37 2016-06-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061621552bd0c5 2016-06-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061521552bd0c5 2016-06-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061421552bd0c5 2016-06-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061321552bd0c5 2016-06-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061221552bd0c5 2016-06-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061121552bd0c5 2016-06-11 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016061021552bd0c5 2016-06-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060921552bd0c5 2016-06-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060821552bd0c5 2016-06-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060721552bd0c5 2016-06-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060621552bd0c5 2016-06-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060521552bd0c5 2016-06-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060421552bd0c5 2016-06-04 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060321552bd0c5 2016-06-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060221552bd0c5 2016-06-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016060121552bd0c5 2016-06-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016053121552bd0c5 2016-05-31 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016053021552bd0c5 2016-05-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052921552bd0c5 2016-05-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052821552bd0c5 2016-05-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052721552bd0c5 2016-05-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052621552bd0c5 2016-05-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052521552bd0c5 2016-05-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052421552bd0c5 2016-05-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052321552bd0c5 2016-05-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052221552bd0c5 2016-05-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052121552bd0c5 2016-05-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016052021552bd0c5 2016-05-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051921552bd0c5 2016-05-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051821552bd0c5 2016-05-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051721552bd0c5 2016-05-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051621552bd0c5 2016-05-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051521552bd0c5 2016-05-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051421552bd0c5 2016-05-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051321552bd0c5 2016-05-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051221552bd0c5 2016-05-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016051021552bd0c5 2016-05-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016050921552bd0c5 2016-05-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016050821552bd0c5 2016-05-08 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016050721552bd0c5 2016-05-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016050621552bd0c5 2016-05-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.2-nightly2016050521552bd0c5 2016-05-05 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.1-nightly20160504bec5d50f1e 2016-05-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2h 47 - - +v5.11.1-nightly2016050399920480ae 2016-05-03 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016050299920480ae 2016-05-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016050199920480ae 2016-05-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016043099920480ae 2016-04-30 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016042999920480ae 2016-04-29 linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016042899920480ae 2016-04-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016042799920480ae 2016-04-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly2016042699920480ae 2016-04-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly20160425ca215b98e4 2016-04-25 headers,linux-armv7l,linux-ppc64le,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly20160424ca215b98e4 2016-04-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly20160423ca215b98e4 2016-04-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly20160422ca215b98e4 2016-04-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.11.1-nightly20160421ca215b98e4 2016-04-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.6 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604206d9c0c9aa7 2016-04-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604196d9c0c9aa7 2016-04-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604186d9c0c9aa7 2016-04-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604176d9c0c9aa7 2016-04-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604166d9c0c9aa7 2016-04-16 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.10.2-nightly201604156d9c0c9aa7 2016-04-15 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.8.3 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030801c331ea37 2016-03-08 linux-armv7l 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030701c331ea37 2016-03-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030601c331ea37 2016-03-06 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030501c331ea37 2016-03-05 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030401c331ea37 2016-03-04 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.2-nightly2016030301c331ea37 2016-03-03 headers,linux-arm64,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2g 47 - - +v5.7.1-nightly20160302c83725c604 2016-03-02 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly20160301c83725c604 2016-03-01 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly20160229c83725c604 2016-02-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly20160228f349a9a2cf 2016-02-28 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly201602271ecbdec2cf 2016-02-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly201602261ecbdec2cf 2016-02-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.7.1-nightly201602251ecbdec2cf 2016-02-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.6.1-nightly201602106d8eba0e5e 2016-02-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.6.0 4.6.85.31 1.8.0 1.2.8 1.0.2f 47 - - +v5.5.1-nightly20160127a8c2050c2d 2016-01-27 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.5.1-nightly20160126c8b6de244e 2016-01-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.5.1-nightly201601252d46ea0d93 2016-01-25 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.5.1-nightly201601242d46ea0d93 2016-01-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.5.1-nightly201601232d46ea0d93 2016-01-23 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.5.1-nightly201601222d46ea0d93 2016-01-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160121e855b596f4 2016-01-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160120e855b596f4 2016-01-20 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160119e855b596f4 2016-01-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160118e855b596f4 2016-01-18 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160117e855b596f4 2016-01-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160114e855b596f4 2016-01-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.2-nightly20160113e7d1c69707 2016-01-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-ppc64le,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.4.1-nightly20160107138e1e501e 2016-01-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.3.1-nightly20151224b4c51c5b76 2015-12-24 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.3.1-nightly2015121717fc5b4e03 2015-12-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.8.0 1.2.8 1.0.2e 47 - - +v5.2.1-nightly20151210cb938aaa33 2015-12-10 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - - +v5.1.2-nightly201512091c1c1a0f2b 2015-12-09 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - - +v5.1.2-nightly201512079d16729b20 2015-12-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2e 47 - - +v5.0.1-nightly2015111484bb74547d 2015-11-14 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.1-nightly2015111384bb74547d 2015-11-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.1-nightly2015111347f3735e88 2015-11-13 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.1-nightly2015111247f3735e88 2015-11-12 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.12 4.6.85.31 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.1-nightly2015111181997840f2 2015-11-11 win-x86-exe,win-x86-msi 3.3.12 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.1-nightly201510294e54dbec51 2015-10-29 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.0-nightly201510266a04cc0a43 2015-10-26 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 3.3.6 4.6.85.28 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.0-nightly201510226e78382605 2015-10-22 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.0-nightly20151021bf7c3dabb4 2015-10-21 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 47 - - +v5.0.0-nightly201510192296a4fc0f 2015-10-19 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - - +v5.0.0-nightly20151017676e61872f 2015-10-17 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - - +v5.0.0-nightly20151016676e61872f 2015-10-16 headers,linux-arm64,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x86-exe,win-x86-msi 2.14.7 4.6.85.25 1.7.5 1.2.8 1.0.2d 46 - - +v4.0.0-nightly201509079cae65c510 2015-09-07 headers,linux-arm64,linux-armv6l,linux-armv7l,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x64-msi,win-x86-exe,win-x86-msi 2.14.2 4.5.103.30 1.7.3 1.2.8 1.0.2d 45 - - +v0.12.10-nightly20160128a305339f66 2016-01-28 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - - +v0.12.10-nightly20160113801f6ad8a3 2016-01-13 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 2.14.9 3.28.71.19 1.6.1 1.2.8 1.0.1q 14 - - +v0.10.42-nightly20160128b125512a5c 2016-01-28 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - - +v0.10.42-nightly2016011328ab7b0e75 2016-01-13 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1q 11 - - +v0.10.41-nightly20151203036580393d 2015-12-03 headers,linux-x64,linux-x86,osx-x64-pkg,osx-x64-tar,osx-x86-tar,src,sunos-x64,sunos-x86,win-x64-exe,win-x86-exe,win-x86-msi 1.4.29 3.14.5.9 0.10.36 1.2.8 1.0.1p 11 - - diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt new file mode 100644 index 0000000..5f2e598 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote iojs.txt @@ -0,0 +1,41 @@ + iojs-v1.0.0 + iojs-v1.0.1 + iojs-v1.0.2 + iojs-v1.0.3 + iojs-v1.0.4 + iojs-v1.1.0 + iojs-v1.2.0 + iojs-v1.3.0 + iojs-v1.4.1 + iojs-v1.4.2 + iojs-v1.4.3 + iojs-v1.5.0 + iojs-v1.5.1 + iojs-v1.6.0 + iojs-v1.6.1 + iojs-v1.6.2 + iojs-v1.6.3 + iojs-v1.6.4 + iojs-v1.7.1 + iojs-v1.8.1 + iojs-v1.8.2 + iojs-v1.8.3 + iojs-v1.8.4 + iojs-v2.0.0 + iojs-v2.0.1 + iojs-v2.0.2 + iojs-v2.1.0 + iojs-v2.2.0 + iojs-v2.2.1 + iojs-v2.3.0 + iojs-v2.3.1 + iojs-v2.3.2 + iojs-v2.3.3 + iojs-v2.3.4 + iojs-v2.4.0 + iojs-v2.5.0 + iojs-v3.0.0 + iojs-v3.1.0 + iojs-v3.2.0 + iojs-v3.3.0 + iojs-v3.3.1 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote lts.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote lts.txt new file mode 100644 index 0000000..7d3cc9d --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote lts.txt @@ -0,0 +1,112 @@ + v4.2.0  (LTS: Argon) + v4.2.1  (LTS: Argon) + v4.2.2  (LTS: Argon) + v4.2.3  (LTS: Argon) + v4.2.4  (LTS: Argon) + v4.2.5  (LTS: Argon) + v4.2.6  (LTS: Argon) + v4.3.0  (LTS: Argon) + v4.3.1  (LTS: Argon) + v4.3.2  (LTS: Argon) + v4.4.0  (LTS: Argon) + v4.4.1  (LTS: Argon) + v4.4.2  (LTS: Argon) + v4.4.3  (LTS: Argon) + v4.4.4  (LTS: Argon) + v4.4.5  (LTS: Argon) + v4.4.6  (LTS: Argon) + v4.4.7  (LTS: Argon) + v4.5.0  (LTS: Argon) + v4.6.0  (LTS: Argon) + v4.6.1  (LTS: Argon) + v4.6.2  (LTS: Argon) + v4.7.0  (LTS: Argon) + v4.7.1  (LTS: Argon) + v4.7.2  (LTS: Argon) + v4.7.3  (LTS: Argon) + v4.8.0  (LTS: Argon) + v4.8.1  (LTS: Argon) + v4.8.2  (LTS: Argon) + v4.8.3  (LTS: Argon) + v4.8.4  (LTS: Argon) + v4.8.5  (LTS: Argon) + v4.8.6  (LTS: Argon) + v4.8.7  (LTS: Argon) + v4.9.0  (LTS: Argon) + v4.9.1  (Latest LTS: Argon) + v6.9.0  (LTS: Boron) + v6.9.1  (LTS: Boron) + v6.9.2  (LTS: Boron) + v6.9.3  (LTS: Boron) + v6.9.4  (LTS: Boron) + v6.9.5  (LTS: Boron) + v6.10.0  (LTS: Boron) + v6.10.1  (LTS: Boron) + v6.10.2  (LTS: Boron) + v6.10.3  (LTS: Boron) + v6.11.0  (LTS: Boron) + v6.11.1  (LTS: Boron) + v6.11.2  (LTS: Boron) + v6.11.3  (LTS: Boron) + v6.11.4  (LTS: Boron) + v6.11.5  (LTS: Boron) + v6.12.0  (LTS: Boron) + v6.12.1  (LTS: Boron) + v6.12.2  (LTS: Boron) + v6.12.3  (LTS: Boron) + v6.13.0  (LTS: Boron) + v6.13.1  (LTS: Boron) + v6.14.0  (LTS: Boron) + v6.14.1  (LTS: Boron) + v6.14.2  (LTS: Boron) + v6.14.3  (LTS: Boron) + v6.14.4  (LTS: Boron) + v6.15.0  (LTS: Boron) + v6.15.1  (LTS: Boron) + v6.16.0  (LTS: Boron) + v6.17.0  (LTS: Boron) + v6.17.1  (Latest LTS: Boron) + v8.9.0  (LTS: Carbon) + v8.9.1  (LTS: Carbon) + v8.9.2  (LTS: Carbon) + v8.9.3  (LTS: Carbon) + v8.9.4  (LTS: Carbon) + v8.10.0  (LTS: Carbon) + v8.11.0  (LTS: Carbon) + v8.11.1  (LTS: Carbon) + v8.11.2  (LTS: Carbon) + v8.11.3  (LTS: Carbon) + v8.11.4  (LTS: Carbon) + v8.12.0  (LTS: Carbon) + v8.13.0  (LTS: Carbon) + v8.14.0  (LTS: Carbon) + v8.14.1  (LTS: Carbon) + v8.15.0  (LTS: Carbon) + v8.15.1  (LTS: Carbon) + v8.16.0  (LTS: Carbon) + v8.16.1  (LTS: Carbon) + v8.16.2  (LTS: Carbon) + v8.17.0  (Latest LTS: Carbon) + v10.13.0  (LTS: Dubnium) + v10.14.0  (LTS: Dubnium) + v10.14.1  (LTS: Dubnium) + v10.14.2  (LTS: Dubnium) + v10.15.0  (LTS: Dubnium) + v10.15.1  (LTS: Dubnium) + v10.15.2  (LTS: Dubnium) + v10.15.3  (LTS: Dubnium) + v10.16.0  (LTS: Dubnium) + v10.16.1  (LTS: Dubnium) + v10.16.2  (LTS: Dubnium) + v10.16.3  (LTS: Dubnium) + v10.17.0  (LTS: Dubnium) + v10.18.0  (LTS: Dubnium) + v10.18.1  (LTS: Dubnium) + v10.19.0  (Latest LTS: Dubnium) + v12.13.0  (LTS: Erbium) + v12.13.1  (LTS: Erbium) + v12.14.0  (LTS: Erbium) + v12.14.1  (LTS: Erbium) + v12.15.0  (LTS: Erbium) + v12.16.0  (LTS: Erbium) + v12.16.1  (Latest LTS: Erbium) diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote node.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote node.txt new file mode 100644 index 0000000..8723e06 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote node.txt @@ -0,0 +1,496 @@ + v0.1.14 + v0.1.15 + v0.1.16 + v0.1.17 + v0.1.18 + v0.1.19 + v0.1.20 + v0.1.21 + v0.1.22 + v0.1.23 + v0.1.24 + v0.1.25 + v0.1.26 + v0.1.27 + v0.1.28 + v0.1.29 + v0.1.30 + v0.1.31 + v0.1.32 + v0.1.33 + v0.1.90 + v0.1.91 + v0.1.92 + v0.1.93 + v0.1.94 + v0.1.95 + v0.1.96 + v0.1.97 + v0.1.98 + v0.1.99 + v0.1.100 + v0.1.101 + v0.1.102 + v0.1.103 + v0.1.104 + v0.2.0 + v0.2.1 + v0.2.2 + v0.2.3 + v0.2.4 + v0.2.5 + v0.2.6 + v0.3.0 + v0.3.1 + v0.3.2 + v0.3.3 + v0.3.4 + v0.3.5 + v0.3.6 + v0.3.7 + v0.3.8 + v0.4.0 + v0.4.1 + v0.4.2 + v0.4.3 + v0.4.4 + v0.4.5 + v0.4.6 + v0.4.7 + v0.4.8 + v0.4.9 + v0.4.10 + v0.4.11 + v0.4.12 + v0.5.0 + v0.5.1 + v0.5.2 + v0.5.3 + v0.5.4 + v0.5.5 + v0.5.6 + v0.5.7 + v0.5.8 + v0.5.9 + v0.5.10 + v0.6.0 + v0.6.1 + v0.6.2 + v0.6.3 + v0.6.4 + v0.6.5 + v0.6.6 + v0.6.7 + v0.6.8 + v0.6.9 + v0.6.10 + v0.6.11 + v0.6.12 + v0.6.13 + v0.6.14 + v0.6.15 + v0.6.16 + v0.6.17 + v0.6.18 + v0.6.19 + v0.6.20 + v0.6.21 + v0.7.0 + v0.7.1 + v0.7.2 + v0.7.3 + v0.7.4 + v0.7.5 + v0.7.6 + v0.7.7 + v0.7.8 + v0.7.9 + v0.7.10 + v0.7.11 + v0.7.12 + v0.8.0 + v0.8.1 + v0.8.2 + v0.8.3 + v0.8.4 + v0.8.5 + v0.8.6 + v0.8.7 + v0.8.8 + v0.8.9 + v0.8.10 + v0.8.11 + v0.8.12 + v0.8.13 + v0.8.14 + v0.8.15 + v0.8.16 + v0.8.17 + v0.8.18 + v0.8.19 + v0.8.20 + v0.8.21 + v0.8.22 + v0.8.23 + v0.8.24 + v0.8.25 + v0.8.26 + v0.8.27 + v0.8.28 + v0.9.0 + v0.9.1 + v0.9.2 + v0.9.3 + v0.9.4 + v0.9.5 + v0.9.6 + v0.9.7 + v0.9.8 + v0.9.9 + v0.9.10 + v0.9.11 + v0.9.12 + v0.10.0 + v0.10.1 + v0.10.2 + v0.10.3 + v0.10.4 + v0.10.5 + v0.10.6 + v0.10.7 + v0.10.8 + v0.10.9 + v0.10.10 + v0.10.11 + v0.10.12 + v0.10.13 + v0.10.14 + v0.10.15 + v0.10.16 + v0.10.17 + v0.10.18 + v0.10.19 + v0.10.20 + v0.10.21 + v0.10.22 + v0.10.23 + v0.10.24 + v0.10.25 + v0.10.26 + v0.10.27 + v0.10.28 + v0.10.29 + v0.10.30 + v0.10.31 + v0.10.32 + v0.10.33 + v0.10.34 + v0.10.35 + v0.10.36 + v0.10.37 + v0.10.38 + v0.10.39 + v0.10.40 + v0.10.41 + v0.10.42 + v0.10.43 + v0.10.44 + v0.10.45 + v0.10.46 + v0.10.47 + v0.10.48 + v0.11.0 + v0.11.1 + v0.11.2 + v0.11.3 + v0.11.4 + v0.11.5 + v0.11.6 + v0.11.7 + v0.11.8 + v0.11.9 + v0.11.10 + v0.11.11 + v0.11.12 + v0.11.13 + v0.11.14 + v0.11.15 + v0.11.16 + v0.12.0 + v0.12.1 + v0.12.2 + v0.12.3 + v0.12.4 + v0.12.5 + v0.12.6 + v0.12.7 + v0.12.8 + v0.12.9 + v0.12.10 + v0.12.11 + v0.12.12 + v0.12.13 + v0.12.14 + v0.12.15 + v0.12.16 + v0.12.17 + v0.12.18 + v4.0.0 + v4.1.0 + v4.1.1 + v4.1.2 + v4.2.0  (LTS: Argon) + v4.2.1  (LTS: Argon) + v4.2.2  (LTS: Argon) + v4.2.3  (LTS: Argon) + v4.2.4  (LTS: Argon) + v4.2.5  (LTS: Argon) + v4.2.6  (LTS: Argon) + v4.3.0  (LTS: Argon) + v4.3.1  (LTS: Argon) + v4.3.2  (LTS: Argon) + v4.4.0  (LTS: Argon) + v4.4.1  (LTS: Argon) + v4.4.2  (LTS: Argon) + v4.4.3  (LTS: Argon) + v4.4.4  (LTS: Argon) + v4.4.5  (LTS: Argon) + v4.4.6  (LTS: Argon) + v4.4.7  (LTS: Argon) + v4.5.0  (LTS: Argon) + v4.6.0  (LTS: Argon) + v4.6.1  (LTS: Argon) + v4.6.2  (LTS: Argon) + v4.7.0  (LTS: Argon) + v4.7.1  (LTS: Argon) + v4.7.2  (LTS: Argon) + v4.7.3  (LTS: Argon) + v4.8.0  (LTS: Argon) + v4.8.1  (LTS: Argon) + v4.8.2  (LTS: Argon) + v4.8.3  (LTS: Argon) + v4.8.4  (LTS: Argon) + v4.8.5  (LTS: Argon) + v4.8.6  (LTS: Argon) + v4.8.7  (LTS: Argon) + v4.9.0  (LTS: Argon) + v4.9.1  (Latest LTS: Argon) + v5.0.0 + v5.1.0 + v5.1.1 + v5.2.0 + v5.3.0 + v5.4.0 + v5.4.1 + v5.5.0 + v5.6.0 + v5.7.0 + v5.7.1 + v5.8.0 + v5.9.0 + v5.9.1 + v5.10.0 + v5.10.1 + v5.11.0 + v5.11.1 + v5.12.0 + v6.0.0 + v6.1.0 + v6.2.0 + v6.2.1 + v6.2.2 + v6.3.0 + v6.3.1 + v6.4.0 + v6.5.0 + v6.6.0 + v6.7.0 + v6.8.0 + v6.8.1 + v6.9.0  (LTS: Boron) + v6.9.1  (LTS: Boron) + v6.9.2  (LTS: Boron) + v6.9.3  (LTS: Boron) + v6.9.4  (LTS: Boron) + v6.9.5  (LTS: Boron) + v6.10.0  (LTS: Boron) + v6.10.1  (LTS: Boron) + v6.10.2  (LTS: Boron) + v6.10.3  (LTS: Boron) + v6.11.0  (LTS: Boron) + v6.11.1  (LTS: Boron) + v6.11.2  (LTS: Boron) + v6.11.3  (LTS: Boron) + v6.11.4  (LTS: Boron) + v6.11.5  (LTS: Boron) + v6.12.0  (LTS: Boron) + v6.12.1  (LTS: Boron) + v6.12.2  (LTS: Boron) + v6.12.3  (LTS: Boron) + v6.13.0  (LTS: Boron) + v6.13.1  (LTS: Boron) + v6.14.0  (LTS: Boron) + v6.14.1  (LTS: Boron) + v6.14.2  (LTS: Boron) + v6.14.3  (LTS: Boron) + v6.14.4  (LTS: Boron) + v6.15.0  (LTS: Boron) + v6.15.1  (LTS: Boron) + v6.16.0  (LTS: Boron) + v6.17.0  (LTS: Boron) + v6.17.1  (Latest LTS: Boron) + v7.0.0 + v7.1.0 + v7.2.0 + v7.2.1 + v7.3.0 + v7.4.0 + v7.5.0 + v7.6.0 + v7.7.0 + v7.7.1 + v7.7.2 + v7.7.3 + v7.7.4 + v7.8.0 + v7.9.0 + v7.10.0 + v7.10.1 + v8.0.0 + v8.1.0 + v8.1.1 + v8.1.2 + v8.1.3 + v8.1.4 + v8.2.0 + v8.2.1 + v8.3.0 + v8.4.0 + v8.5.0 + v8.6.0 + v8.7.0 + v8.8.0 + v8.8.1 + v8.9.0  (LTS: Carbon) + v8.9.1  (LTS: Carbon) + v8.9.2  (LTS: Carbon) + v8.9.3  (LTS: Carbon) + v8.9.4  (LTS: Carbon) + v8.10.0  (LTS: Carbon) + v8.11.0  (LTS: Carbon) + v8.11.1  (LTS: Carbon) + v8.11.2  (LTS: Carbon) + v8.11.3  (LTS: Carbon) + v8.11.4  (LTS: Carbon) + v8.12.0  (LTS: Carbon) + v8.13.0  (LTS: Carbon) + v8.14.0  (LTS: Carbon) + v8.14.1  (LTS: Carbon) + v8.15.0  (LTS: Carbon) + v8.15.1  (LTS: Carbon) + v8.16.0  (LTS: Carbon) + v8.16.1  (LTS: Carbon) + v8.16.2  (LTS: Carbon) + v8.17.0  (Latest LTS: Carbon) + v9.0.0 + v9.1.0 + v9.2.0 + v9.2.1 + v9.3.0 + v9.4.0 + v9.5.0 + v9.6.0 + v9.6.1 + v9.7.0 + v9.7.1 + v9.8.0 + v9.9.0 + v9.10.0 + v9.10.1 + v9.11.0 + v9.11.1 + v9.11.2 + v10.0.0 + v10.1.0 + v10.2.0 + v10.2.1 + v10.3.0 + v10.4.0 + v10.4.1 + v10.5.0 + v10.6.0 + v10.7.0 + v10.8.0 + v10.9.0 + v10.10.0 + v10.11.0 + v10.12.0 + v10.13.0  (LTS: Dubnium) + v10.14.0  (LTS: Dubnium) + v10.14.1  (LTS: Dubnium) + v10.14.2  (LTS: Dubnium) + v10.15.0  (LTS: Dubnium) + v10.15.1  (LTS: Dubnium) + v10.15.2  (LTS: Dubnium) + v10.15.3  (LTS: Dubnium) + v10.16.0  (LTS: Dubnium) + v10.16.1  (LTS: Dubnium) + v10.16.2  (LTS: Dubnium) + v10.16.3  (LTS: Dubnium) + v10.17.0  (LTS: Dubnium) + v10.18.0  (LTS: Dubnium) + v10.18.1  (LTS: Dubnium) + v10.19.0  (Latest LTS: Dubnium) + v11.0.0 + v11.1.0 + v11.2.0 + v11.3.0 + v11.4.0 + v11.5.0 + v11.6.0 + v11.7.0 + v11.8.0 + v11.9.0 + v11.10.0 + v11.10.1 + v11.11.0 + v11.12.0 + v11.13.0 + v11.14.0 + v11.15.0 + v12.0.0 + v12.1.0 + v12.2.0 + v12.3.0 + v12.3.1 + v12.4.0 + v12.5.0 + v12.6.0 + v12.7.0 + v12.8.0 + v12.8.1 + v12.9.0 + v12.9.1 + v12.10.0 + v12.11.0 + v12.11.1 + v12.12.0 + v12.13.0  (LTS: Erbium) + v12.13.1  (LTS: Erbium) + v12.14.0  (LTS: Erbium) + v12.14.1  (LTS: Erbium) + v12.15.0  (LTS: Erbium) + v12.16.0  (LTS: Erbium) + v12.16.1  (Latest LTS: Erbium) + v13.0.0 + v13.0.1 + v13.1.0 + v13.2.0 + v13.3.0 + v13.4.0 + v13.5.0 + v13.6.0 + v13.7.0 + v13.8.0 + v13.9.0 + v13.10.0 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote.txt new file mode 100644 index 0000000..e7199cd --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm ls-remote.txt @@ -0,0 +1,537 @@ + v0.1.14 + v0.1.15 + v0.1.16 + v0.1.17 + v0.1.18 + v0.1.19 + v0.1.20 + v0.1.21 + v0.1.22 + v0.1.23 + v0.1.24 + v0.1.25 + v0.1.26 + v0.1.27 + v0.1.28 + v0.1.29 + v0.1.30 + v0.1.31 + v0.1.32 + v0.1.33 + v0.1.90 + v0.1.91 + v0.1.92 + v0.1.93 + v0.1.94 + v0.1.95 + v0.1.96 + v0.1.97 + v0.1.98 + v0.1.99 + v0.1.100 + v0.1.101 + v0.1.102 + v0.1.103 + v0.1.104 + v0.2.0 + v0.2.1 + v0.2.2 + v0.2.3 + v0.2.4 + v0.2.5 + v0.2.6 + v0.3.0 + v0.3.1 + v0.3.2 + v0.3.3 + v0.3.4 + v0.3.5 + v0.3.6 + v0.3.7 + v0.3.8 + v0.4.0 + v0.4.1 + v0.4.2 + v0.4.3 + v0.4.4 + v0.4.5 + v0.4.6 + v0.4.7 + v0.4.8 + v0.4.9 + v0.4.10 + v0.4.11 + v0.4.12 + v0.5.0 + v0.5.1 + v0.5.2 + v0.5.3 + v0.5.4 + v0.5.5 + v0.5.6 + v0.5.7 + v0.5.8 + v0.5.9 + v0.5.10 + v0.6.0 + v0.6.1 + v0.6.2 + v0.6.3 + v0.6.4 + v0.6.5 + v0.6.6 + v0.6.7 + v0.6.8 + v0.6.9 + v0.6.10 + v0.6.11 + v0.6.12 + v0.6.13 + v0.6.14 + v0.6.15 + v0.6.16 + v0.6.17 + v0.6.18 + v0.6.19 + v0.6.20 + v0.6.21 + v0.7.0 + v0.7.1 + v0.7.2 + v0.7.3 + v0.7.4 + v0.7.5 + v0.7.6 + v0.7.7 + v0.7.8 + v0.7.9 + v0.7.10 + v0.7.11 + v0.7.12 + v0.8.0 + v0.8.1 + v0.8.2 + v0.8.3 + v0.8.4 + v0.8.5 + v0.8.6 + v0.8.7 + v0.8.8 + v0.8.9 + v0.8.10 + v0.8.11 + v0.8.12 + v0.8.13 + v0.8.14 + v0.8.15 + v0.8.16 + v0.8.17 + v0.8.18 + v0.8.19 + v0.8.20 + v0.8.21 + v0.8.22 + v0.8.23 + v0.8.24 + v0.8.25 + v0.8.26 + v0.8.27 + v0.8.28 + v0.9.0 + v0.9.1 + v0.9.2 + v0.9.3 + v0.9.4 + v0.9.5 + v0.9.6 + v0.9.7 + v0.9.8 + v0.9.9 + v0.9.10 + v0.9.11 + v0.9.12 + v0.10.0 + v0.10.1 + v0.10.2 + v0.10.3 + v0.10.4 + v0.10.5 + v0.10.6 + v0.10.7 + v0.10.8 + v0.10.9 + v0.10.10 + v0.10.11 + v0.10.12 + v0.10.13 + v0.10.14 + v0.10.15 + v0.10.16 + v0.10.17 + v0.10.18 + v0.10.19 + v0.10.20 + v0.10.21 + v0.10.22 + v0.10.23 + v0.10.24 + v0.10.25 + v0.10.26 + v0.10.27 + v0.10.28 + v0.10.29 + v0.10.30 + v0.10.31 + v0.10.32 + v0.10.33 + v0.10.34 + v0.10.35 + v0.10.36 + v0.10.37 + v0.10.38 + v0.10.39 + v0.10.40 + v0.10.41 + v0.10.42 + v0.10.43 + v0.10.44 + v0.10.45 + v0.10.46 + v0.10.47 + v0.10.48 + v0.11.0 + v0.11.1 + v0.11.2 + v0.11.3 + v0.11.4 + v0.11.5 + v0.11.6 + v0.11.7 + v0.11.8 + v0.11.9 + v0.11.10 + v0.11.11 + v0.11.12 + v0.11.13 + v0.11.14 + v0.11.15 + v0.11.16 + v0.12.0 + v0.12.1 + v0.12.2 + v0.12.3 + v0.12.4 + v0.12.5 + v0.12.6 + v0.12.7 + v0.12.8 + v0.12.9 + v0.12.10 + v0.12.11 + v0.12.12 + v0.12.13 + v0.12.14 + v0.12.15 + v0.12.16 + v0.12.17 + v0.12.18 + iojs-v1.0.0 + iojs-v1.0.1 + iojs-v1.0.2 + iojs-v1.0.3 + iojs-v1.0.4 + iojs-v1.1.0 + iojs-v1.2.0 + iojs-v1.3.0 + iojs-v1.4.1 + iojs-v1.4.2 + iojs-v1.4.3 + iojs-v1.5.0 + iojs-v1.5.1 + iojs-v1.6.0 + iojs-v1.6.1 + iojs-v1.6.2 + iojs-v1.6.3 + iojs-v1.6.4 + iojs-v1.7.1 + iojs-v1.8.1 + iojs-v1.8.2 + iojs-v1.8.3 + iojs-v1.8.4 + iojs-v2.0.0 + iojs-v2.0.1 + iojs-v2.0.2 + iojs-v2.1.0 + iojs-v2.2.0 + iojs-v2.2.1 + iojs-v2.3.0 + iojs-v2.3.1 + iojs-v2.3.2 + iojs-v2.3.3 + iojs-v2.3.4 + iojs-v2.4.0 + iojs-v2.5.0 + iojs-v3.0.0 + iojs-v3.1.0 + iojs-v3.2.0 + iojs-v3.3.0 + iojs-v3.3.1 + v4.0.0 + v4.1.0 + v4.1.1 + v4.1.2 + v4.2.0  (LTS: Argon) + v4.2.1  (LTS: Argon) + v4.2.2  (LTS: Argon) + v4.2.3  (LTS: Argon) + v4.2.4  (LTS: Argon) + v4.2.5  (LTS: Argon) + v4.2.6  (LTS: Argon) + v4.3.0  (LTS: Argon) + v4.3.1  (LTS: Argon) + v4.3.2  (LTS: Argon) + v4.4.0  (LTS: Argon) + v4.4.1  (LTS: Argon) + v4.4.2  (LTS: Argon) + v4.4.3  (LTS: Argon) + v4.4.4  (LTS: Argon) + v4.4.5  (LTS: Argon) + v4.4.6  (LTS: Argon) + v4.4.7  (LTS: Argon) + v4.5.0  (LTS: Argon) + v4.6.0  (LTS: Argon) + v4.6.1  (LTS: Argon) + v4.6.2  (LTS: Argon) + v4.7.0  (LTS: Argon) + v4.7.1  (LTS: Argon) + v4.7.2  (LTS: Argon) + v4.7.3  (LTS: Argon) + v4.8.0  (LTS: Argon) + v4.8.1  (LTS: Argon) + v4.8.2  (LTS: Argon) + v4.8.3  (LTS: Argon) + v4.8.4  (LTS: Argon) + v4.8.5  (LTS: Argon) + v4.8.6  (LTS: Argon) + v4.8.7  (LTS: Argon) + v4.9.0  (LTS: Argon) + v4.9.1  (Latest LTS: Argon) + v5.0.0 + v5.1.0 + v5.1.1 + v5.2.0 + v5.3.0 + v5.4.0 + v5.4.1 + v5.5.0 + v5.6.0 + v5.7.0 + v5.7.1 + v5.8.0 + v5.9.0 + v5.9.1 + v5.10.0 + v5.10.1 + v5.11.0 + v5.11.1 + v5.12.0 + v6.0.0 + v6.1.0 + v6.2.0 + v6.2.1 + v6.2.2 + v6.3.0 + v6.3.1 + v6.4.0 + v6.5.0 + v6.6.0 + v6.7.0 + v6.8.0 + v6.8.1 + v6.9.0  (LTS: Boron) + v6.9.1  (LTS: Boron) + v6.9.2  (LTS: Boron) + v6.9.3  (LTS: Boron) + v6.9.4  (LTS: Boron) + v6.9.5  (LTS: Boron) + v6.10.0  (LTS: Boron) + v6.10.1  (LTS: Boron) + v6.10.2  (LTS: Boron) + v6.10.3  (LTS: Boron) + v6.11.0  (LTS: Boron) + v6.11.1  (LTS: Boron) + v6.11.2  (LTS: Boron) + v6.11.3  (LTS: Boron) + v6.11.4  (LTS: Boron) + v6.11.5  (LTS: Boron) + v6.12.0  (LTS: Boron) + v6.12.1  (LTS: Boron) + v6.12.2  (LTS: Boron) + v6.12.3  (LTS: Boron) + v6.13.0  (LTS: Boron) + v6.13.1  (LTS: Boron) + v6.14.0  (LTS: Boron) + v6.14.1  (LTS: Boron) + v6.14.2  (LTS: Boron) + v6.14.3  (LTS: Boron) + v6.14.4  (LTS: Boron) + v6.15.0  (LTS: Boron) + v6.15.1  (LTS: Boron) + v6.16.0  (LTS: Boron) + v6.17.0  (LTS: Boron) + v6.17.1  (Latest LTS: Boron) + v7.0.0 + v7.1.0 + v7.2.0 + v7.2.1 + v7.3.0 + v7.4.0 + v7.5.0 + v7.6.0 + v7.7.0 + v7.7.1 + v7.7.2 + v7.7.3 + v7.7.4 + v7.8.0 + v7.9.0 + v7.10.0 + v7.10.1 + v8.0.0 + v8.1.0 + v8.1.1 + v8.1.2 + v8.1.3 + v8.1.4 + v8.2.0 + v8.2.1 + v8.3.0 + v8.4.0 + v8.5.0 + v8.6.0 + v8.7.0 + v8.8.0 + v8.8.1 + v8.9.0  (LTS: Carbon) + v8.9.1  (LTS: Carbon) + v8.9.2  (LTS: Carbon) + v8.9.3  (LTS: Carbon) + v8.9.4  (LTS: Carbon) + v8.10.0  (LTS: Carbon) + v8.11.0  (LTS: Carbon) + v8.11.1  (LTS: Carbon) + v8.11.2  (LTS: Carbon) + v8.11.3  (LTS: Carbon) + v8.11.4  (LTS: Carbon) + v8.12.0  (LTS: Carbon) + v8.13.0  (LTS: Carbon) + v8.14.0  (LTS: Carbon) + v8.14.1  (LTS: Carbon) + v8.15.0  (LTS: Carbon) + v8.15.1  (LTS: Carbon) + v8.16.0  (LTS: Carbon) + v8.16.1  (LTS: Carbon) + v8.16.2  (LTS: Carbon) + v8.17.0  (Latest LTS: Carbon) + v9.0.0 + v9.1.0 + v9.2.0 + v9.2.1 + v9.3.0 + v9.4.0 + v9.5.0 + v9.6.0 + v9.6.1 + v9.7.0 + v9.7.1 + v9.8.0 + v9.9.0 + v9.10.0 + v9.10.1 + v9.11.0 + v9.11.1 + v9.11.2 + v10.0.0 + v10.1.0 + v10.2.0 + v10.2.1 + v10.3.0 + v10.4.0 + v10.4.1 + v10.5.0 + v10.6.0 + v10.7.0 + v10.8.0 + v10.9.0 + v10.10.0 + v10.11.0 + v10.12.0 + v10.13.0  (LTS: Dubnium) + v10.14.0  (LTS: Dubnium) + v10.14.1  (LTS: Dubnium) + v10.14.2  (LTS: Dubnium) + v10.15.0  (LTS: Dubnium) + v10.15.1  (LTS: Dubnium) + v10.15.2  (LTS: Dubnium) + v10.15.3  (LTS: Dubnium) + v10.16.0  (LTS: Dubnium) + v10.16.1  (LTS: Dubnium) + v10.16.2  (LTS: Dubnium) + v10.16.3  (LTS: Dubnium) + v10.17.0  (LTS: Dubnium) + v10.18.0  (LTS: Dubnium) + v10.18.1  (LTS: Dubnium) + v10.19.0  (Latest LTS: Dubnium) + v11.0.0 + v11.1.0 + v11.2.0 + v11.3.0 + v11.4.0 + v11.5.0 + v11.6.0 + v11.7.0 + v11.8.0 + v11.9.0 + v11.10.0 + v11.10.1 + v11.11.0 + v11.12.0 + v11.13.0 + v11.14.0 + v11.15.0 + v12.0.0 + v12.1.0 + v12.2.0 + v12.3.0 + v12.3.1 + v12.4.0 + v12.5.0 + v12.6.0 + v12.7.0 + v12.8.0 + v12.8.1 + v12.9.0 + v12.9.1 + v12.10.0 + v12.11.0 + v12.11.1 + v12.12.0 + v12.13.0  (LTS: Erbium) + v12.13.1  (LTS: Erbium) + v12.14.0  (LTS: Erbium) + v12.14.1  (LTS: Erbium) + v12.15.0  (LTS: Erbium) + v12.16.0  (LTS: Erbium) + v12.16.1  (Latest LTS: Erbium) + v13.0.0 + v13.0.1 + v13.1.0 + v13.2.0 + v13.3.0 + v13.4.0 + v13.5.0 + v13.6.0 + v13.7.0 + v13.8.0 + v13.9.0 + v13.10.0 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt new file mode 100644 index 0000000..78d685d --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS argon.txt @@ -0,0 +1,36 @@ +v4.2.0 Argon +v4.2.1 Argon +v4.2.2 Argon +v4.2.3 Argon +v4.2.4 Argon +v4.2.5 Argon +v4.2.6 Argon +v4.3.0 Argon +v4.3.1 Argon +v4.3.2 Argon +v4.4.0 Argon +v4.4.1 Argon +v4.4.2 Argon +v4.4.3 Argon +v4.4.4 Argon +v4.4.5 Argon +v4.4.6 Argon +v4.4.7 Argon +v4.5.0 Argon +v4.6.0 Argon +v4.6.1 Argon +v4.6.2 Argon +v4.7.0 Argon +v4.7.1 Argon +v4.7.2 Argon +v4.7.3 Argon +v4.8.0 Argon +v4.8.1 Argon +v4.8.2 Argon +v4.8.3 Argon +v4.8.4 Argon +v4.8.5 Argon +v4.8.6 Argon +v4.8.7 Argon +v4.9.0 Argon +v4.9.1 Argon * diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly argon.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly argon.txt new file mode 100644 index 0000000..f0a2463 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly argon.txt @@ -0,0 +1 @@ +N/A diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt new file mode 100644 index 0000000..bf60759 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS nightly.txt @@ -0,0 +1,25 @@ +v6.9.1-nightly201610183843b96e46 Boron +v6.9.2-nightly201610208bb346d61a Boron +v6.9.3-nightly20161206c350268432 Boron +v6.9.4-nightly201701049844692719 Boron +v6.9.5-nightly2017013187ac44974a Boron +v6.9.6-nightly201702013f61aae59d Boron +v6.10.1-nightly20170222ee10f21f3b Boron +v6.10.2-nightly20170322426968ddd8 Boron +v6.10.3-nightly2017040479546c0b5a Boron +v6.10.4-nightly20170502312091a196 Boron +v6.11.1-nightly20170607f7ca483d68 Boron * +v8.9.1-nightly20171104a815e1b6a2 Carbon * +v10.13.1-nightly20181127a66d8774ac Dubnium +v10.14.1-nightly20181129bda1cc703a Dubnium +v10.14.2-nightly20181206fb99a4e9fa Dubnium +v10.14.3-nightly2018122617f4208a3b Dubnium +v10.15.1-nightly201901292d6e145340 Dubnium +v10.15.2-nightly201902215711238b4e Dubnium +v10.15.3-nightly20190301156e4c8e89 Dubnium +v10.15.4-nightly20190522cda0d16414 Dubnium +v10.16.1-nightly201907310339fba1bb Dubnium +v10.16.2-nightly20190801f025f8524b Dubnium +v10.16.3-nightly20190807b743000a96 Dubnium +v10.16.4-nightly20190923859d47593e9fd97e6a9eae6eeb8b6e910acfe434 Dubnium * +v12.13.1-nightly20191022d9174b4cc5 Erbium * diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt new file mode 100644 index 0000000..8250fac --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote LTS.txt @@ -0,0 +1,112 @@ +v4.2.0 Argon +v4.2.1 Argon +v4.2.2 Argon +v4.2.3 Argon +v4.2.4 Argon +v4.2.5 Argon +v4.2.6 Argon +v4.3.0 Argon +v4.3.1 Argon +v4.3.2 Argon +v4.4.0 Argon +v4.4.1 Argon +v4.4.2 Argon +v4.4.3 Argon +v4.4.4 Argon +v4.4.5 Argon +v4.4.6 Argon +v4.4.7 Argon +v4.5.0 Argon +v4.6.0 Argon +v4.6.1 Argon +v4.6.2 Argon +v4.7.0 Argon +v4.7.1 Argon +v4.7.2 Argon +v4.7.3 Argon +v4.8.0 Argon +v4.8.1 Argon +v4.8.2 Argon +v4.8.3 Argon +v4.8.4 Argon +v4.8.5 Argon +v4.8.6 Argon +v4.8.7 Argon +v4.9.0 Argon +v4.9.1 Argon * +v6.9.0 Boron +v6.9.1 Boron +v6.9.2 Boron +v6.9.3 Boron +v6.9.4 Boron +v6.9.5 Boron +v6.10.0 Boron +v6.10.1 Boron +v6.10.2 Boron +v6.10.3 Boron +v6.11.0 Boron +v6.11.1 Boron +v6.11.2 Boron +v6.11.3 Boron +v6.11.4 Boron +v6.11.5 Boron +v6.12.0 Boron +v6.12.1 Boron +v6.12.2 Boron +v6.12.3 Boron +v6.13.0 Boron +v6.13.1 Boron +v6.14.0 Boron +v6.14.1 Boron +v6.14.2 Boron +v6.14.3 Boron +v6.14.4 Boron +v6.15.0 Boron +v6.15.1 Boron +v6.16.0 Boron +v6.17.0 Boron +v6.17.1 Boron * +v8.9.0 Carbon +v8.9.1 Carbon +v8.9.2 Carbon +v8.9.3 Carbon +v8.9.4 Carbon +v8.10.0 Carbon +v8.11.0 Carbon +v8.11.1 Carbon +v8.11.2 Carbon +v8.11.3 Carbon +v8.11.4 Carbon +v8.12.0 Carbon +v8.13.0 Carbon +v8.14.0 Carbon +v8.14.1 Carbon +v8.15.0 Carbon +v8.15.1 Carbon +v8.16.0 Carbon +v8.16.1 Carbon +v8.16.2 Carbon +v8.17.0 Carbon * +v10.13.0 Dubnium +v10.14.0 Dubnium +v10.14.1 Dubnium +v10.14.2 Dubnium +v10.15.0 Dubnium +v10.15.1 Dubnium +v10.15.2 Dubnium +v10.15.3 Dubnium +v10.16.0 Dubnium +v10.16.1 Dubnium +v10.16.2 Dubnium +v10.16.3 Dubnium +v10.17.0 Dubnium +v10.18.0 Dubnium +v10.18.1 Dubnium +v10.19.0 Dubnium * +v12.13.0 Erbium +v12.13.1 Erbium +v12.14.0 Erbium +v12.14.1 Erbium +v12.15.0 Erbium +v12.16.0 Erbium +v12.16.1 Erbium * diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt new file mode 100644 index 0000000..5e48d39 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote nightly.txt @@ -0,0 +1,138 @@ +v0.10.41-nightly20151203036580393d +v0.10.42-nightly20160128b125512a5c +v0.12.10-nightly20160128a305339f66 +v4.0.0-nightly201509079cae65c510 +v5.0.0-nightly201510266a04cc0a43 +v5.0.1-nightly2015111484bb74547d +v5.1.2-nightly201512091c1c1a0f2b +v5.2.1-nightly20151210cb938aaa33 +v5.3.1-nightly20151224b4c51c5b76 +v5.4.1-nightly20160107138e1e501e +v5.4.2-nightly20160121e855b596f4 +v5.5.1-nightly20160127a8c2050c2d +v5.6.1-nightly201602106d8eba0e5e +v5.7.1-nightly20160302c83725c604 +v5.7.2-nightly2016030801c331ea37 +v5.10.2-nightly201604206d9c0c9aa7 +v5.11.1-nightly20160504bec5d50f1e +v5.11.2-nightly2016062103d36aea4f +v6.0.0-nightly20160425eb4201f07a +v6.3.1-nightly201607209e9d499b8b +v6.3.2-nightly20160815da9bd2fc48 +v6.4.1-nightly20160825723fa9637c +v6.5.1-nightly20160914180867d6a6 +v6.6.1-nightly20160927f8ad0dc0e2 +v6.7.1-nightly20161007d7454e7547 +v6.8.1-nightly201610132540417ef5 +v6.8.2-nightly201610154613c22b00 +v6.9.1-nightly201610183843b96e46 Boron +v6.9.2-nightly201610208bb346d61a Boron +v6.9.3-nightly20161206c350268432 Boron +v6.9.4-nightly201701049844692719 Boron +v6.9.5-nightly2017013187ac44974a Boron +v6.9.6-nightly201702013f61aae59d Boron +v6.10.1-nightly20170222ee10f21f3b Boron +v6.10.2-nightly20170322426968ddd8 Boron +v6.10.3-nightly2017040479546c0b5a Boron +v6.10.4-nightly20170502312091a196 Boron +v6.11.1-nightly20170607f7ca483d68 Boron * +v7.0.0-nightly201610246bbdd668bd +v7.0.1-nightly2016102527e1749dcb +v7.1.1-nightly201611093daf11635d +v7.2.0-nightly20161123c1aa949064 +v7.2.1-nightly201611248cabe28efb +v7.2.2-nightly20161207c2cc11b3c6 +v7.3.1-nightly20161221586967a078 +v7.4.1-nightly20170104e07b6516d7 +v7.5.1-nightly2017020113a024d531 +v7.6.1-nightly201702227a6367017c +v7.7.1-nightly201703019c75f4c78a +v7.7.2-nightly20170302b20bc130ef +v7.7.3-nightly20170309c62798034a +v7.7.4-nightly20170315753adee6aa +v7.7.5-nightly20170322bc664cb034 +v7.8.1-nightly20170329517f13b607 +v7.9.1-nightly20170411675ece47b3 +v7.10.1-nightly2017050369a8053e8a +v8.0.0-nightly20170530effeff1843 +v8.1.0-nightly20170612f6fc46e036 +v8.1.1-nightly2017061323318c7661 +v8.1.2-nightly20170614a1b27dbfb4 +v8.1.3-nightly201706220b96a2640b +v8.1.4-nightly20170704c2c7eb1a41 +v8.1.5-nightly20170718e9491f1cd4 +v8.2.1-nightly2017080791b7843aeb +v8.3.1-nightly201708182d8d355a5f +v8.4.1-nightly201709104b28e0055e +v8.5.1-nightly20170921535f8d5281 +v8.6.1-nightly201710116f42b680e3 +v8.7.1-nightly2017102478a6ef46a9 +v8.8.1-nightly201710256fbef7f350 +v8.8.2-nightly20171030f00ba6b142 +v8.9.1-nightly20171104a815e1b6a2 Carbon * +v9.0.0-nightly2017103182790d84f2 +v9.0.1-nightly20171105ed0fbd8d72 +v9.1.1-nightly20171207c81e9682c4 +v9.2.1-nightly20171208f0f9e1abf0 +v9.2.2-nightly20171212f8143214be +v9.3.1-nightly2018010930273d400c +v9.4.1-nightly20180124dd56bd1591 +v9.5.1-nightly20180221b9b58100e0 +v9.6.1-nightly20180222927c1b1a7e +v9.6.2-nightly201802277853a7fd2a +v9.7.1-nightly201803013f3995b7b7 +v9.7.2-nightly20180307cde6671b41 +v9.8.1-nightly20180320607b33cfcc +v9.9.1-nightly201803256591d9f761 +v9.10.0-nightly201803270a18bf1304 +v9.10.1-nightly201803284844a263ce +v9.10.2-nightly201804042bdf3ca235 +v9.11.2-nightly201804135d9a7f81ae +v10.0.0-nightly20180424982adb5994 +v10.0.1-nightly20180505ff148b987d +v10.1.1-nightly20180523235a272838 +v10.2.1-nightly20180524be71c5dea9 +v10.2.2-nightly20180526efc7f91354 +v10.3.1-nightly201806067c0c61bde1 +v10.4.1-nightly201806125752f520b1 +v10.4.2-nightly20180619bc20ec0c0f +v10.5.1-nightly201807035d6d6fb121 +v10.6.1-nightly20180718eef975ebae +v10.7.1-nightly2018080162fd84528e +v10.8.1-nightly2018081382830a809b +v10.9.0-nightly20180906707a37f74f +v10.10.1-nightly201809205da1f0ca2c +v10.11.1-nightly20181010d16486b215 +v10.12.1-nightly201810283f63297fe8 +v10.13.1-nightly20181127a66d8774ac Dubnium +v10.14.1-nightly20181129bda1cc703a Dubnium +v10.14.2-nightly20181206fb99a4e9fa Dubnium +v10.14.3-nightly2018122617f4208a3b Dubnium +v10.15.1-nightly201901292d6e145340 Dubnium +v10.15.2-nightly201902215711238b4e Dubnium +v10.15.3-nightly20190301156e4c8e89 Dubnium +v10.15.4-nightly20190522cda0d16414 Dubnium +v10.16.1-nightly201907310339fba1bb Dubnium +v10.16.2-nightly20190801f025f8524b Dubnium +v10.16.3-nightly20190807b743000a96 Dubnium +v10.16.4-nightly20190923859d47593e9fd97e6a9eae6eeb8b6e910acfe434 Dubnium * +v11.0.0-nightly20181023d901d16b39 +v11.1.0-nightly20181101af6d26281f +v12.0.0-nightly20190423859421188b +v12.10.1-nightly20190925edd7c579e8 +v12.11.1-nightly20190926acd08fdce5 +v12.11.2-nightly201910115fdf4a474f +v12.12.1-nightly201910123f3c41cfb0 +v12.13.1-nightly20191022d9174b4cc5 Erbium * +v13.0.0-nightly2019102271b342f937 +v13.0.2-nightly20191028e4ab6fced1 +v13.1.1-nightly201911219b71534d23 +v13.2.1-nightly2019120319b31c1bc5 +v13.3.1-nightly20191214b3ae532392 +v13.4.1-nightly2019121896a65e85c5 +v13.5.1-nightly2020010742d36dca90 +v13.6.1-nightly20200121cbd84c5ee1 +v13.7.1-nightly20200122340a1bd9a0 +v13.8.1-nightly202002187c2d33f38f +v13.9.1-nightly202003041bca7b6c70 +v14.0.0-nightly20200304de6cbd0e37 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt new file mode 100644 index 0000000..d26500d --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote stable nightly.txt @@ -0,0 +1 @@ +v14.0.0-nightly20200304de6cbd0e37 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt new file mode 100644 index 0000000..6208a05 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote stable.txt @@ -0,0 +1 @@ +v13.10.0 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote.txt new file mode 100644 index 0000000..1ff9505 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote.txt @@ -0,0 +1,496 @@ +v0.1.14 +v0.1.15 +v0.1.16 +v0.1.17 +v0.1.18 +v0.1.19 +v0.1.20 +v0.1.21 +v0.1.22 +v0.1.23 +v0.1.24 +v0.1.25 +v0.1.26 +v0.1.27 +v0.1.28 +v0.1.29 +v0.1.30 +v0.1.31 +v0.1.32 +v0.1.33 +v0.1.90 +v0.1.91 +v0.1.92 +v0.1.93 +v0.1.94 +v0.1.95 +v0.1.96 +v0.1.97 +v0.1.98 +v0.1.99 +v0.1.100 +v0.1.101 +v0.1.102 +v0.1.103 +v0.1.104 +v0.2.0 +v0.2.1 +v0.2.2 +v0.2.3 +v0.2.4 +v0.2.5 +v0.2.6 +v0.3.0 +v0.3.1 +v0.3.2 +v0.3.3 +v0.3.4 +v0.3.5 +v0.3.6 +v0.3.7 +v0.3.8 +v0.4.0 +v0.4.1 +v0.4.2 +v0.4.3 +v0.4.4 +v0.4.5 +v0.4.6 +v0.4.7 +v0.4.8 +v0.4.9 +v0.4.10 +v0.4.11 +v0.4.12 +v0.5.0 +v0.5.1 +v0.5.2 +v0.5.3 +v0.5.4 +v0.5.5 +v0.5.6 +v0.5.7 +v0.5.8 +v0.5.9 +v0.5.10 +v0.6.0 +v0.6.1 +v0.6.2 +v0.6.3 +v0.6.4 +v0.6.5 +v0.6.6 +v0.6.7 +v0.6.8 +v0.6.9 +v0.6.10 +v0.6.11 +v0.6.12 +v0.6.13 +v0.6.14 +v0.6.15 +v0.6.16 +v0.6.17 +v0.6.18 +v0.6.19 +v0.6.20 +v0.6.21 +v0.7.0 +v0.7.1 +v0.7.2 +v0.7.3 +v0.7.4 +v0.7.5 +v0.7.6 +v0.7.7 +v0.7.8 +v0.7.9 +v0.7.10 +v0.7.11 +v0.7.12 +v0.8.0 +v0.8.1 +v0.8.2 +v0.8.3 +v0.8.4 +v0.8.5 +v0.8.6 +v0.8.7 +v0.8.8 +v0.8.9 +v0.8.10 +v0.8.11 +v0.8.12 +v0.8.13 +v0.8.14 +v0.8.15 +v0.8.16 +v0.8.17 +v0.8.18 +v0.8.19 +v0.8.20 +v0.8.21 +v0.8.22 +v0.8.23 +v0.8.24 +v0.8.25 +v0.8.26 +v0.8.27 +v0.8.28 +v0.9.0 +v0.9.1 +v0.9.2 +v0.9.3 +v0.9.4 +v0.9.5 +v0.9.6 +v0.9.7 +v0.9.8 +v0.9.9 +v0.9.10 +v0.9.11 +v0.9.12 +v0.10.0 +v0.10.1 +v0.10.2 +v0.10.3 +v0.10.4 +v0.10.5 +v0.10.6 +v0.10.7 +v0.10.8 +v0.10.9 +v0.10.10 +v0.10.11 +v0.10.12 +v0.10.13 +v0.10.14 +v0.10.15 +v0.10.16 +v0.10.17 +v0.10.18 +v0.10.19 +v0.10.20 +v0.10.21 +v0.10.22 +v0.10.23 +v0.10.24 +v0.10.25 +v0.10.26 +v0.10.27 +v0.10.28 +v0.10.29 +v0.10.30 +v0.10.31 +v0.10.32 +v0.10.33 +v0.10.34 +v0.10.35 +v0.10.36 +v0.10.37 +v0.10.38 +v0.10.39 +v0.10.40 +v0.10.41 +v0.10.42 +v0.10.43 +v0.10.44 +v0.10.45 +v0.10.46 +v0.10.47 +v0.10.48 +v0.11.0 +v0.11.1 +v0.11.2 +v0.11.3 +v0.11.4 +v0.11.5 +v0.11.6 +v0.11.7 +v0.11.8 +v0.11.9 +v0.11.10 +v0.11.11 +v0.11.12 +v0.11.13 +v0.11.14 +v0.11.15 +v0.11.16 +v0.12.0 +v0.12.1 +v0.12.2 +v0.12.3 +v0.12.4 +v0.12.5 +v0.12.6 +v0.12.7 +v0.12.8 +v0.12.9 +v0.12.10 +v0.12.11 +v0.12.12 +v0.12.13 +v0.12.14 +v0.12.15 +v0.12.16 +v0.12.17 +v0.12.18 +v4.0.0 +v4.1.0 +v4.1.1 +v4.1.2 +v4.2.0 Argon +v4.2.1 Argon +v4.2.2 Argon +v4.2.3 Argon +v4.2.4 Argon +v4.2.5 Argon +v4.2.6 Argon +v4.3.0 Argon +v4.3.1 Argon +v4.3.2 Argon +v4.4.0 Argon +v4.4.1 Argon +v4.4.2 Argon +v4.4.3 Argon +v4.4.4 Argon +v4.4.5 Argon +v4.4.6 Argon +v4.4.7 Argon +v4.5.0 Argon +v4.6.0 Argon +v4.6.1 Argon +v4.6.2 Argon +v4.7.0 Argon +v4.7.1 Argon +v4.7.2 Argon +v4.7.3 Argon +v4.8.0 Argon +v4.8.1 Argon +v4.8.2 Argon +v4.8.3 Argon +v4.8.4 Argon +v4.8.5 Argon +v4.8.6 Argon +v4.8.7 Argon +v4.9.0 Argon +v4.9.1 Argon * +v5.0.0 +v5.1.0 +v5.1.1 +v5.2.0 +v5.3.0 +v5.4.0 +v5.4.1 +v5.5.0 +v5.6.0 +v5.7.0 +v5.7.1 +v5.8.0 +v5.9.0 +v5.9.1 +v5.10.0 +v5.10.1 +v5.11.0 +v5.11.1 +v5.12.0 +v6.0.0 +v6.1.0 +v6.2.0 +v6.2.1 +v6.2.2 +v6.3.0 +v6.3.1 +v6.4.0 +v6.5.0 +v6.6.0 +v6.7.0 +v6.8.0 +v6.8.1 +v6.9.0 Boron +v6.9.1 Boron +v6.9.2 Boron +v6.9.3 Boron +v6.9.4 Boron +v6.9.5 Boron +v6.10.0 Boron +v6.10.1 Boron +v6.10.2 Boron +v6.10.3 Boron +v6.11.0 Boron +v6.11.1 Boron +v6.11.2 Boron +v6.11.3 Boron +v6.11.4 Boron +v6.11.5 Boron +v6.12.0 Boron +v6.12.1 Boron +v6.12.2 Boron +v6.12.3 Boron +v6.13.0 Boron +v6.13.1 Boron +v6.14.0 Boron +v6.14.1 Boron +v6.14.2 Boron +v6.14.3 Boron +v6.14.4 Boron +v6.15.0 Boron +v6.15.1 Boron +v6.16.0 Boron +v6.17.0 Boron +v6.17.1 Boron * +v7.0.0 +v7.1.0 +v7.2.0 +v7.2.1 +v7.3.0 +v7.4.0 +v7.5.0 +v7.6.0 +v7.7.0 +v7.7.1 +v7.7.2 +v7.7.3 +v7.7.4 +v7.8.0 +v7.9.0 +v7.10.0 +v7.10.1 +v8.0.0 +v8.1.0 +v8.1.1 +v8.1.2 +v8.1.3 +v8.1.4 +v8.2.0 +v8.2.1 +v8.3.0 +v8.4.0 +v8.5.0 +v8.6.0 +v8.7.0 +v8.8.0 +v8.8.1 +v8.9.0 Carbon +v8.9.1 Carbon +v8.9.2 Carbon +v8.9.3 Carbon +v8.9.4 Carbon +v8.10.0 Carbon +v8.11.0 Carbon +v8.11.1 Carbon +v8.11.2 Carbon +v8.11.3 Carbon +v8.11.4 Carbon +v8.12.0 Carbon +v8.13.0 Carbon +v8.14.0 Carbon +v8.14.1 Carbon +v8.15.0 Carbon +v8.15.1 Carbon +v8.16.0 Carbon +v8.16.1 Carbon +v8.16.2 Carbon +v8.17.0 Carbon * +v9.0.0 +v9.1.0 +v9.2.0 +v9.2.1 +v9.3.0 +v9.4.0 +v9.5.0 +v9.6.0 +v9.6.1 +v9.7.0 +v9.7.1 +v9.8.0 +v9.9.0 +v9.10.0 +v9.10.1 +v9.11.0 +v9.11.1 +v9.11.2 +v10.0.0 +v10.1.0 +v10.2.0 +v10.2.1 +v10.3.0 +v10.4.0 +v10.4.1 +v10.5.0 +v10.6.0 +v10.7.0 +v10.8.0 +v10.9.0 +v10.10.0 +v10.11.0 +v10.12.0 +v10.13.0 Dubnium +v10.14.0 Dubnium +v10.14.1 Dubnium +v10.14.2 Dubnium +v10.15.0 Dubnium +v10.15.1 Dubnium +v10.15.2 Dubnium +v10.15.3 Dubnium +v10.16.0 Dubnium +v10.16.1 Dubnium +v10.16.2 Dubnium +v10.16.3 Dubnium +v10.17.0 Dubnium +v10.18.0 Dubnium +v10.18.1 Dubnium +v10.19.0 Dubnium * +v11.0.0 +v11.1.0 +v11.2.0 +v11.3.0 +v11.4.0 +v11.5.0 +v11.6.0 +v11.7.0 +v11.8.0 +v11.9.0 +v11.10.0 +v11.10.1 +v11.11.0 +v11.12.0 +v11.13.0 +v11.14.0 +v11.15.0 +v12.0.0 +v12.1.0 +v12.2.0 +v12.3.0 +v12.3.1 +v12.4.0 +v12.5.0 +v12.6.0 +v12.7.0 +v12.8.0 +v12.8.1 +v12.9.0 +v12.9.1 +v12.10.0 +v12.11.0 +v12.11.1 +v12.12.0 +v12.13.0 Erbium +v12.13.1 Erbium +v12.14.0 Erbium +v12.14.1 Erbium +v12.15.0 Erbium +v12.16.0 Erbium +v12.16.1 Erbium * +v13.0.0 +v13.0.1 +v13.1.0 +v13.2.0 +v13.3.0 +v13.4.0 +v13.5.0 +v13.6.0 +v13.7.0 +v13.8.0 +v13.9.0 +v13.10.0 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote_iojs.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote_iojs.txt new file mode 100644 index 0000000..d263a73 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_ls_remote_iojs.txt @@ -0,0 +1,41 @@ +iojs-v1.0.0 +iojs-v1.0.1 +iojs-v1.0.2 +iojs-v1.0.3 +iojs-v1.0.4 +iojs-v1.1.0 +iojs-v1.2.0 +iojs-v1.3.0 +iojs-v1.4.1 +iojs-v1.4.2 +iojs-v1.4.3 +iojs-v1.5.0 +iojs-v1.5.1 +iojs-v1.6.0 +iojs-v1.6.1 +iojs-v1.6.2 +iojs-v1.6.3 +iojs-v1.6.4 +iojs-v1.7.1 +iojs-v1.8.1 +iojs-v1.8.2 +iojs-v1.8.3 +iojs-v1.8.4 +iojs-v2.0.0 +iojs-v2.0.1 +iojs-v2.0.2 +iojs-v2.1.0 +iojs-v2.2.0 +iojs-v2.2.1 +iojs-v2.3.0 +iojs-v2.3.1 +iojs-v2.3.2 +iojs-v2.3.3 +iojs-v2.3.4 +iojs-v2.4.0 +iojs-v2.5.0 +iojs-v3.0.0 +iojs-v3.1.0 +iojs-v3.2.0 +iojs-v3.3.0 +iojs-v3.3.1 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt new file mode 100644 index 0000000..f6e8b66 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_make_alias LTS alias calls.txt @@ -0,0 +1,6 @@ +lts/*|lts/erbium +lts/erbium|v12.16.1 +lts/dubnium|v10.19.0 +lts/carbon|v8.17.0 +lts/boron|v6.17.1 +lts/argon|v4.9.1 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt new file mode 100644 index 0000000..ed9d00f --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable nightly.txt @@ -0,0 +1 @@ +14.0 diff --git a/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt new file mode 100644 index 0000000..857317a --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/mocks/nvm_print_implicit_alias remote stable.txt @@ -0,0 +1 @@ +13.10 diff --git a/_nodejs/.nvm/test/fast/Unit tests/node_version_has_solaris_binary b/_nodejs/.nvm/test/fast/Unit tests/node_version_has_solaris_binary new file mode 100755 index 0000000..bb70a99 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/node_version_has_solaris_binary @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +# Invalid version numbers fail +assert_not_ok node_version_has_solaris_binary "" +assert_not_ok node_version_has_solaris_binary "foo" + +# "Invalid" node version numbers fail +assert_not_ok node_version_has_solaris_binary "v1.0.0" +assert_not_ok node_version_has_solaris_binary "v3.3.1" + +# Valid io.js version numbers that have a Solaris binary fail +assert_not_ok node_version_has_solaris_binary "iojs-v3.3.1" + +# Invalid io.js version numbers fail +assert_not_ok node_version_has_solaris_binary "iojs-v0.12.7" + +# Valid node version numbers that don't have a Solaris binary fail +assert_not_ok node_version_has_solaris_binary "v0.8.5" + +# Valid node version numbers that have a Solaris binary succeed +assert_ok node_version_has_solaris_binary "v0.8.6" +assert_ok node_version_has_solaris_binary "v0.10.0" +assert_ok node_version_has_solaris_binary "v0.12.7" + +# Valid "merged" version numbers fail, because they're not +# considered node version numbers +assert_not_ok node_version_has_solaris_binary "v4.0.0" +assert_not_ok node_version_has_solaris_binary "v4.1.1" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm ls-remote b/_nodejs/.nvm/test/fast/Unit tests/nvm ls-remote new file mode 100755 index 0000000..074cfe2 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm ls-remote @@ -0,0 +1,32 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_download nvm_ls_remote nvm_ls_remote_iojs +} + +\. ../../../nvm.sh + +nvm deactivate 2>/dev/null || die 'unable to deactivate' + +\. ../../common.sh + +REMOTE="$PWD/mocks/nvm_ls_remote.txt" +nvm_ls_remote() { + cat "$REMOTE" +} +REMOTE_IOJS="$PWD/mocks/nvm_ls_remote_iojs.txt" +nvm_ls_remote_iojs() { + cat "$REMOTE_IOJS" +} + +EXPECTED_OUTPUT_PATH="$PWD/mocks/nvm ls-remote.txt" + +OUTPUT="$(nvm ls-remote | sed 's/[ \t]*$//')" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH" | sed 's/[ \t]*$//' )" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm ls-remote did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm version-remote b/_nodejs/.nvm/test/fast/Unit tests/nvm version-remote new file mode 100755 index 0000000..6a3beeb --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm version-remote @@ -0,0 +1,51 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_remote_version +} + +\. ../../../nvm.sh + +\. ../../common.sh + +nvm_remote_version() { + echo "NVM_VERSION_ONLY:${NVM_VERSION_ONLY-},NVM_LTS:${NVM_LTS-},PATTERN:${PATTERN-}" +} + +OUTPUT="$(nvm version-remote foo)" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:,PATTERN:foo' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote foo\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +OUTPUT="$(nvm version-remote --lts foo)" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:*,PATTERN:foo' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote --lts foo\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +OUTPUT="$(nvm version-remote foo --lts)" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:*,PATTERN:foo' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote foo --lts\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +OUTPUT="$(nvm version-remote --lts=argon foo)" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:argon,PATTERN:foo' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote --lts=argon foo\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +OUTPUT="$(nvm version-remote lts/foo)" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:foo,PATTERN:' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote lts/foo\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +OUTPUT="$(nvm version-remote 'lts/*')" +EXPECTED_OUTPUT='NVM_VERSION_ONLY:true,NVM_LTS:*,PATTERN:' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote lts/*\` called nvm_remote_version with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +set +ex # needed for stderr +OUTPUT="$(nvm version-remote --foo bar 2>&1)" +set -ex +EXPECTED_OUTPUT='Unsupported option "--foo".' +EXIT_CODE="$(nvm version-remote --foo bar >/dev/null 2>&1 && echo $? || echo $?)" +[ "${EXIT_CODE}" = 55 ] || die "\`nvm version-remote --foo bar\` did not exit with code 55, got >${EXIT_CODE}<" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm version-remote --foo bar\` errored with >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_add_iojs_prefix b/_nodejs/.nvm/test/fast/Unit tests/nvm_add_iojs_prefix new file mode 100755 index 0000000..f947118 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_add_iojs_prefix @@ -0,0 +1,9 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +[ "_$(nvm_add_iojs_prefix 1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix 1" did not return "iojs-v1"' +[ "_$(nvm_add_iojs_prefix iojs-1)" = "_iojs-v1" ] || die '"nvm_add_iojs_prefix iojs-1" did not return "iojs-v1"' +[ "_$(nvm_add_iojs_prefix iojs-1.2.3)" = "_iojs-v1.2.3" ] || die '"nvm_add_iojs_prefix iojs-1.2.3" did not return "iojs-v1.2.3"' diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_alias b/_nodejs/.nvm/test/fast/Unit tests/nvm_alias new file mode 100755 index 0000000..49cac2d --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_alias @@ -0,0 +1,32 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup () { + rm -rf ../../../alias/test +} + +\. ../../../nvm.sh + +OUTPUT="$(nvm_alias 2>&1)" +EXPECTED_OUTPUT='An alias is required.' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias' produced wrong output; got $OUTPUT" + +EXIT_CODE="$(nvm_alias >/dev/null 2>&1 ; echo $?)" +[ "_$EXIT_CODE" = "_1" ] || die "'nvm_alias' exited with $EXIT_CODE, expected 1" + +rm -rf ../../../alias/nonexistent + +OUTPUT="$(nvm_alias nonexistent 2>&1)" +EXPECTED_OUTPUT='Alias does not exist.' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias nonexistent' produced wrong output; got $OUTPUT" + +EXIT_CODE="$(nvm_alias nonexistent >/dev/null 2>&1 ; echo $?)" +[ "_$EXIT_CODE" = "_2" ] || die "'nvm_alias nonexistent' exited with $EXIT_CODE, expected 2" + +EXPECTED_OUTPUT="0.10" +nvm alias test "$EXPECTED_OUTPUT" || die "'nvm alias test $EXPECTED_OUTPUT' failed" +OUTPUT="$(nvm_alias test)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_alias test' produced wrong output; got $OUTPUT" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_alias LTS-N b/_nodejs/.nvm/test/fast/Unit tests/nvm_alias LTS-N new file mode 100755 index 0000000..352644a --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_alias LTS-N @@ -0,0 +1,34 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + + +cleanup() { + unset -f nvm_download +} + +\. ../../../nvm.sh + +set -ex + +MOCKS_DIR="${PWD}/mocks" + +# sample output at the time the test was written +TAB_PATH="${MOCKS_DIR}/nodejs.org-dist-index.tab" +nvm_download() { + cat "${TAB_PATH}" +} + +nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!" + +LTS_NAMES_PATH="${MOCKS_DIR}/LTS_names.txt" + +N=0 +while IFS= read -r LTS; do + N=$(($N+1)) + EXPECTED="$(nvm_alias "lts/${LTS}")" + ACTUAL="$(nvm_alias "lts/-${N}")" + [ "${EXPECTED}" = "${ACTUAL}" ] || die "\`nvm_alias lts/-${N}\` was \`${ACTUAL}\`; expected \`${EXPECTED}\`" +done < "${LTS_NAMES_PATH}" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_alias_path b/_nodejs/.nvm/test/fast/Unit tests/nvm_alias_path new file mode 100755 index 0000000..fe304af --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_alias_path @@ -0,0 +1,7 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +[ "_$(nvm_alias_path)" = "_$NVM_DIR/alias" ] || die "nvm_alias_path did not return correct location" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_change_path b/_nodejs/.nvm/test/fast/Unit tests/nvm_change_path new file mode 100755 index 0000000..f434981 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_change_path @@ -0,0 +1,57 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +TEST_PATH=/usr/bin:/usr/local/bin + +# New version dir +NEW_PATH=`nvm_change_path "$TEST_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"` + +[ "$NEW_PATH" = "$NVM_DIR/versions/node/v7.1.0/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly changed: $NEW_PATH " + +# Old version dir +NEW_PATH=`nvm_change_path "$TEST_PATH" "/bin" "$NVM_DIR/v0.1.2"` + +[ "$NEW_PATH" = "$NVM_DIR/v0.1.2/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly changed: $NEW_PATH " + + +TEST_PATH=/home/user/code/test/node_modules/.bin:$NVM_DIR/versions/node/v4.5.0/bin:/usr/bin:/usr/local/bin + +# New version dir +NEW_PATH=`nvm_change_path "$TEST_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"` + +[ "$NEW_PATH" = "/home/user/code/test/node_modules/.bin:$NVM_DIR/versions/node/v7.1.0/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly changed: $NEW_PATH " + +# Old version dir +NEW_PATH=`nvm_change_path "$TEST_PATH" "/bin" "$NVM_DIR/v0.1.2"` + +[ "$NEW_PATH" = "/home/user/code/test/node_modules/.bin:$NVM_DIR/v0.1.2/bin:/usr/bin:/usr/local/bin" ] || die "Not correctly changed: $NEW_PATH " + + +EMPTY_PATH= + +# New version dir +NEW_PATH=`nvm_change_path "$EMPTY_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"` + +[ "$NEW_PATH" = "$NVM_DIR/versions/node/v7.1.0/bin" ] || die "Not correctly prepended: $NEW_PATH " + +# Old version dir +NEW_PATH=`nvm_change_path "$EMPTY_PATH" "/bin" "$NVM_DIR/v0.1.2"` + +[ "$NEW_PATH" = "$NVM_DIR/v0.1.2/bin" ] || die "Not correctly prepended: $NEW_PATH " + + +# https://github.com/nvm-sh/nvm/issues/1652#issuecomment-342571223 +MAC_OS_NESTED_SESSION_PATH=/usr/bin:/usr/local/bin:$NVM_DIR/versions/node/v4.5.0/bin + +# New version dir +NEW_PATH=`nvm_change_path "$MAC_OS_NESTED_SESSION_PATH" "/bin" "$NVM_DIR/versions/node/v7.1.0"` + +[ "$NEW_PATH" = "$NVM_DIR/versions/node/v7.1.0/bin:/usr/bin:/usr/local/bin:$NVM_DIR/versions/node/v4.5.0/bin" ] || die "Not correctly changed: $NEW_PATH " + +# Old version dir +NEW_PATH=`nvm_change_path "$MAC_OS_NESTED_SESSION_PATH" "/bin" "$NVM_DIR/v0.1.2"` + +[ "$NEW_PATH" = "$NVM_DIR/v0.1.2/bin:/usr/bin:/usr/local/bin:$NVM_DIR/versions/node/v4.5.0/bin" ] || die "Not correctly changed: $NEW_PATH " diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_checksum b/_nodejs/.nvm/test/fast/Unit tests/nvm_checksum new file mode 100755 index 0000000..4103af1 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_checksum @@ -0,0 +1,18 @@ +#!/bin/sh + +cleanup () { + rm tmp/emptyfile tmp/testfile + rmdir tmp +} +die () { echo "$@" ; cleanup; exit 1; } + +\. ../../../nvm.sh + +mkdir -p tmp +touch tmp/emptyfile +echo -n "test" > tmp/testfile + +nvm_checksum tmp/emptyfile "da39a3ee5e6b4b0d3255bfef95601890afd80709" || die "nvm_checksum on an empty file did not match the SHA1 digest of the empty string" +nvm_checksum tmp/testfile "da39a3ee5e6b4b0d3255bfef95601890afd80709" && die "nvm_checksum allowed a bad checksum" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_clang_version b/_nodejs/.nvm/test/fast/Unit tests/nvm_clang_version new file mode 100755 index 0000000..dda1dad --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_clang_version @@ -0,0 +1,62 @@ +#!/bin/sh + +cleanup () { + unset -f die +} + +die () { echo -e "$@" ; cleanup ; exit 1; } + +if type "clang" > /dev/null 2>&1 ; then + clang_exec="$(type "clang")" + sudo rm -rf "${clang_exec}" +fi +if type "clang++" > /dev/null 2>&1 ; then + clangxx_exec="$(type "clang++")" + sudo rm -rf "${clangxx_exec}" +fi + +NVM_ENV=testing \. ../../../nvm.sh + +clang() { + if [ "$1" = "--version" ]; then + echo "${VERSION_MESSAGE}" + fi +} + +assert_version_is() { + if [ "${1}" != "${2}" ]; then + die "Expected ${2}, got ${1}, origin version message:\n${VERSION_MESSAGE}" + return 1 + fi +} + +CLANG_VERSION_ON_DEBIAN_JESSIE="Debian clang version 3.5.0-10 (tags/RELEASE_350/final) (based on LLVM 3.5.0) +Target: x86_64-pc-linux-gnu +Thread model: posix" + +CLANG_VERSION_ON_UBUNTU_TRUSTY="Ubuntu clang version 3.4-1ubuntu3 (tags/RELEASE_34/final) (based on LLVM 3.4) +Target: x86_64-pc-linux-gnu +Thread model: posix" + +CLANG_VERSION_ON_ARCHLINUX="clang version 3.9.0 (tags/RELEASE_390/final) +Target: x86_64-unknown-linux-gnu +Thread model: posix +InstalledDir: /usr/sbin" + +CLANG_VERSION_ON_FREEBSD="FreeBSD clang version 3.4.1 (tags/RELEASE_34/dot1-final 208032) 20140512 +Target: x86_64-unknown-freebsd10.3 +Thread model: posix" + +VERSION_MESSAGE="${CLANG_VERSION_ON_DEBIAN_JESSIE}" +assert_version_is "$(nvm_clang_version)" "3.5.0" + +VERSION_MESSAGE="${CLANG_VERSION_ON_UBUNTU_TRUSTY}" +assert_version_is "$(nvm_clang_version)" "3.4" + +VERSION_MESSAGE="${CLANG_VERSION_ON_ARCHLINUX}" +assert_version_is "$(nvm_clang_version)" "3.9.0" + +VERSION_MESSAGE="${CLANG_VERSION_ON_FREEBSD}" +assert_version_is "$(nvm_clang_version)" "3.4.1" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_command_info b/_nodejs/.nvm/test/fast/Unit tests/nvm_command_info new file mode 100755 index 0000000..6eebefc --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_command_info @@ -0,0 +1,58 @@ +#!/bin/sh + +cleanup() { + unalias wget + unset -f wget + unset WGET_EXPECTED_INFO WGET_COMMAND_INFO +} + +die() { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + + +# 1. test wget command +WGET_COMMAND_INFO="$(nvm_command_info wget)" +WGET_EXPECTED_INFO="$(which wget)" +[ "${WGET_COMMAND_INFO}" = "${WGET_EXPECTED_INFO}" ] || die "wget command info wrong(stage 1), expected: '${WGET_EXPECTED_INFO}', got '${WGET_COMMAND_INFO}'" + +cleanup + +# 2. test aliased wget + +# enable expand_aliases/aliases to make alias work in interactive shell +if nvm_has shopt; then + shopt -s expand_aliases +elif nvm_has setopt; then + setopt aliases +fi + +alias wget="wget -V" +WGET_COMMAND_INFO="$(nvm_command_info wget)" +WGET_EXPECTED_INFO="$(which wget) (wget -V)" +[ "${WGET_COMMAND_INFO}" = "${WGET_EXPECTED_INFO}" ] || die "wget command info wrong(stage 2), expected: '${WGET_EXPECTED_INFO}', got '${WGET_COMMAND_INFO}'" + +cleanup + +# 3. test wget function +wget() { + echo "wget function" +} + +WGET_COMMAND_INFO="$(nvm_command_info wget)" +WGET_EXPECTED_INFO="$(type wget)" +[ "${WGET_COMMAND_INFO}" = "${WGET_EXPECTED_INFO}" ] || die "wget command info wrong(stage 3), expected: '${WGET_EXPECTED_INFO}', got '${WGET_COMMAND_INFO}'" + +cleanup + +# 4. nvm_command_info() should not have standard error +OUTPUT="$(nvm_command_info ls 2>&1 >/dev/null)" +[ -z "${OUTPUT}" ] || die "\`nvm_command_info ls\` expected no stderr; got >${OUTPUT}< (stage 4)" +OUTPUT="$(nvm_command_info rm 2>&1 >/dev/null)" +[ -z "${OUTPUT}" ] || die "\`nvm_command_info rm\` expected no stderr; got >${OUTPUT}< (stage 4)" +OUTPUT="$(nvm_command_info git 2>&1 >/dev/null)" +[ -z "${OUTPUT}" ] || die "\`nvm_command_info git\` expected no stderr; got >${OUTPUT}< (stage 4)" +OUTPUT="$(nvm_command_info grep 2>&1 >/dev/null)" +[ -z "${OUTPUT}" ] || die "\`nvm_command_info grep\` expected no stderr; got >${OUTPUT}< (stage 4)" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_compare_checksum b/_nodejs/.nvm/test/fast/Unit tests/nvm_compare_checksum new file mode 100755 index 0000000..c14aee4 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_compare_checksum @@ -0,0 +1,72 @@ +#!/bin/sh + +cleanup () { + unset -f nvm_compute_checksum +} +die () { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +set -ex + +nvm_compute_checksum() { + echo +} + +set +x +OUTPUT="$(nvm_compare_checksum 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compare_checksum >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT='Provided file to checksum is empty.' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 4 ] || die "expected to exit with code 4, got ${EXIT_CODE}" + +set +x +OUTPUT="$(nvm_compare_checksum foo 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compare_checksum foo >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT='Provided file to checksum does not exist.' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 3 ] || die "expected to exit with code 3, got ${EXIT_CODE}" + +set +x +OUTPUT="$(nvm_compare_checksum ../../../nvm.sh 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compare_checksum ../../../nvm.sh >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT='Provided checksum to compare to is empty.' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 2 ] || die "expected to exit with code 2, got ${EXIT_CODE}" + +set +x +OUTPUT="$(nvm_compare_checksum ../../../nvm.sh checksum 2>&1 >/dev/null)" +EXIT_CODE="$(nvm_compare_checksum ../../../nvm.sh checksum >/dev/null 2>&1 ; echo $?)" +set -x +EXPECTED_OUTPUT="Computed checksum of '../../../nvm.sh' is empty. +WARNING: Continuing *without checksum verification*" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 0 ] || die "expected to exit with code 0, got ${EXIT_CODE}" + +nvm_compute_checksum() { + echo "not checksum: ${1}" +} + +set +x +OUTPUT="$(nvm_compare_checksum ../../../nvm.sh checksum 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compare_checksum ../../../nvm.sh checksum >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT="Checksums do not match: 'not checksum: ../../../nvm.sh' found, 'checksum' expected." +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 1 ] || die "expected to exit with code 1, got ${EXIT_CODE}" + +nvm_compute_checksum() { + echo checksum +} +set +x +OUTPUT="$(nvm_compare_checksum ../../../nvm.sh checksum 2>&1 >/dev/null)" +EXIT_CODE="$(nvm_compare_checksum ../../../nvm.sh checksum >/dev/null 2>&1; echo $?)" +set -x +EXPECTED_OUTPUT='Checksums matched!' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 0 ] || die "expected to exit with code 0, got ${EXIT_CODE}" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_compute_checksum b/_nodejs/.nvm/test/fast/Unit tests/nvm_compute_checksum new file mode 100755 index 0000000..6b52eb9 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_compute_checksum @@ -0,0 +1,23 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +set +x +OUTPUT="$(nvm_compute_checksum 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compute_checksum >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT='Provided file to checksum is empty.' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 2 ] || die "expected to exit with code 2, got ${EXIT_CODE}" + +set +x +OUTPUT="$(nvm_compute_checksum foo 2>&1 >/dev/null || echo)" +EXIT_CODE="$(nvm_compute_checksum foo >/dev/null 2>&1 || echo $?)" +set -x +EXPECTED_OUTPUT='Provided file to checksum does not exist.' +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 1 ] || die "expected to exit with code 1, got ${EXIT_CODE}" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_curl_libz_support b/_nodejs/.nvm/test/fast/Unit tests/nvm_curl_libz_support new file mode 100755 index 0000000..34602be --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_curl_libz_support @@ -0,0 +1,39 @@ +#!/bin/sh + +cleanup() { + unset -f curl +} + +die() { cleanup; echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +curl() { + # curl with libz feature + if [ $# -ne 1 ] || [ "$1" != "-V" ]; then + die "This fake curl only takes one parameter -V" + fi + echo " +curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3 +Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets" +} + +nvm_curl_libz_support || die "nvm_curl_libz_support should return 0" + +unset -f curl + +curl() { + # curl without libz feature + if [ "$#" -ne 1 ] || [ "$1" != "-V" ]; then + die "This fake curl only takes one parameter -V" + fi + echo " +curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.32 +Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL TLS-SRP UnixSockets" +} + +! nvm_curl_libz_support || die "nvm_curl_libz_support should return 1" + +unset -f curl diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_curl_use_compression b/_nodejs/.nvm/test/fast/Unit tests/nvm_curl_use_compression new file mode 100755 index 0000000..e263864 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_curl_use_compression @@ -0,0 +1,38 @@ +#!/bin/sh + +cleanup () { + unset -f die +} + +die () { echo -e "$@" ; cleanup ; exit 1; } + +NVM_ENV=testing \. ../../../nvm.sh + +curl() { + if [ "$1" = "-V" ]; then + echo "${VERSION_MESSAGE}" + fi +} + +CURL_VERSION_ON_ARCHLINUX_WITH_LIBZ="curl 7.54.0 (x86_64-pc-linux-gnu) libcurl/7.54.0 OpenSSL/1.1.0f zlib/1.2.11 libpsl/0.17.0 (+libicu/59.1) libssh2/1.8.0 nghttp2/1.22.0 +Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL" + +CURL_VERSION_ON_ARCHLINUX_WITHOUT_LIBZ="curl 7.54.0 (x86_64-pc-linux-gnu) libcurl/7.54.0 OpenSSL/1.1.0f zlib/1.2.11 libpsl/0.17.0 (+libicu/59.1) libssh2/1.8.0 nghttp2/1.22.0 +Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL" + +CURL_VERSION_ON_CENTOS6_WITH_LIBZ="curl 7.19.7 (x86_64-redhat-linux-gnu) libcurl/7.19.7 NSS/3.19.1 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2 +Protocols: tftp ftp telnet dict ldap ldaps http file https ftps scp sftp +Features: GSS-Negotiate IDN IPv6 Largefile NTLM SSL libz" + +VERSION_MESSAGE="${CURL_VERSION_ON_ARCHLINUX_WITH_LIBZ}" +nvm_curl_use_compression || die "nvm_curl_use_compression should return 0" + +VERSION_MESSAGE="${CURL_VERSION_ON_ARCHLINUX_WITHOUT_LIBZ}" +! nvm_curl_use_compression || die "nvm_curl_use_compression should return 1 without libz support" + +VERSION_MESSAGE="${CURL_VERSION_ON_CENTOS6_WITH_LIBZ}" +! nvm_curl_use_compression || die "nvm_curl_use_compression should return 1 when curl < 7.21.0" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_curl_version b/_nodejs/.nvm/test/fast/Unit tests/nvm_curl_version new file mode 100755 index 0000000..d61014e --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_curl_version @@ -0,0 +1,32 @@ +#!/bin/sh + +cleanup () { + unset -f die + unset -f curl +} + +die () { echo -e "$@" ; cleanup ; exit 1; } + +NVM_ENV=testing \. ../../../nvm.sh + +curl() { + if [ "$1" = "-V" ]; then + echo "${VERSION_MESSAGE}" + fi +} + +assert_version_is() { + if [ "${1}" != "${2}" ]; then + die "Expected ${2}, got ${1}, origin version message:\n${VERSION_MESSAGE}" + return 1 + fi +} + +CURL_VERSION_MESSAGE="curl 7.54.0 (x86_64-pc-linux-gnu) libcurl/7.54.0 OpenSSL/1.1.0f zlib/1.2.11 libpsl/0.17.0 (+libicu/59.1) libssh2/1.8.0 nghttp2/1.22.0 +Protocols: dict file ftp ftps gopher http https imap imaps pop3 pop3s rtsp scp sftp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP HTTP2 UnixSockets HTTPS-proxy PSL" + +VERSION_MESSAGE="${CURL_VERSION_MESSAGE}" +assert_version_is "$(nvm_curl_version)" "7.54.0" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_die_on_prefix b/_nodejs/.nvm/test/fast/Unit tests/nvm_die_on_prefix new file mode 100755 index 0000000..7429cb8 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_die_on_prefix @@ -0,0 +1,81 @@ +#!/bin/sh + +cleanup () { + alias nvm_has='\nvm_has' + alias npm='\npm' + unset -f nvm_has npm +} +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +OUTPUT="$(nvm_die_on_prefix 2>&1)" +EXPECTED_OUTPUT="First argument \"delete the prefix\" must be zero or one" +EXIT_CODE="$(nvm_die_on_prefix >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_1" ] || die "'nvm_die_on_prefix' did not exit with 1; got "$EXIT_CODE"" + +OUTPUT="$(nvm_die_on_prefix 2 2>&1)" +EXPECTED_OUTPUT="First argument \"delete the prefix\" must be zero or one" +EXIT_CODE="$(nvm_die_on_prefix 2 >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 2' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_1" ] || die "'nvm_die_on_prefix' did not exit with 1; got "$EXIT_CODE"" + +OUTPUT="$(nvm_die_on_prefix 0 2>&1)" +EXPECTED_OUTPUT="Second argument \"nvm command\" must be nonempty" +EXIT_CODE="$(nvm_die_on_prefix 0 >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_2" ] || die "'nvm_die_on_prefix 0' did not exit with 2; got '$EXIT_CODE'" + +nvm_has() { return 1; } # ie, npm is not installed +OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" +[ -z "$OUTPUT" ] || die "nvm_die_on_prefix was not a noop when nvm_has returns 1, got '$OUTPUT'" + +nvm_has() { return 0; } + +npm() { + local args + args="$@" + if [ "_$args" = "_config --loglevel=warn get prefix" ]; then + echo "$(nvm_version_dir new)/good prefix" + fi +} +OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" +[ -z "$OUTPUT" ] || die "'nvm_die_on_prefix' was not a noop when prefix is good; got '$OUTPUT'" + +OUTPUT="$(PREFIX=bar nvm_die_on_prefix 0 foo 2>&1)" +EXPECTED_OUTPUT='nvm is not compatible with the "PREFIX" environment variable: currently set to "bar" +Run `unset PREFIX` to unset it.' +EXIT_CODE="$(export PREFIX=bar ; nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_3" ] || die "'PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 3; got '$EXIT_CODE'" + +OUTPUT="$(export NPM_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo 2>&1)" +EXPECTED_OUTPUT='nvm is not compatible with the "NPM_CONFIG_PREFIX" environment variable: currently set to "bar" +Run `unset NPM_CONFIG_PREFIX` to unset it.' +EXIT_CODE="$(export NPM_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_4" ] || die "'NPM_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" + +OUTPUT="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo 2>&1)" +EXPECTED_OUTPUT='nvm is not compatible with the "npm_CONFIG_PREFIX" environment variable: currently set to "bar" +Run `unset npm_CONFIG_PREFIX` to unset it.' +EXIT_CODE="$(export npm_CONFIG_PREFIX=bar ; nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_4" ] || die "'npm_CONFIG_PREFIX=bar nvm_die_on_prefix 0 foo' did not exit with 4; got '$EXIT_CODE'" + +npm() { + local args + args="$@" + if [ "_$args" = "_config --loglevel=warn get prefix" ]; then + echo "./bad prefix" + fi +} +OUTPUT="$(nvm_die_on_prefix 0 foo 2>&1)" +EXPECTED_OUTPUT="nvm is not compatible with the npm config \"prefix\" option: currently set to \"./bad prefix\" +Run \`npm config delete prefix\` or \`foo\` to unset it." +EXIT_CODE="$(nvm_die_on_prefix 0 foo >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_die_on_prefix 0 foo' did not error with '$EXPECTED_OUTPUT' with bad prefix set; got '$OUTPUT'" +[ "_$EXIT_CODE" = "_10" ] || die "'nvm_die_on_prefix 0 foo' did not exit with 10 with bad prefix set; got '$EXIT_CODE'" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_ensure_default_set b/_nodejs/.nvm/test/fast/Unit tests/nvm_ensure_default_set new file mode 100755 index 0000000..14b53eb --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_ensure_default_set @@ -0,0 +1,15 @@ +#!/bin/sh + +\. ../../common.sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +EXPECTED_OUTPUT="nvm_ensure_default_set: a version is required" +OUTPUT="$(nvm_ensure_default_set 2>&1 >/dev/null)" +EXIT_CODE="$?" +[ "_$(echo "$OUTPUT" | strip_colors)" = "_$EXPECTED_OUTPUT" ] || die "'nvm_ensure_default_set' did not output "$EXPECTED_OUTPUT", got "$OUTPUT"" +[ "_$EXIT_CODE" = "_1" ] || die "'nvm_ensure_default_set' did not exit with 1, got "$EXIT_CODE"" + +# see test/fast/Aliases for remaining nvm_ensure_default_set tests diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_ensure_version_installed b/_nodejs/.nvm/test/fast/Unit tests/nvm_ensure_version_installed new file mode 100755 index 0000000..e239e0e --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_ensure_version_installed @@ -0,0 +1,63 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } +cleanup () { + rm -rf "$(nvm_version_path v0.1.2)" + unset -f nvm_has_system_node nvm_has_system_iojs +} + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.1.2 + +OUTPUT="$(nvm_ensure_version_installed foo 2>&1)" +EXIT_CODE=$? +EXPECTED_OUTPUT='N/A: version "foo" is not yet installed. + +You need to run "nvm install foo" to install it before using it.' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed foo' to give $EXPECTED_OUTPUT, got $OUTPUT" +[ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed foo' to exit with 1, got $EXIT_CODE" + +OUTPUT="$(nvm_ensure_version_installed 0.1)" +EXIT_CODE=$? +[ "_$OUTPUT" = "_" ] || die "expected 'nvm_ensure_version_installed 0.1' to have no output, got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed 0.1' to exit with 0, got $EXIT_CODE" + +# Special case for "iojs" +OUTPUT="$(nvm_ensure_version_installed iojs 2>&1)" +EXIT_CODE=$? +EXPECTED_OUTPUT='N/A: version "iojs" is not yet installed. + +You need to run "nvm install iojs" to install it before using it.' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed iojs' to give $EXPECTED_OUTPUT, got $OUTPUT" +[ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed iojs' to exit with 1, got $EXIT_CODE" + +nvm_has_system_node() { return 1; } +nvm_has_system_iojs() { return 1; } + +OUTPUT="$(nvm_ensure_version_installed system 2>&1)" +EXIT_CODE=$? +EXPECTED_OUTPUT='N/A: no system version of node/io.js is installed.' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed system' with neither installed to give $EXPECTED_OUTPUT, got $OUTPUT" +[ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm_ensure_version_installed system' with neither installed to exit with 1, got $EXIT_CODE" + +nvm_has_system_node() { return 0; } +nvm_has_system_iojs() { return 1; } + +OUTPUT="$(nvm_ensure_version_installed system 2>&1)" +EXIT_CODE=$? +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed system' with node installed to give $EXPECTED_OUTPUT, got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed system' with node installed to exit with 0, got $EXIT_CODE" + +nvm_has_system_node() { return 1; } +nvm_has_system_iojs() { return 0; } + +OUTPUT="$(nvm_ensure_version_installed system 2>&1)" +EXIT_CODE=$? +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "expected 'nvm_ensure_version_installed system' with iojs installed to give $EXPECTED_OUTPUT, got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm_ensure_version_installed system' with iojs installed to exit with 0, got $EXIT_CODE" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_ensure_version_prefix b/_nodejs/.nvm/test/fast/Unit tests/nvm_ensure_version_prefix new file mode 100755 index 0000000..b54ea02 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_ensure_version_prefix @@ -0,0 +1,12 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +[ "_$(nvm_ensure_version_prefix 1)" = "_v1" ] || die '"nvm_ensure_version_prefix 1" did not return "v1"' +[ "_$(nvm_ensure_version_prefix v1)" = "_v1" ] || die '"nvm_ensure_version_prefix v1" did not return "v1"' +[ "_$(nvm_ensure_version_prefix foo)" = "_foo" ] || die '"nvm_ensure_version_prefix foo" did not return "foo"' + +[ "_$(nvm_ensure_version_prefix iojs-1)" = "_iojs-v1" ] || die '"nvm_ensure_version_prefix iojs-1" did not return "iojs-v1"' +[ "_$(nvm_ensure_version_prefix iojs-v1)" = "_iojs-v1" ] || die '"nvm_ensure_version_prefix iojs-v1" did not return "iojs-v1"' diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_find_up b/_nodejs/.nvm/test/fast/Unit tests/nvm_find_up new file mode 100755 index 0000000..29c4e42 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_find_up @@ -0,0 +1,25 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } +setup() { + cleanup + mkdir -p tmp_nvm_find_up/a/b/c/d + touch tmp_nvm_find_up/test + touch tmp_nvm_find_up/a/b/c/test +} +cleanup () { + rm -rf tmp_nvm_find_up +} + +\. ../../../nvm.sh + +setup + +TEST_DIR="$PWD" + +[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up" ] || die "failed to find 1 dir up" +[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a/b nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up" ] || die "failed to find 2 dirs up" +[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a/b/c nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up/a/b/c" ] || die "failed to find in current dir" +[ "~$(PWD=$TEST_DIR/tmp_nvm_find_up/a/b/c/d nvm_find_up 'test')" = "~$TEST_DIR/tmp_nvm_find_up/a/b/c" ] || die "failed to find 1 level up from current dir" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_format_version b/_nodejs/.nvm/test/fast/Unit tests/nvm_format_version new file mode 100755 index 0000000..98541fe --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_format_version @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +INPUT="0.1.2" +OUTPUT="$(nvm_format_version "$INPUT")" +EXPECTED_OUTPUT="v0.1.2" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT" + +INPUT="0.1" +OUTPUT="$(nvm_format_version "$INPUT")" +EXPECTED_OUTPUT="v0.1.0" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT" + +INPUT="1.2.3.4.5" +OUTPUT="$(nvm_format_version "$INPUT")" +EXPECTED_OUTPUT="v1.2.3" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_format_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_get_arch b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_arch new file mode 100755 index 0000000..f064203 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_arch @@ -0,0 +1,82 @@ +#!/bin/sh + +# Save the PATH as it was when the test started to restore it when it +# finishes +ORIG_PATH=$PATH + +cleanup() { + # Restore the PATH as it was when the test started + export PATH=ORIG_PATH +} + +die () { cleanup; echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +# Directory where mocked binaries used by nvm_get_arch for each OS/arch are +# located +MOCKS_DIR=`pwd`/../../mocks +# Sets the PATH for these tests to include the symlinks to the mocked +# binaries +export PATH=.:${PATH} + +# Setups mock binaries for a given OS and arch that mimic +# the output of the real binaries used by nvm_get_arch to guess +# the architecture of a given system. +setup_mock_arch() { + local OS=$1 + local ARCH=$2 + local OPT=$3 + + if [ "_$OS" = "_solaris" ] || [ "_$OS" = "_smartos" ]; then + ln -sf "${MOCKS_DIR}/isainfo_${ARCH}" ./isainfo + if [ "_$OPT" != "_no_pkg_info" ]; then + ln -sf "${MOCKS_DIR}/pkg_info_${ARCH}" ./pkg_info + else + ln -sf "${MOCKS_DIR}/pkg_info_fail" ./pkg_info + fi + fi + + ln -sf "${MOCKS_DIR}/uname_${OS}_${ARCH}" ./uname +} + +# Cleans up the setup done by setup_mock_arch. +cleanup_mock_arch() { + local OS=$1 + local ARCH=$2 + + if [ "_$OS" = "_solaris" ] || [ "_$OS" = "_smartos" ]; then + rm -f ./isainfo + rm -f ./pkg_info + fi + + rm -f ./uname +} + +# Runs nvm_get_arch for architecture $ARCH and OS $OS, and compares the +# expected output $EXPECTED_OUTPUT with the actual output. Does nothing +# and exits cleanly if they match, dies otherwise. +run_test() { + local ARCH=$1 + local OS=$2 + local EXPECTED_OUTPUT=$3 + local OPT=$4 + + setup_mock_arch $OS $ARCH $OPT + local OUTPUT="$(nvm_get_arch)" + cleanup_mock_arch $OS $ARCH + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || + die "nvm_get_arch for OS \"$OS\" and arch \"$ARCH\" with OPT \"$OPT\" did + not return \"$EXPECTED_OUTPUT\"; got \"$OUTPUT\"" +} + +run_test x86 smartos x86 +run_test x86 smartos x86 no_pkg_info + +run_test amd64 smartos x64 +run_test amd64 smartos x64 no_pkg_info + +run_test x86 osx x86 +run_test amd64 osx x64 + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_get_checksum b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_checksum new file mode 100755 index 0000000..53e6839 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_checksum @@ -0,0 +1,45 @@ +#!/bin/sh + +set -ex + +cleanup () { + unset -f nvm_download nvm_get_checksum_alg nvm_get_mirror +} +die () { echo "$@" ; cleanup ; exit 1; } + +set +e # TODO: fix +\. ../../../nvm.sh +set -e + +nvm_get_mirror() { + echo "mirror-${1}-${2}" +} + +set +ex # needed to capture error output +OUTPUT="$(nvm_get_checksum 2>&1 >/dev/null)" +EXPECTED_OUTPUT='supported flavors: node, iojs' +EXIT_CODE="$(nvm_get_checksum >/dev/null 2>&1 ; echo $?)" +set -ex +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected error output >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" +[ "${EXIT_CODE}" = 2 ] || die "expected exit code 2, got ${EXIT_CODE}" + +nvm_download() { + echo "ERROR_FAILED_MATCH no_match more fields" + echo "${3} bar.tar.baz more fields" +} + +nvm_get_checksum_alg() { + echo 'sha-256' +} +OUTPUT="$(nvm_get_checksum node std foo bar baz)" +EXPECTED_OUTPUT="mirror-node-std/foo/SHASUMS256.txt" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" + +nvm_get_checksum_alg() { + echo 'sha-1' +} +OUTPUT="$(nvm_get_checksum iojs std foo bar baz)" +EXPECTED_OUTPUT="mirror-iojs-std/foo/SHASUMS.txt" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_get_checksum_alg b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_checksum_alg new file mode 100755 index 0000000..1869437 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_checksum_alg @@ -0,0 +1,20 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +set +e # TODO: fix +\. ../../../nvm.sh +set -e + +ALG="$(nvm_get_checksum_alg)" + +case "$ALG" in + 'sha-256' | 'sha-1') + echo 'sha-256 or sha-1 found' + ;; + *) + die "sha-256 or sha-1 not found: found ${ALG}" + ;; +esac diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_get_default_packages b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_default_packages new file mode 100755 index 0000000..75730b0 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_default_packages @@ -0,0 +1,91 @@ +#!/bin/sh + +FILE="$NVM_DIR/default-packages" +\. ../../../nvm.sh + +die () { echo "$@" ; cleanup ; exit 1; } +setup () { + if [ -f $FILE ]; then + ORIG_DEFAULT_PACKAGES=$(cat $FILE) + mkdir -p ./tmp/ ||: + mv $FILE ./tmp/default-packages ||: + fi + touch $FILE +} +cleanup () { + if [ "$ORIG_DEFAULT_PACKAGES" != "" ]; then + rm -rf ./tmp/ + echo "$ORIG_DEFAULT_PACKAGES" > $FILE + fi +} + +setup + +cat > $FILE << EOF +rimraf +object-inspect@1.0.2 + +# commented-package + +stevemao/left-pad +EOF + +DEFAULT_PKGS="$(nvm_get_default_packages)" +EXPECTED_PKGS='rimraf object-inspect@1.0.2 stevemao/left-pad' +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "1: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" + +cleanup + +setup + +cat > $FILE << EOF +rimraf +not~a~package~name +mkdirp +EOF + +DEFAULT_PKGS="$(nvm_get_default_packages)" +EXPECTED_PKGS='rimraf not~a~package~name mkdirp' +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "2: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" + +cleanup + +setup + +cat > $FILE << EOF +rimraf +not~a~package~name +mkdirp +EOF +printf %s "$(cat "${FILE}")" > $FILE # strip trailing newline + +DEFAULT_PKGS="$(nvm_get_default_packages)" +EXPECTED_PKGS='rimraf not~a~package~name mkdirp' +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "3: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" + +cleanup + +setup + +cat > $FILE << EOF +object-inspect @ 1.0.2 +rimraf +EOF + +DEFAULT_PKGS="$(nvm_get_default_packages 2>&1 >/dev/null)" +EXPECTED_PKGS="Only one package per line is allowed in the $FILE file. Please remove any lines with multiple space-separated values." +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "4: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" + +cleanup + +setup + +rm -rf $FILE + +DEFAULT_PKGS="$(nvm_get_default_packages)" +EXPECTED_PKGS='' +[ "${DEFAULT_PKGS}" = "${EXPECTED_PKGS}" ] || die "5: expected default packages >${EXPECTED_PKGS}<; got >${DEFAULT_PKGS}<" + +touch $FILE + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_get_latest missing curl or wget b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_latest missing curl or wget new file mode 100755 index 0000000..2c9b1da --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_latest missing curl or wget @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_has +} + +\. ../../../nvm.sh + +nvm_has() { return 1 ; } + +OUTPUT="$(nvm_get_latest 2>&1)" +EXIT_CODE="$(nvm_get_latest >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_nvm needs curl or wget to proceed." ] \ + || die "no curl/wget did not report correct error message, got '$OUTPUT'" +[ "_$EXIT_CODE" = "_1" ] \ + || die "no curl/wget did not exit with code 1, got $EXIT_CODE" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_get_minor_version b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_minor_version new file mode 100755 index 0000000..dbfea5d --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_minor_version @@ -0,0 +1,45 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +expect () { + INPUT="$1" + EXPECTED_OUTPUT="$2" + + OUTPUT="$(nvm_get_minor_version "$INPUT")" + [ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_minor_version $INPUT did not return $EXPECTED_OUTPUT; got $OUTPUT" + + V_OUTPUT="$(nvm_get_minor_version "v$INPUT")" + [ "_$V_OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_get_minor_version v$INPUT did not return $EXPECTED_OUTPUT; got $V_OUTPUT" +} + +fail_with () { + INPUT="$1" + EXPECTED_CODE="$2" + + EXIT_CODE="$(nvm_get_minor_version "$INPUT" >/dev/null 2>&1; echo $?)" + [ "_$EXIT_CODE" = "_$EXPECTED_CODE" ] || die "nvm_get_minor_version "$INPUT" did not fail with code "$EXPECTED_CODE"; got $EXIT_CODE" +} + +expect 1 1.0 +expect 1. 1.0 +expect 1.2 1.2 +expect 1.2. 1.2 +expect 1.2.3 1.2 +expect 1.2.3. 1.2 +expect 1.2.3.4 1.2 + +fail_with '' 1 +fail_with '.' 2 +fail_with '..' 2 +fail_with v 2 +fail_with .a 2 +fail_with .1 2 +fail_with v.1 2 +fail_with a.b 2 +fail_with 1.a 2 +fail_with a.1 2 +fail_with v1.a 2 +fail_with va.1 2 diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_get_mirror b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_mirror new file mode 100755 index 0000000..8d4b192 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_get_mirror @@ -0,0 +1,32 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +unset NVM_NODEJS_ORG_MIRROR +unset NVM_IOJS_ORG_MIRROR + +set +e # TODO: fix +\. ../../../nvm.sh +set -e + +! nvm_get_mirror || die 'unknown release type did not error' +! nvm_get_mirror node || die 'unknown release type did not error' +! nvm_get_mirror iojs || die 'unknown release type did not error' +! nvm_get_mirror node foo || die 'unknown release type did not error' +! nvm_get_mirror iojs foo || die 'unknown release type did not error' + +[ -z "$NVM_NODEJS_ORG_MIRROR" ] || die "MIRROR environment variables should not be exported" +[ -z "$NVM_IOJS_ORG_MIRROR" ] || die "MIRROR environment variables should not be exported" + +[ "$(nvm_get_mirror node std)" = "https://nodejs.org/dist" ] || die "incorrect default node-std mirror" +[ "$(nvm_get_mirror iojs std)" = "https://iojs.org/dist" ] || die "incorrect default iojs-std mirror" + +NVM_NODEJS_ORG_MIRROR="test://domain" +[ "$(nvm_get_mirror node std)" = "test://domain" ] || die "node-std mirror should respect NVM_NODEJS_ORG_MIRROR" +unset NVM_NODEJS_ORG_MIRROR + +NVM_IOJS_ORG_MIRROR="test://domain" +[ "$(nvm_get_mirror iojs std)" = "test://domain" ] || die "iojs-std mirror should respect NVM_IOJS_ORG_MIRROR" +unset NVM_IOJS_ORG_MIRROR diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_has b/_nodejs/.nvm/test/fast/Unit tests/nvm_has new file mode 100755 index 0000000..8a7d7be --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_has @@ -0,0 +1,11 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm_has cat && type cat > /dev/null || die 'nvm_has locates "cat" properly' + +[ "~$(nvm_has foobarbaz 2>&1)" = "~" ] || die "nvm_has does not suppress error output" + +! nvm_has foobarbaz && ! type foobarbaz >/dev/null 2>&1 || die "nvm_has does not return a nonzero exit code when not found" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_has_non_aliased b/_nodejs/.nvm/test/fast/Unit tests/nvm_has_non_aliased new file mode 100755 index 0000000..e42b2c6 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_has_non_aliased @@ -0,0 +1,24 @@ +#!/bin/sh + +cleanup () { unalias foo; unalias grep; } +die () { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +alias foo='bar' +! nvm_has_non_aliased foo || die '"nvm_has_non_aliased foo" was not true' + +alias grep='grep' +unalias grep || die '"unalias grep" failed' +nvm_has_non_aliased grep || die '"nvm_has_non_aliased grep" with unaliased grep was not false' + +alias grep='grep' +! nvm_has_non_aliased grep || die '"nvm_is_alias grep" with aliased grep was not true' + +nvm_has_non_aliased cat && type cat > /dev/null || die 'nvm_has_non_aliased locates "cat" properly' + +[ "~$(nvm_has_non_aliased foobarbaz 2>&1)" = "~" ] || die "nvm_has_non_aliased does not suppress error output" + +! nvm_has_non_aliased foobarbaz && ! type foobarbaz >/dev/null 2>&1 || die "nvm_has_non_aliased does not return a nonzero exit code when not found" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_has_solaris_binary b/_nodejs/.nvm/test/fast/Unit tests/nvm_has_solaris_binary new file mode 100755 index 0000000..9d949e4 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_has_solaris_binary @@ -0,0 +1,32 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +# Invalid version numbers fail +assert_not_ok nvm_has_solaris_binary "" +assert_not_ok nvm_has_solaris_binary "foo" + +# "Invalid" node version numbers fail +assert_not_ok nvm_has_solaris_binary "v1.0.0" +assert_not_ok nvm_has_solaris_binary "v3.3.1" + +# Valid io.js version numbers that have a Solaris binary succeed +assert_ok nvm_has_solaris_binary "iojs-v3.3.1" + +# Invalid io.js version numbers fail +assert_not_ok nvm_has_solaris_binary "iojs-v0.12.7" + +# Valid node version numbers that don't have a Solaris binary fail +assert_not_ok nvm_has_solaris_binary "v0.8.5" + +# Valid node version numbers that have a Solaris binary succeed +assert_ok nvm_has_solaris_binary "v0.8.6" +assert_ok nvm_has_solaris_binary "v0.10.0" +assert_ok nvm_has_solaris_binary "v0.12.7" + +# Valid "merged" version numbers succeed +assert_ok nvm_has_solaris_binary "v4.0.0" +assert_ok nvm_has_solaris_binary "v4.1.1" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_has_system_iojs b/_nodejs/.nvm/test/fast/Unit tests/nvm_has_system_iojs new file mode 100755 index 0000000..0d4eadb --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_has_system_iojs @@ -0,0 +1,27 @@ +#!/bin/sh + +cleanup () { + rm -rf "${NVM_DIR}/versions/io.js/v0.1.2" +} +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_iojs v0.1.2 + +nvm use iojs-v0.1.2 + +if command -v iojs; then + nvm_has_system_iojs +else + ! nvm_has_system_iojs +fi + +nvm deactivate /dev/null 2>&1 + +if command -v iojs; then + nvm_has_system_iojs +else + ! nvm_has_system_iojs +fi diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_has_system_node b/_nodejs/.nvm/test/fast/Unit tests/nvm_has_system_node new file mode 100755 index 0000000..9a71979 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_has_system_node @@ -0,0 +1,27 @@ +#!/bin/sh + +\. ../../../nvm.sh +\. ../../common.sh + +cleanup () { + rm -rf "${NVM_DIR}/v0.1.2" +} +die () { echo "$@" ; exit 1; } + +make_fake_node v0.1.2 + +nvm use 0.1.2 + +if command -v node; then + nvm_has_system_node +else + ! nvm_has_system_node +fi + +nvm deactivate /dev/null 2>&1 + +if command -v node; then + nvm_has_system_node +else + ! nvm_has_system_node +fi diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_install_latest_npm b/_nodejs/.nvm/test/fast/Unit tests/nvm_install_latest_npm new file mode 100755 index 0000000..ecf9c74 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_install_latest_npm @@ -0,0 +1,58 @@ +#!/bin/sh + +\. ../../common.sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm deactivate >/dev/null 2>&1 + +CURRENT="$(nvm current)" +[ "$CURRENT" = 'none' ] || [ "$CURRENT" = 'system' ] || die "nvm should be using none or system; got $CURRENT" + +nvm_ls_current() { + echo 'none' +} +node() { + return 1 +} +npm() { + echo '1.2.3' +} + +OUTPUT="$(nvm_install_latest_npm 2>&1 >/dev/null)" +EXIT_CODE="$(nvm_install_latest_npm >/dev/null 2>&1 ; echo $?)" + +EXPECTED="Unable to obtain node version." +[ "${OUTPUT}" = "${EXPECTED}" ] || die "When node is unavailable, expected >${EXPECTED}<; got >${OUTPUT}" + +node() { + echo 'v4.5.6' +} +nvm_ls_current() { + node --version +} +npm() { + return 1 +} +OUTPUT="$(nvm_install_latest_npm 2>&1 >/dev/null)" +EXIT_CODE="$(nvm_install_latest_npm >/dev/null 2>&1 ; echo $?)" + +EXPECTED="Unable to obtain npm version." +[ "${OUTPUT}" = "${EXPECTED}" ] || die "When node is available and npm is unavailable, expected >${EXPECTED}<; got >${OUTPUT}" + +node() { + echo 'v4.5.6' +} +nvm_ls_current() { + echo 'system' +} +npm() { + return 1 +} +OUTPUT="$(nvm_install_latest_npm 2>&1 >/dev/null)" +EXIT_CODE="$(nvm_install_latest_npm >/dev/null 2>&1 ; echo $?)" + +EXPECTED="Unable to obtain npm version." +[ "${OUTPUT}" = "${EXPECTED}" ] || die "When node is system and npm is unavailable, expected >${EXPECTED}<; got >${OUTPUT}" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_install_no_progress_bar b/_nodejs/.nvm/test/fast/Unit tests/nvm_install_no_progress_bar new file mode 100644 index 0000000..d43194d --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_install_no_progress_bar @@ -0,0 +1,43 @@ +#!/bin/sh + +set -e + +cleanup () { + nvm cache clear + nvm deactivate + rm -rf ${NVM_DIR}/v* + nvm unalias default +} + +die () { >&2 echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +nvm_has_colors() { return 1 ; } + +cleanup + +OUTPUT="$(2>&1 nvm install --no-progress v0.12.18)" +EXPECTED_OUTPUT="Downloading and installing node v0.12.18... +Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz... +Computing checksum with sha256sum +Checksums matched! +Now using node v0.12.18 (npm v2.15.11) +Creating default alias: default -> v0.12.18 *" + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" + +cleanup + +OUTPUT="$(2>&1 nvm install v0.12.18)" +EXPECTED_OUTPUT="Downloading and installing node v0.12.18... +Downloading https://nodejs.org/dist/v0.12.18/node-v0.12.18-linux-x64.tar.xz... +######################################################################## 100.0% +Computing checksum with sha256sum +Checksums matched! +Now using node v0.12.18 (npm v2.15.11) +Creating default alias: default -> v0.12.18 *" + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_iojs_prefix b/_nodejs/.nvm/test/fast/Unit tests/nvm_iojs_prefix new file mode 100755 index 0000000..fef2373 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_iojs_prefix @@ -0,0 +1,7 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +[ "$(nvm_iojs_prefix)" = "iojs" ] || die '"nvm_iojs_prefix" did not return the string "iojs". why did this fail?!' diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_is_alias b/_nodejs/.nvm/test/fast/Unit tests/nvm_is_alias new file mode 100755 index 0000000..eba9506 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_is_alias @@ -0,0 +1,20 @@ +#!/bin/sh + +cleanup () { unalias foo; unalias grep; } +die () { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +alias foo='bar' +nvm_is_alias foo || die '"nvm_is_alias foo" was not true' + +! nvm_is_alias nvm_is_alias || die '"nvm_is_alias nvm_is_alias was not false' + +alias grep='grep' +unalias grep || die '"unalias grep" failed' +! nvm_is_alias grep || die '"nvm_is_alias grep" with unaliased grep was not false' + +alias grep='grep' +nvm_is_alias grep || die '"nvm_is_alias grep" with aliased grep was not true' + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_is_iojs_version b/_nodejs/.nvm/test/fast/Unit tests/nvm_is_iojs_version new file mode 100755 index 0000000..d846e71 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_is_iojs_version @@ -0,0 +1,10 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm_is_iojs_version 'iojs-' || die '"nvm_is_iojs_version iojs- was not true' +nvm_is_iojs_version 'iojs-foo' || die '"nvm_is_iojs_version iojs- was not true' +! nvm_is_iojs_version 'iojs' || die '"nvm_is_iojs_version iojs was not false' +! nvm_is_iojs_version 'v1.0.0' || die '"nvm_is_iojs_version v1.0.0" was not false' diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_is_merged_node_version b/_nodejs/.nvm/test/fast/Unit tests/nvm_is_merged_node_version new file mode 100755 index 0000000..7501c2a --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_is_merged_node_version @@ -0,0 +1,10 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm_is_merged_node_version '4.0' || die '"nvm_is_merged_node_version 4.0 was not true' +nvm_is_merged_node_version '5.1' || die '"nvm_is_merged_node_version 5.1 was not true' +! nvm_is_merged_node_version '3.99' || die '"nvm_is_merged_node_version 3.99 was not false' +! nvm_is_merged_node_version 'v1.0.0' || die '"nvm_is_merged_node_version v1.0.0" was not false' diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_is_natural_num b/_nodejs/.nvm/test/fast/Unit tests/nvm_is_natural_num new file mode 100755 index 0000000..d66d6c8 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_is_natural_num @@ -0,0 +1,17 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +! nvm_is_natural_num || die 'no args is not false' +! nvm_is_natural_num '' || die 'empty string is not false' +! nvm_is_natural_num a || die 'a is not false' +! nvm_is_natural_num -1 || 'negative number is not false' +! nvm_is_natural_num --1 || 'double negative number is not false' +! nvm_is_natural_num 1.2 || 'decimal number is not false' +! nvm_is_natural_num 0 || die 'zero is not false' + +nvm_is_natural_num 1 || die '1 is not true' +nvm_is_natural_num 2 || die '2 is not true' +nvm_is_natural_num 1234 || die '1234 is not true' diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_is_valid_version b/_nodejs/.nvm/test/fast/Unit tests/nvm_is_valid_version new file mode 100755 index 0000000..edfe537 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_is_valid_version @@ -0,0 +1,13 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm_is_valid_version 0.1.2 || die "nvm_is_valid_version 0.1.2 did not return 0" +nvm_is_valid_version foo && die "nvm_is_valid_version foo did not return 1" +nvm_is_valid_version iojs-1 || die "nvm_is_valid_version iojs-1 did not return 0" +nvm_is_valid_version iojs || die "nvm_is_valid_version iojs did not return 0" +nvm_is_valid_version node || die "nvm_is_valid_version node did not return 0" +nvm_is_valid_version stable || die "nvm_is_valid_version stable did not return 0" +nvm_is_valid_version unstable || die "nvm_is_valid_version unstable did not return 0" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_current b/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_current new file mode 100755 index 0000000..0e44b20 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_current @@ -0,0 +1,38 @@ +#!/bin/sh + +TEST_PWD=$(pwd) +TEST_DIR="$TEST_PWD/nvm_ls_current_tmp" + +cleanup() { rm -rf "$TEST_DIR"; unset -f return_zero; alias node='node' ; unalias node; } +die () { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +return_zero () { return 0; } + +if nvm_has_system_node || nvm_has_system_iojs; then + EXPECTED_SYSTEM_NODE="system" +else + EXPECTED_SYSTEM_NODE="none" +fi +[ "_$(nvm deactivate > /dev/null 2>&1 ; nvm_ls_current)" = "_$EXPECTED_SYSTEM_NODE" ] || die "when deactivated, did not return $EXPECTED_SYSTEM_NODE" + +rm -rf "$TEST_DIR" +mkdir "$TEST_DIR" +ln -s "$(command which which)" "$TEST_DIR/which" +ln -s "$(command which dirname)" "$TEST_DIR/dirname" +ln -s "$(command which printf)" "$TEST_DIR/printf" + +[ "$(PATH="$TEST_DIR" nvm_ls_current)" = "none" ] || die 'when node not installed, nvm_ls_current did not return "none"' +[ "@$(PATH="$TEST_DIR" nvm_ls_current 2> /dev/stdout 1> /dev/null)@" = "@@" ] || die 'when node not installed, nvm_ls_current returned error output' + +echo "#!/bin/bash" > "$TEST_DIR/node" +echo "echo 'VERSION FOO!'" > "$TEST_DIR/node" +chmod a+x "$TEST_DIR/node" + +[ "$(alias nvm_tree_contains_path='return_zero' && PATH="$TEST_DIR" nvm_ls_current)" = "VERSION FOO!" ] || die 'when activated, did not return nvm node version' + +alias node='node --harmony' +[ "$(alias nvm_tree_contains_path='return_zero' && PATH="$TEST_DIR" nvm_ls_current)" = "VERSION FOO!" ] || die 'when activated and node aliased, did not return nvm node version' + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote b/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote new file mode 100755 index 0000000..2171650 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote @@ -0,0 +1,73 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_download +} + +\. ../../../nvm.sh + +MOCKS_DIR="$PWD/mocks" + +# sample output at the time the test was written +TAB_PATH="$MOCKS_DIR/nodejs.org-dist-index.tab" +nvm_download() { + cat "$TAB_PATH" +} + +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote.txt" + +OUTPUT="$(nvm_ls_remote foo)" +EXIT_CODE="$(nvm_ls_remote foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + +OUTPUT="$(nvm_ls_remote)" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm_ls_remote did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" + +OUTPUT="$(nvm_ls_remote 0.3)" +EXPECTED_OUTPUT="v0.3.0 +v0.3.1 +v0.3.2 +v0.3.3 +v0.3.4 +v0.3.5 +v0.3.6 +v0.3.7 +v0.3.8" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote 0.3 did not output 0.3.x versions; got $OUTPUT" + +# Sanity checks +OUTPUT="$(nvm_print_implicit_alias remote stable)" +EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_print_implicit_alias remote stable.txt" +EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_print_implicit_alias remote unstable)" +EXPECTED_OUTPUT="0.11" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_ls_remote stable)" +EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_ls_remote stable.txt" +EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_ls_remote unstable)" +EXPECTED_OUTPUT="v0.11.16" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote unstable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote LTS.txt" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +OUTPUT="$(NVM_LTS='*' nvm_ls_remote)" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`NVM_LTS='*' nvm_ls_remote\` did not output >$EXPECTED_OUTPUT<; got >$OUTPUT<" + +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote LTS argon.txt" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +OUTPUT="$(NVM_LTS=argon nvm_ls_remote)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`NVM_LTS=argon nvm_ls_remote\` did not output >$EXPECTED_OUTPUT<; got >$OUTPUT<" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote LTS aliases b/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote LTS aliases new file mode 100755 index 0000000..a9485bd --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote LTS aliases @@ -0,0 +1,48 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +TEST_PATH="$PWD/test_output" +mkdir -p "$TEST_PATH" +CALL_COUNT_PATH="$TEST_PATH/call_count.txt" +: > "$CALL_COUNT_PATH" +ALIAS_ARGS_PATH="$TEST_PATH/nvm_make_alias_args.txt" +: > "$ALIAS_ARGS_PATH" + +cleanup() { + unset -f nvm_download nvm_make_alias + rm -rf "$TEST_PATH" +} + +\. ../../../nvm.sh + +set -ex + +MOCKS_DIR="$PWD/mocks" + +# sample output at the time the test was written +TAB_PATH="$MOCKS_DIR/nodejs.org-dist-index.tab" +nvm_download() { + cat "$TAB_PATH" +} + +nvm_make_alias() { + CALL_COUNT="$(cat "$CALL_COUNT_PATH")" + CALL_COUNT="$((CALL_COUNT + 1))" + echo "$CALL_COUNT" > "$CALL_COUNT_PATH" + echo "${1}|${2}" >> "$ALIAS_ARGS_PATH" +} + +nvm_ls_remote >/dev/null || die "nvm_ls_remote_failed?!" + +CALL_COUNT="$(cat "$CALL_COUNT_PATH")" + +EXPECTED_COUNT=6 +[ "$CALL_COUNT" = "$EXPECTED_COUNT" ] || die "nvm_make_alias called $CALL_COUNT times; expected $EXPECTED_COUNT" + +ARGS="$(cat "$ALIAS_ARGS_PATH")" +EXPECTED_ARGS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt" +EXPECTED_ARGS="$(cat "$EXPECTED_ARGS_PATH")" +[ "${ARGS}" = "${EXPECTED_ARGS}" ] || die "nvm_make_alias called with >${ARGS}<; expected >${EXPECTED_ARGS}<" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote nightly b/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote nightly new file mode 100755 index 0000000..14d12cf --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote nightly @@ -0,0 +1,65 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_download +} + +\. ../../../nvm.sh + +MOCKS_DIR="$PWD/mocks" + +# sample output at the time the test was written +TAB_PATH="$MOCKS_DIR/nodejs.org-download-nightly-index.tab" +nvm_download() { + cat "$TAB_PATH" +} + +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote nightly.txt" + +OUTPUT="$(nvm_ls_remote foo)" +EXIT_CODE="$(nvm_ls_remote foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + +OUTPUT="$(nvm_ls_remote)" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm_ls_remote did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" + +OUTPUT="$(nvm_ls_remote 10.0)" +EXPECTED_OUTPUT="v10.0.0-nightly20180424982adb5994 +v10.0.1-nightly20180505ff148b987d" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote 10.0 did not output 10.0 nightly versions; got $OUTPUT" + +# Sanity checks +OUTPUT="$(nvm_print_implicit_alias remote stable)" +EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_print_implicit_alias remote stable nightly.txt" +EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_print_implicit_alias remote unstable)" +EXPECTED_OUTPUT="N/A" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_implicit_alias remote unstable did not output |$EXPECTED_OUTPUT|; got |$OUTPUT|" + +OUTPUT="$(nvm_ls_remote stable)" +EXPECTED_OUTPUT_PATH="${MOCKS_DIR}/nvm_ls_remote stable nightly.txt" +EXPECTED_OUTPUT="$(cat "${EXPECTED_OUTPUT_PATH}")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote stable did not output $EXPECTED_OUTPUT; got $OUTPUT" + +OUTPUT="$(nvm_ls_remote unstable)" +EXPECTED_OUTPUT="N/A" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote unstable did not output |$EXPECTED_OUTPUT|; got |$OUTPUT|" + +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote LTS nightly.txt" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +OUTPUT="$(NVM_LTS='*' nvm_ls_remote)" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`NVM_LTS='*' nvm_ls_remote\` did not output >$EXPECTED_OUTPUT<; got >$OUTPUT<" + +EXPECTED_OUTPUT_PATH="$MOCKS_DIR/nvm_ls_remote LTS nightly argon.txt" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +OUTPUT="$(NVM_LTS=argon nvm_ls_remote)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`NVM_LTS=argon nvm_ls_remote\` did not output >$EXPECTED_OUTPUT<; got >$OUTPUT<" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote_iojs b/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote_iojs new file mode 100755 index 0000000..553aefd --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_ls_remote_iojs @@ -0,0 +1,37 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_download +} + +\. ../../../nvm.sh + +# sample output at the time the test was written +TAB_PATH="$PWD/mocks/iojs.org-dist-index.tab" +nvm_download() { + cat "$TAB_PATH" +} + +EXPECTED_OUTPUT_PATH="$PWD/mocks/nvm_ls_remote_iojs.txt" + +OUTPUT="$(nvm_ls_remote_iojs foo)" +EXIT_CODE="$(nvm_ls_remote_iojs foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + +OUTPUT="$(nvm_ls_remote_iojs)" +EXPECTED_OUTPUT="$(cat "$EXPECTED_OUTPUT_PATH")" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "bare nvm_ls_remote_iojs did not output expected sorted versions; got $(echo ">$OUTPUT<") expected $(echo ">$EXPECTED_OUTPUT<")" + +OUTPUT="$(nvm_ls_remote_iojs 1.0)" +EXPECTED_OUTPUT="iojs-v1.0.0 +iojs-v1.0.1 +iojs-v1.0.2 +iojs-v1.0.3 +iojs-v1.0.4" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_ls_remote_iojs 1.0 did not output 1.0.x versions; got $OUTPUT" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_make_alias b/_nodejs/.nvm/test/fast/Unit tests/nvm_make_alias new file mode 100755 index 0000000..f04e518 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_make_alias @@ -0,0 +1,19 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +OUTPUT="$(nvm_make_alias 2>&1)" +EXIT_CODE="$(nvm_make_alias >/dev/null 2>&1 ; echo $?)" +EXPECTED_OUTPUT='an alias name is required' + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`nvm_make_alias\` did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "$EXIT_CODE" -eq 1 ] || die "\`nvm_make_alias\` did not exit with 1, got '$EXIT_CODE'" + +OUTPUT="$(nvm_make_alias foo 2>&1)" +EXIT_CODE="$(nvm_make_alias foo >/dev/null 2>&1 ; echo $?)" +EXPECTED_OUTPUT='an alias target version is required' + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "\`nvm_make_alias foo\` did not error with '$EXPECTED_OUTPUT'; got '$OUTPUT'" +[ "$EXIT_CODE" -eq 2 ] || die "\`nvm_make_alias foo\` did not exit with 2, got '$EXIT_CODE'" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_node_prefix b/_nodejs/.nvm/test/fast/Unit tests/nvm_node_prefix new file mode 100755 index 0000000..c0ffd1d --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_node_prefix @@ -0,0 +1,7 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +[ "$(nvm_node_prefix)" = "node" ] || die '"nvm_node_prefix" did not return the string "node". why did this fail?!' diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_num_version_groups b/_nodejs/.nvm/test/fast/Unit tests/nvm_num_version_groups new file mode 100755 index 0000000..ab09f0c --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_num_version_groups @@ -0,0 +1,24 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +[ "~$(nvm_num_version_groups)" = "~0" ] || die "no args should give 0" +[ "~$(nvm_num_version_groups v)" = "~0" ] || die "just "v" should give 0" +[ "~$(nvm_num_version_groups .)" = "~0" ] || die "just "." should give 0" +[ "~$(nvm_num_version_groups a)" = "~1" ] || die "one letter should give 1" + +[ "~$(nvm_num_version_groups 1)" = "~1" ] || die "1 should give 1" +[ "~$(nvm_num_version_groups 1.)" = "~1" ] || die "1. should give 1" +[ "~$(nvm_num_version_groups v1)" = "~1" ] || die "v1 should give 1" +[ "~$(nvm_num_version_groups v1.)" = "~1" ] || die "v1. should give 1" + +[ "~$(nvm_num_version_groups 1.2)" = "~2" ] || die "1.2 should give 2" +[ "~$(nvm_num_version_groups 1.2.)" = "~2" ] || die "1.2. should give 2" +[ "~$(nvm_num_version_groups v1.2)" = "~2" ] || die "v1.2 should give 2" +[ "~$(nvm_num_version_groups v1.2.)" = "~2" ] || die "v1.2. should give 2" + +[ "~$(nvm_num_version_groups 1.2.3)" = "~3" ] || die "1.2.3 should give 3" +[ "~$(nvm_num_version_groups v1.2.3)" = "~3" ] || die "v1.2.3 should give 3" +[ "~$(nvm_num_version_groups v1.2.3.)" = "~3" ] || die "v1.2.3. should give 3" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_print_alias_path b/_nodejs/.nvm/test/fast/Unit tests/nvm_print_alias_path new file mode 100755 index 0000000..14cf152 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_print_alias_path @@ -0,0 +1,44 @@ +#!/bin/sh +\. ../../common.sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup () { + unset -f nvm_alias nvm_version +} + +\. ../../../nvm.sh + +NVM_ALIAS_DIR='path/to/the alias/dir' + +OUTPUT="$(nvm_print_alias_path 2>&1)" +EXPECTED_OUTPUT='An alias dir is required.' +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path' produced wrong output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" + +OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" 2>&1)" +EXPECTED_OUTPUT='An alias path is required.' +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\"' produced wrong output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" + +nvm_alias() { + echo '' +} + +OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" foo | strip_colors)" +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\" foo' should produce no output when nvm_alias does not; got '$OUTPUT'" + +EXIT_CODE="$(nvm_print_alias_path "$NVM_ALIAS_DIR" foo >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = '0' ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\" foo' should exit zero when nvm_alias produces no output; got $EXIT_CODE" + +nvm_alias() { + echo "\"$1\"" +} +nvm_version() { + echo "v$1" +} + +OUTPUT="$(nvm_print_alias_path "$NVM_ALIAS_DIR" "$NVM_ALIAS_DIR/blah" | strip_colors)" +EXPECTED_OUTPUT='blah -> "blah" (-> v"blah")' +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_alias_path \"\$NVM_ALIAS_DIR\" \"\$NVM_ALIAS_DIR/blah\"' should strip alias dir and print nvm_alias output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_print_default_alias b/_nodejs/.nvm/test/fast/Unit tests/nvm_print_default_alias new file mode 100755 index 0000000..fcb3ab2 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_print_default_alias @@ -0,0 +1,38 @@ +#!/bin/sh +\. ../../common.sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup () { + unset -f nvm_print_implicit_alias nvm_version +} + +\. ../../../nvm.sh + +nvm_print_implicit_alias() { + echo '' +} + +OUTPUT="$(nvm_print_default_alias 2>&1)" +EXPECTED_OUTPUT='A default alias is required.' +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_default_alias' produced wrong output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" + +OUTPUT="$(nvm_print_default_alias foo | strip_colors)" +EXPECTED_OUTPUT='' +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "'nvm_print_default_alias foo' should produce no output when nvm_print_implicit_alias does not; got '$OUTPUT'" + +EXIT_CODE="$(nvm_print_default_alias foo >/dev/null 2>&1 ; echo $?)" +[ "$EXIT_CODE" = '0' ] || die "'nvm_print_default_alias foo' should exit zero when nvm_print_implicit_alias produces no output; got $EXIT_CODE" + +nvm_print_implicit_alias() { + echo "\"$1-$2\"" +} +nvm_version() { + echo "v$1" +} + +OUTPUT="$(nvm_print_default_alias blah | strip_colors)" +EXPECTED_OUTPUT='blah -> "local-blah" (-> v"local-blah") (default)' +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_print_default_alias blah' should strip alias dir and print nvm_print_implicit_alias output; got '$OUTPUT', expected '$EXPECTED_OUTPUT'" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_print_implicit_alias errors b/_nodejs/.nvm/test/fast/Unit tests/nvm_print_implicit_alias errors new file mode 100755 index 0000000..5565eea --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_print_implicit_alias errors @@ -0,0 +1,25 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +EXPECTED_FIRST_MSG="nvm_print_implicit_alias must be specified with local or remote as the first argument." +[ "_$(nvm_print_implicit_alias 2>&1)" = "_$EXPECTED_FIRST_MSG" ] \ + || die "nvm_print_implicit_alias did not require local|remote as first argument" +[ "_$(nvm_print_implicit_alias foo 2>&1)" = "_$EXPECTED_FIRST_MSG" ] \ + || die "nvm_print_implicit_alias did not require local|remote as first argument" + +FIRST_EXIT_CODE="$(nvm_print_implicit_alias > /dev/null 2>&1 ; echo $?)" +[ "_$FIRST_EXIT_CODE" = "_1" ] \ + || die "nvm_print_implicit_alias without local|remote had wrong exit code: expected 1, got $FIRST_EXIT_CODE" + +EXPECTED_SECOND_MSG="Only implicit aliases 'stable', 'unstable', 'iojs', and 'node' are supported." +[ "_$(nvm_print_implicit_alias local 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \ + || die "nvm_print_implicit_alias did not require stable|unstable|iojs|node as second argument" +[ "_$(nvm_print_implicit_alias local foo 2>&1)" = "_$EXPECTED_SECOND_MSG" ] \ + || die "nvm_print_implicit_alias did not require stable|unstable|iojs|node as second argument" + +SECOND_EXIT_CODE="$(nvm_print_implicit_alias local > /dev/null 2>&1 ; echo $?)" +[ "_$SECOND_EXIT_CODE" = "_2" ] \ + || die "nvm_print_implicit_alias without stable|unstable|iojs|node had wrong exit code: expected 2, got $SECOND_EXIT_CODE" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_print_implicit_alias success b/_nodejs/.nvm/test/fast/Unit tests/nvm_print_implicit_alias success new file mode 100755 index 0000000..ded8174 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_print_implicit_alias success @@ -0,0 +1,106 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } +cleanup() { + rm -rf "${NVM_DIR}/v0.2.3" + rm -rf "${NVM_DIR}/v0.3.4" + rm -rf "${NVM_DIR}/v0.4.6" + rm -rf "${NVM_DIR}/v0.5.7" + rm -rf "${NVM_DIR}/v0.7.7" + rm -rf "${NVM_DIR}/versions/io.js/v0.98.0" + rm -rf "${NVM_DIR}/versions/node/v1.0.0" + rm -rf "${NVM_DIR}/versions/node/v1.1.0" + unset -f nvm_ls_remote nvm_ls_remote_iojs +} + +\. ../../../nvm.sh +\. ../../common.sh + +make_fake_node v0.2.3 +make_fake_node v0.3.4 +make_fake_node v0.4.6 +make_fake_node v0.5.7 +make_fake_node v0.7.7 +make_fake_iojs v0.98.0 + +LATEST_STABLE="$(nvm_print_implicit_alias local stable)" +[ "_$LATEST_STABLE" = "_0.4" ] || die "local stable is not latest even minor: expected 0.4, got $LATEST_STABLE" + +LATEST_NODE="$(nvm_print_implicit_alias local node)" +[ "_$LATEST_NODE" = "_stable" ] || die "local node is not stable: expected stable, got $LATEST_NODE" + +LATEST_UNSTABLE="$(nvm_print_implicit_alias local unstable)" +[ "_$LATEST_UNSTABLE" = "_0.7" ] || die "local unstable is not latest odd minor: expected 0.7, got $LATEST_UNSTABLE" + +LATEST_IOJS="$(nvm_print_implicit_alias local iojs)" +[ "_$LATEST_IOJS" = "_iojs-v0.98" ] || die "local iojs is not latest iojs: expected iojs-v0.98, got $LATEST_IOJS" + +## node post v1.0/io.js merger ## +make_fake_node v1.0.0 +make_fake_node v1.1.0 + + +LATEST_STABLE="$(nvm_print_implicit_alias local stable)" +[ "_$LATEST_STABLE" = "_1.1" ] || die "local stable when post-v1.0 exists is not latest: expected 1.1, got $LATEST_STABLE" + +LATEST_UNSTABLE="$(nvm_print_implicit_alias local unstable)" +[ "_$LATEST_UNSTABLE" = "_0.7" ] || die "local unstable is not latest pre-v1.0 odd minor: expected 0.7, got $LATEST_UNSTABLE" +## ** ## + +nvm_ls_remote() { + echo "v0.4.3" + echo "v0.5.4" + echo "v0.6.6" + echo "v0.7.7" + echo "v0.9.7" + echo "v0.4.3" + echo "v0.5.4" + echo "v0.6.6" + echo "v0.7.7" + echo "v0.9.7" +} + +nvm_ls_remote_iojs() { + echo "iojs-v0.1.0" + echo "iojs-v0.1.1" + echo "iojs-v0.7.8" + echo "iojs-v0.98.5" + echo "iojs-v0.99.0" +} + +LATEST_STABLE="$(nvm_print_implicit_alias remote stable)" +[ "_$LATEST_STABLE" = "_0.6" ] || die "remote stable is not latest even minor: expected 0.6, got $LATEST_STABLE" + +LATEST_NODE="$(nvm_print_implicit_alias remote node)" +[ "_$LATEST_NODE" = "_stable" ] || die "remote node is not stable: expected stable, got $LATEST_NODE" + +LATEST_UNSTABLE="$(nvm_print_implicit_alias remote unstable)" +[ "_$LATEST_UNSTABLE" = "_0.9" ] || die "remote unstable is not latest odd minor: expected 0.9, got $LATEST_UNSTABLE" + +LATEST_IOJS="$(nvm_print_implicit_alias remote iojs)" +[ "_$LATEST_IOJS" = "_iojs-v0.99" ] || die "remote iojs is not latest: expected iojs-v0.99, got $LATEST_IOJS" + +## node post v1.0/io.js merger ## +nvm_ls_remote() { + echo "v0.4.3" + echo "v0.5.4" + echo "v0.6.6" + echo "v0.7.7" + echo "v0.9.7" + echo "v0.4.3" + echo "v0.5.4" + echo "v0.6.6" + echo "v0.7.7" + echo "v0.9.7" + echo "v1.0.0" + echo "v1.1.0" +} + +LATEST_STABLE="$(nvm_print_implicit_alias remote stable)" +[ "_$LATEST_STABLE" = "_1.1" ] || die "remote stable when post-v1.0 exists is not latest: expected 1.1, got $LATEST_STABLE" + +LATEST_UNSTABLE="$(nvm_print_implicit_alias remote unstable)" +[ "_$LATEST_UNSTABLE" = "_0.9" ] || die "remote unstable is not latest odd pre-v1.0 minor: expected 0.9, got $LATEST_UNSTABLE" +## ** ## + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_print_npm_version b/_nodejs/.nvm/test/fast/Unit tests/nvm_print_npm_version new file mode 100755 index 0000000..a9cbc2c --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_print_npm_version @@ -0,0 +1,28 @@ +#!/bin/sh + +cleanup () { + alias nvm_has='\nvm_has' + alias npm='\npm' + unset -f nvm_has npm +} +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm_has() { return 1; } +OUTPUT="$(nvm_print_npm_version)" +[ -z "$OUTPUT" ] || die "nvm_print_npm_version did not return empty when nvm_has returns 1, got '$OUTPUT'" + +nvm_has() { return 0; } +npm() { + if [ "_$@" = "_--version" ]; then + echo "1.2.3" + else + echo "error" + fi +} +OUTPUT="$(nvm_print_npm_version)" +EXPECTED_OUTPUT=" (npm v1.2.3)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "nvm_print_npm_version did not provided '$EXPECTED_OUTPUT', got '$OUTPUT'" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_remote_version b/_nodejs/.nvm/test/fast/Unit tests/nvm_remote_version new file mode 100755 index 0000000..9a4f94f --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_remote_version @@ -0,0 +1,78 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_ls_remote nvm_ls_remote_iojs +} + +\. ../../../nvm.sh + +nvm_ls_remote() { + echo "N/A" +} +OUTPUT="$(nvm_remote_version foo)" +EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + +nvm_ls_remote_iojs() { + echo "N/A" +} +OUTPUT="$(nvm_remote_version iojs-foo)" +EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + + +nvm_ls_remote() { + if [ -z "$1" ] || ! nvm_is_iojs_version "$1"; then + echo "test_output" + echo "more_test_output" + echo "pattern_received:_$1_" + fi +} +nvm_ls_remote_iojs() { + if [ -z "$1" ] || nvm_is_iojs_version "$1"; then + echo "test_iojs_output" + echo "more_iojs_test_output" + echo "iojs_pattern_received:_$1_" + fi +} +OUTPUT="$(nvm_remote_version foo)" +EXIT_CODE="$(nvm_remote_version foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_pattern_received:_foo_" ] \ + || die "nvm_remote_version foo did not return last line only of nvm_ls_remote foo; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version foo did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_version iojs-foo)" +EXIT_CODE="$(nvm_remote_version iojs-foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_iojs_pattern_received:_iojs-foo_" ] \ + || die "nvm_remote_version iojs-foo did not return last line only of nvm_ls_remote_iojs foo; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs-foo did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_version iojs)" +EXIT_CODE="$(nvm_remote_version iojs >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_iojs_pattern_received:__" ] \ + || die "nvm_remote_version iojs did not return last line only of nvm_ls_remote_iojs; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version iojs did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_version stable)" +EXIT_CODE="$(nvm_remote_version stable >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote stable)" ] \ + || die "nvm_remote_version stable did not return contents of nvm_ls_remote stable; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version stable did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_version unstable)" +EXIT_CODE="$(nvm_remote_version unstable >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote unstable)" ] \ + || die "nvm_remote_version unstable did not return contents of nvm_ls_remote unstable; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version unstable did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_version node)" +EXIT_CODE="$(nvm_remote_version node >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote node)" ] \ + || die "nvm_remote_version node did not return contents of nvm_ls_remote node; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_version node did not exit with 0, got $EXIT_CODE" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_remote_versions b/_nodejs/.nvm/test/fast/Unit tests/nvm_remote_versions new file mode 100755 index 0000000..e4136b2 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_remote_versions @@ -0,0 +1,77 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f nvm_ls_remote nvm_ls_remote_iojs +} + +\. ../../../nvm.sh + +OUTPUT="$(nvm_remote_versions stable 2>&1)" +EXPECTED_OUTPUT="Implicit aliases are not supported in nvm_remote_versions." +EXIT_CODE="$(nvm_remote_versions stable >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "implicit alias 'stable' did not error out with correct message, got $OUTPUT" +[ "_$EXIT_CODE" = "_1" ] || die "implicit alias 'stable' did not exit with code 1, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_versions unstable 2>&1)" +EXPECTED_OUTPUT="Implicit aliases are not supported in nvm_remote_versions." +EXIT_CODE="$(nvm_remote_versions unstable >/dev/null 2>&1; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die "implicit alias 'unstable' did not error out with correct message, got $OUTPUT" +[ "_$EXIT_CODE" = "_1" ] || die "implicit alias 'unstable' did not exit with code 1, got $EXIT_CODE" + +nvm_ls_remote() { + echo "N/A" +} +OUTPUT="$(nvm_remote_versions foo)" +EXIT_CODE="$(nvm_remote_versions foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + +nvm_ls_remote_iojs() { + echo "N/A" +} +OUTPUT="$(nvm_remote_versions iojs-foo)" +EXIT_CODE="$(nvm_remote_versions iojs-foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_N/A" ] || die "nonexistent version did not report N/A" +[ "_$EXIT_CODE" = "_3" ] || die "nonexistent version did not exit with code 3, got $EXIT_CODE" + + +nvm_ls_remote() { + echo "test output" + echo "more test output" + echo "pattern received: _$1_" +} +nvm_ls_remote_iojs() { + echo "test iojs output" + echo "more iojs test output" + echo "iojs pattern received: _$1_" +} + +OUTPUT="$(nvm_remote_versions foo)" +EXIT_CODE="$(nvm_remote_versions foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote foo) +$(nvm_ls_remote_iojs foo)" ] \ + || die "nvm_remote_versions foo did not return contents of nvm_ls_remote foo combined with nvm_ls_remote_iojs foo; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_versions foo did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_versions node)" +EXIT_CODE="$(nvm_remote_versions node >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote)" ] \ + || die "nvm_remote_versions node did not return contents of nvm_ls_remote; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_versions node did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_versions iojs-foo)" +EXIT_CODE="$(nvm_remote_versions iojs-foo >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote iojs-foo) +$(nvm_ls_remote_iojs iojs-foo)" ] \ + || die "nvm_remote_versions iojs-foo did not return contents of nvm_ls_remote iojs-foo combined with nvm_ls_remote_iojs iojs-foo; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_versions iojs-foo did not exit with 0, got $EXIT_CODE" + +OUTPUT="$(nvm_remote_versions iojs)" +EXIT_CODE="$(nvm_remote_versions iojs >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$(nvm_ls_remote_iojs)" ] \ + || die "nvm_remote_versions iojs did not return contents of nvm_ls_remote_iojs; got $OUTPUT" +[ "_$EXIT_CODE" = "_0" ] || die "nvm_remote_versions iojs did not exit with 0, got $EXIT_CODE" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_stdout_is_terminal b/_nodejs/.nvm/test/fast/Unit tests/nvm_stdout_is_terminal new file mode 100755 index 0000000..31b4666 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_stdout_is_terminal @@ -0,0 +1,32 @@ +#!/bin/sh + +tempfile=$(mktemp) + +die () { echo "$@" ; cleanup; exit 1; } +cleanup() { rm -f "$tempfile"; } + +\. ../../../nvm.sh + +if [ -t 1 ] ; then + # test is running in a terminal, e.g. locally + nvm_stdout_is_terminal || die 'nvm_stdout_is_terminal should be true' + nvm_stdout_is_terminal 2>/dev/null || die 'nvm_stdout_is_terminal should be true when stderr is redirected' + nvm_stdout_is_terminal /dev/null || die 'nvm_stdout_is_terminal should be false when stderr is redirected' + ! nvm_stdout_is_terminal /dev/null || die 'nvm_stdout_is_terminal should be false when stdout goes to /dev/null' +! nvm_stdout_is_terminal >"$tempfile" || die 'nvm_stdout_is_terminal should be false when stdout goes to a file' +[ "$(nvm_stdout_is_terminal; echo $?)" = "1" ] || die 'nvm_stdout_is_terminal should be false in command substitution' + +# also test the 'true' case while running on travis-ci or similar environments +nvm_stdout_is_terminal >/dev/tty || die 'nvm_stdout_is_terminal should be true when stdout goes to /dev/tty' +nvm_stdout_is_terminal >/dev/tty 2>/dev/null || die 'nvm_stdout_is_terminal should be true when stdout goes to /dev/tty and stderr is redirected' +nvm_stdout_is_terminal >/dev/tty &1)" = "both the tree and the node path are required" ] || die 'incorrect error message with no args' +[ "$(nvm_tree_contains_path > /dev/null 2>&1 ; echo $?)" = "2" ] || die 'incorrect error code with no args' +[ "$(nvm_tree_contains_path tmp 2>&1)" = "both the tree and the node path are required" ] || die 'incorrect error message with one arg' +[ "$(nvm_tree_contains_path > /dev/null 2>&1 ; echo $?)" = "2" ] || die 'incorrect error code with one arg' + +nvm_tree_contains_path tmp tmp/node || die '"tmp" should contain "tmp/node"' + +nvm_tree_contains_path tmp tmp2/node && die '"tmp" should not contain "tmp2/node"' + +nvm_tree_contains_path tmp2 tmp2/node || die '"tmp2" should contain "tmp2/node"' + +nvm_tree_contains_path tmp2 tmp/node && die '"tmp2" should not contain "tmp/node"' + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_use_if_needed b/_nodejs/.nvm/test/fast/Unit tests/nvm_use_if_needed new file mode 100755 index 0000000..dd04ccf --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_use_if_needed @@ -0,0 +1,24 @@ +#!/bin/sh + +cleanup() { unset -f nvm_ls_current nvm; } +die () { echo "$@" ; cleanup ; exit 1; } + +\. ../../../nvm.sh + +nvm_ls_current() { echo foo; } + +nvm() { + echo "nvm: $@" +} + +OUTPUT="$(nvm_use_if_needed foo)" +EXPECTED_OUTPUT='' + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +OUTPUT="$(nvm_use_if_needed bar)" +EXPECTED_OUTPUT='nvm: use bar' + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +cleanup diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_validate_implicit_alias b/_nodejs/.nvm/test/fast/Unit tests/nvm_validate_implicit_alias new file mode 100755 index 0000000..8fd6ecf --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_validate_implicit_alias @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +EXPECTED_MSG="Only implicit aliases 'stable', 'unstable', 'iojs', and 'node' are supported." +[ "_$(nvm_validate_implicit_alias 2>&1)" = "_$EXPECTED_MSG" ] \ + || die "nvm_validate_implicit_alias did not require stable|unstable|iojs|node" +[ "_$(nvm_validate_implicit_alias foo 2>&1)" = "_$EXPECTED_MSG" ] \ + || die "nvm_validate_implicit_alias did not require stable|unstable|iojs|node" + +EXIT_CODE="$(nvm_validate_implicit_alias >/dev/null 2>&1 ; echo $?)" +[ "_$EXIT_CODE" = "_1" ] \ + || die "nvm_validate_implicit_alias without stable|unstable|iojs|node had wrong exit code: expected 1, got $EXIT_CODE" + +nvm_validate_implicit_alias stable || die "nvm_validate_implicit_alias stable did not exit 0" +nvm_validate_implicit_alias unstable || die "nvm_validate_implicit_alias unstable did not exit 0" +nvm_validate_implicit_alias node || die "nvm_validate_implicit_alias node did not exit 0" +nvm_validate_implicit_alias iojs || die "nvm_validate_implicit_alias iojs did not exit 0" diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_version b/_nodejs/.nvm/test/fast/Unit tests/nvm_version new file mode 100755 index 0000000..6c94d85 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_version @@ -0,0 +1,48 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } +cleanup () { + unset -f nvm_ls_current nvm_ls +} + +\. ../../../nvm.sh + +nvm_ls_current() { + echo "CURRENT!" + return 7 +} + +OUTPUT="$(nvm_version current)" +EXPECTED_OUTPUT="CURRENT!" +EXIT_CODE="$(nvm_version current 2>&1 >/dev/null ; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die '"nvm_version current" did not return nvm_ls_current output' +[ "_$EXIT_CODE" = "_7" ] || die '"nvm_version current" did not return nvm_ls_current exit code' + +OUTPUT="$(nvm_version)" +EXPECTED_OUTPUT="CURRENT!" +EXIT_CODE="$(nvm_version 2>&1 >/dev/null ; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die '"nvm_version" did not return nvm_ls_current output' +[ "_$EXIT_CODE" = "_7" ] || die '"nvm_version" did not return nvm_ls_current exit code' + +nvm_ls() { + echo "line 1" + echo "line 2" + echo "pattern: $1" +} +[ "_$(nvm_version foo)" = "_pattern: foo" ] || die '"nvm_version foo" did not pass the pattern to "nvm_ls", or return the last line' +[ "_$(nvm_version node)" = "_pattern: stable" ] || die '"nvm_version node" did not pass "stable" to "nvm_ls"' +[ "_$(nvm_version node-)" = "_pattern: stable" ] || die '"nvm_version node-" did not pass "stable" to "nvm_ls"' + +nvm_ls() { echo "N/A"; } +OUTPUT="$(nvm_version foo)" +EXPECTED_OUTPUT="N/A" +EXIT_CODE="$(nvm_version foo 2>&1 >/dev/null ; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die '"nvm_version" did not return N/A when nvm_ls returns N/A' +[ "_$EXIT_CODE" = "_3" ] || die '"nvm_version" returning N/A did not exit code with code 3' + +nvm_ls() { echo; } +OUTPUT="$(nvm_version foo)" +EXPECTED_OUTPUT="N/A" +EXIT_CODE="$(nvm_version foo 2>&1 >/dev/null ; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] || die '"nvm_version" did not return N/A when nvm_ls returns nothing' +[ "_$EXIT_CODE" = "_3" ] || die '"nvm_version" returning N/A did not exit code with code 3' diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_version_dir b/_nodejs/.nvm/test/fast/Unit tests/nvm_version_dir new file mode 100755 index 0000000..ad4bd96 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_version_dir @@ -0,0 +1,11 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +[ "$(nvm_version_dir)" = "$NVM_DIR/versions/node" ] || die '"nvm_version_dir" did not return new dir path' +[ "$(nvm_version_dir iojs)" = "$NVM_DIR/versions/io.js" ] || die '"nvm_version_dir iojs" did not return iojs dir path' +[ "$(nvm_version_dir new)" = "$(nvm_version_dir)" ] || die '"nvm_version_dir new" did not return new dir path' +[ "$(nvm_version_dir old)" = "$NVM_DIR" ] || die '"nvm_version_dir old" did not return old dir path' +[ "$(nvm_version_dir foo 2>&1)" = "unknown version dir" ] || die '"nvm_version_dir foo" did not error out' diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_version_greater b/_nodejs/.nvm/test/fast/Unit tests/nvm_version_greater new file mode 100755 index 0000000..2a345ea --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_version_greater @@ -0,0 +1,15 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm_version_greater 0.10.0 0.2.12 || die '"nvm_version_greater 0.10.0 0.2.12" did not return true' + +if nvm_version_greater 0.10.0 0.20.12; then + die '"nvm_version_greater 0.10.0 0.20.12" returned true' +fi + +if nvm_version_greater 0.10.0 0.10.0; then + die '"nvm_version_greater" returned false for the same two versions' +fi diff --git a/_nodejs/.nvm/test/fast/Unit tests/nvm_version_path b/_nodejs/.nvm/test/fast/Unit tests/nvm_version_path new file mode 100755 index 0000000..2d4ad78 --- /dev/null +++ b/_nodejs/.nvm/test/fast/Unit tests/nvm_version_path @@ -0,0 +1,14 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +OUTPUT="$(nvm_version_path foo)" +EXPECTED_OUTPUT="$NVM_DIR/foo" +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "'nvm_version_path foo' did not return correct location; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" + +[ "$(nvm_version_path 2>&1)" = "version is required" ] || die '"nvm_version_path" did not error out' +[ "$(nvm_version_path v0.11.0)" = "$NVM_DIR/v0.11.0" ] || die 'old version has the wrong path' +[ "$(nvm_version_path v0.12.0)" = "$NVM_DIR/versions/node/v0.12.0" ] || die 'new version has the wrong path' +[ "$(nvm_version_path iojs-v0.12.0)" = "$NVM_DIR/versions/io.js/v0.12.0" ] || die 'iojs version has the wrong path' diff --git a/_nodejs/.nvm/test/fast/nvm should remove the last trailing slash in $NVM_DIR b/_nodejs/.nvm/test/fast/nvm should remove the last trailing slash in $NVM_DIR new file mode 100644 index 0000000..4babb54 --- /dev/null +++ b/_nodejs/.nvm/test/fast/nvm should remove the last trailing slash in $NVM_DIR @@ -0,0 +1,18 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +export NVM_DIR_BASE="/tmp" +export NVM_DIR="${NVM_DIR_BASE}/" + +\. ../../nvm.sh + +[ "${NVM_DIR}" = "${NVM_DIR_BASE}" ] || die 'nvm should remove the last trailing slash in "$NVM_DIR"' + +export NVM_DIR="${NVM_DIR_BASE}//" + +\. ../../nvm.sh + +[ "${NVM_DIR}" = "${NVM_DIR_BASE}" ] || die 'nvm should remove all the last trailing slashes in "$NVM_DIR"' diff --git a/_nodejs/.nvm/test/fast/setup b/_nodejs/.nvm/test/fast/setup new file mode 100755 index 0000000..6de3378 --- /dev/null +++ b/_nodejs/.nvm/test/fast/setup @@ -0,0 +1,14 @@ +#!/bin/sh + +set -ex + +( + cd ../.. + + # Back up + + type setopt >/dev/null 2>&1 && setopt NULL_GLOB + type shopt >/dev/null 2>&1 && shopt -s nullglob + rm -Rf v* src alias + mkdir src alias +) diff --git a/_nodejs/.nvm/test/fast/setup_dir b/_nodejs/.nvm/test/fast/setup_dir new file mode 100755 index 0000000..fd36775 --- /dev/null +++ b/_nodejs/.nvm/test/fast/setup_dir @@ -0,0 +1,18 @@ +#!/bin/sh + +set -ex + +( + cd ../.. + + # Back up + + mkdir -p bak + for SRC in v* src alias; do + [ -e "$SRC" ] && mv "$SRC" bak + done + if [ -d versions ]; then + mv versions bak + fi + true +) diff --git a/_nodejs/.nvm/test/fast/teardown b/_nodejs/.nvm/test/fast/teardown new file mode 100755 index 0000000..75a406e --- /dev/null +++ b/_nodejs/.nvm/test/fast/teardown @@ -0,0 +1,12 @@ +#!/bin/sh + +set -ex + +# Remove temporary files +( + cd ../.. + + type setopt >/dev/null 2>&1 && setopt NULL_GLOB + type shopt >/dev/null 2>&1 && shopt -s nullglob + rm -fR v* src alias test/test-xz +) diff --git a/_nodejs/.nvm/test/fast/teardown_dir b/_nodejs/.nvm/test/fast/teardown_dir new file mode 100755 index 0000000..9efb49e --- /dev/null +++ b/_nodejs/.nvm/test/fast/teardown_dir @@ -0,0 +1,15 @@ +#!/bin/sh + +set -ex + +( + cd ../.. + + # Restore + if [ -d bak ] + then + mv bak/* . > /dev/null 2>&1 || sleep 0s + rmdir bak + fi + mkdir -p src alias +) diff --git a/_nodejs/.nvm/test/install_script/nvm_check_global_modules b/_nodejs/.nvm/test/install_script/nvm_check_global_modules new file mode 100755 index 0000000..4183b97 --- /dev/null +++ b/_nodejs/.nvm/test/install_script/nvm_check_global_modules @@ -0,0 +1,54 @@ +#!/bin/sh + +cleanup () { + rm -rf "$npm_config_prefix/lib" >/dev/null 2>&1 + unset npm_config_prefix + + rm -f npm + PATH="$ORIGINAL_PATH" + + unset -f setup cleanup die + unset message ORIGINAL_PATH +} +die () { echo "$@" ; cleanup ; exit 1; } + +NVM_ENV=testing \. ../../install.sh + +setup () { + ORIGINAL_PATH="$PATH" + + npm_config_prefix="$(pwd)" + export npm_config_prefix + mkdir -p "$npm_config_prefix/lib" +} + + +setup + +npm install -g nop >/dev/null || die 'nvm_check_global_modules cannot be tested because `npm` cannot install the `nop` package' +message=$(nvm_check_global_modules) +[ ! -z "$message" ] || die "nvm_check_global_modules should have printed a notice when npm had global modules installed" + +npm uninstall -g nop >/dev/null +message=$(nvm_check_global_modules) +[ -z "$message" ] || die "nvm_check_global_modules should not have printed a notice when npm had no global modules installed" + +# Faking an installation of npm +mkdir -p "$npm_config_prefix/lib/node_modules/npm" +cat <<'JSON' >"$npm_config_prefix/lib/node_modules/npm/package.json" +{ "name": "npm", "version": "0.0.1fake" } +JSON + +message=$(nvm_check_global_modules) +[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm had only itself installed as a global module" + +# Faking the absence of npm +PATH=".:$PATH" +touch npm +chmod +x npm + +message=$(nvm_check_global_modules) +[ -z "$message" ] || die "nvm_check_global_modules should have not printed a notice when npm was unavailable" + + +cleanup diff --git a/_nodejs/.nvm/test/install_script/nvm_detect_profile b/_nodejs/.nvm/test/install_script/nvm_detect_profile new file mode 100755 index 0000000..54815ec --- /dev/null +++ b/_nodejs/.nvm/test/install_script/nvm_detect_profile @@ -0,0 +1,119 @@ +#!/bin/sh + +setup () { + HOME="." + NVM_ENV=testing \. ../../install.sh + touch ".bashrc" + touch ".bash_profile" + touch ".zshrc" + touch ".profile" + touch "test_profile" +} + +cleanup () { + unset HOME + unset NVM_ENV + unset NVM_DETECT_PROFILE + unset BASH_VERSION + unset ZSH_VERSION + unset -f setup cleanup die + rm -f ".bashrc" ".bash_profile" ".zshrc" ".profile" "test_profile" > "/dev/null" 2>&1 +} + +die () { echo "$@" '$NVM_DETECT_PROFILE:' "$NVM_DETECT_PROFILE"; cleanup; exit 1; } + +setup + +# +# Confirm profile detection via $SHELL works and that $PROFILE overrides profile detection +# + +# setting $PROFILE to /dev/null should return no detected profile +NVM_DETECT_PROFILE="$(PROFILE='/dev/null'; nvm_detect_profile)" +if [ -n "$NVM_DETECT_PROFILE" ]; then + die "nvm_detect_profile still detected a profile even though PROFILE=/dev/null" +fi + +# .bashrc should be detected for bash +NVM_DETECT_PROFILE="$(BASH_VERSION="1"; unset PROFILE; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then + die "nvm_detect_profile didn't pick \$HOME/.bashrc for bash" +fi + +# $PROFILE should override .bashrc profile detection +NVM_DETECT_PROFILE="$(SHELL="/bin/bash"; PROFILE="test_profile"; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then + die "nvm_detect_profile ignored \$PROFILE" +fi + +# .zshrc should be detected for zsh +NVM_DETECT_PROFILE="$(ZSH_VERSION="1"; unset PROFILE; unset BASH_VERSION; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then + die "nvm_detect_profile didn't pick \$HOME/.zshrc for zsh" +fi + +# $PROFILE should override .zshrc profile detection +NVM_DETECT_PROFILE="$(SHELL="/usr/bin/zsh"; PROFILE="test_profile"; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then + die "nvm_detect_profile ignored \$PROFILE" +fi + + +# +# Confirm $PROFILE is only returned when it points to a valid file +# + +# $PROFILE is a valid file +NVM_DETECT_PROFILE="$(PROFILE="test_profile"; unset ZSH_VERSION; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "test_profile" ]; then + die "nvm_detect_profile didn't pick \$PROFILE when it was a valid file" +fi + +# $PROFILE is not a valid file +rm "test_profile" +NVM_DETECT_PROFILE="$(PROFILE="test_profile"; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" = "test_profile" ]; then + die "nvm_detect_profile picked \$PROFILE when it was an invalid file" +fi + +# +# When profile detection fails via both $PROFILE and $SHELL, profile detection should select based on the existence of +# one of the following files is the following order: .profile, .bashrc, .bash_profile, .zshrc and +# return an empty value if everything fails +# + +# It should favor .profile if file exists +NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.profile" ]; then + die "nvm_detect_profile should have selected .profile" +fi + +# Otherwise, it should favor .bashrc if file exists +rm ".profile" +NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.bashrc" ]; then + die "nvm_detect_profile should have selected .bashrc" +fi + +# Otherwise, it should favor .bash_profile if file exists +rm ".bashrc" +NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.bash_profile" ]; then + die "nvm_detect_profile should have selected .bash_profile" +fi + +# Otherwise, it should favor .zshrc if file exists +rm ".bash_profile" +NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" +if [ "$NVM_DETECT_PROFILE" != "$HOME/.zshrc" ]; then + die "nvm_detect_profile should have selected .zshrc" +fi + +# It should be empty if none is found +rm ".zshrc" +NVM_DETECT_PROFILE="$(unset BASH_VERSION; unset ZSH_VERSION; nvm_detect_profile)" +if [ ! -z "$NVM_DETECT_PROFILE" ]; then + die "nvm_detect_profile should have returned an empty value" +fi + +cleanup diff --git a/_nodejs/.nvm/test/install_script/nvm_do_install b/_nodejs/.nvm/test/install_script/nvm_do_install new file mode 100755 index 0000000..5fb0d27 --- /dev/null +++ b/_nodejs/.nvm/test/install_script/nvm_do_install @@ -0,0 +1,8 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +NVM_ENV=testing \. ../../install.sh + +#nvm_do_install is available +type nvm_do_install > /dev/null 2>&1 || die 'nvm_do_install is not available' diff --git a/_nodejs/.nvm/test/install_script/nvm_install_dir b/_nodejs/.nvm/test/install_script/nvm_install_dir new file mode 100755 index 0000000..78da611 --- /dev/null +++ b/_nodejs/.nvm/test/install_script/nvm_install_dir @@ -0,0 +1,25 @@ +#!/bin/sh + +cleanup () { + unset -f die cleanup + unset install_dir +} +die () { echo "$@" ; cleanup ; exit 1; } + +NVM_ENV=testing \. ../../install.sh +HOME="__home__" + + +# NVM_DIR is set +NVM_DIR="some_dir" +install_dir=$(nvm_install_dir) +[ "_$install_dir" = "_$NVM_DIR" ] || die "nvm_install_dir should use \$NVM_DIR if it exists. Current output: $install_dir" + +unset NVM_DIR +# NVM_DIR is not set +install_dir=$(nvm_install_dir) +fallback_dir="" +[ ! -z "$XDG_CONFIG_HOME" ] && fallback_dir="$XDG_CONFIG_HOME/nvm" || fallback_dir="$HOME/.nvm" +[ "_$install_dir" = "_$fallback_dir" ] || die "nvm_install_dir should default to \$XDG_CONFIG_DIR/.nvm. Current output: $install_dir" + +cleanup diff --git a/_nodejs/.nvm/test/install_script/nvm_install_with_aliased_dot b/_nodejs/.nvm/test/install_script/nvm_install_with_aliased_dot new file mode 100755 index 0000000..b8f05a5 --- /dev/null +++ b/_nodejs/.nvm/test/install_script/nvm_install_with_aliased_dot @@ -0,0 +1,22 @@ +#!/bin/sh + +setup () { + shopt -s expand_aliases + alias .=':' + NVM_ENV=testing \. ../../install.sh > /dev/null +} + +cleanup () { + unset -f setup cleanup die + unalias . + shopt -u expand_aliases +} + +die () { echo "$@"; exit 1; } + +setup + +nvm_do_install > /dev/null 2>&1 +command -v nvm || die 'nvm could not be loaded' + +cleanup diff --git a/_nodejs/.nvm/test/install_script/nvm_install_with_node_version b/_nodejs/.nvm/test/install_script/nvm_install_with_node_version new file mode 100755 index 0000000..5f5208f --- /dev/null +++ b/_nodejs/.nvm/test/install_script/nvm_install_with_node_version @@ -0,0 +1,8 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +NODE_VERSION=8 \. ../../install.sh + +# nvm installed node 8 +nvm ls 8 > /dev/null 2>&1 || die "nvm didn't install node 8" diff --git a/_nodejs/.nvm/test/install_script/nvm_profile_is_bash_or_zsh b/_nodejs/.nvm/test/install_script/nvm_profile_is_bash_or_zsh new file mode 100755 index 0000000..aae9cc3 --- /dev/null +++ b/_nodejs/.nvm/test/install_script/nvm_profile_is_bash_or_zsh @@ -0,0 +1,13 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +NVM_ENV=testing \. ../../install.sh + +#nvm_profile_is_bash_or_zsh is available +type nvm_profile_is_bash_or_zsh > /dev/null 2>&1 || die 'nvm_profile_is_bash_or_zsh is not available' +nvm_profile_is_bash_or_zsh "/home/nvm/.bashrc" || die '/home/nvm/.bashrc is bash profile' +nvm_profile_is_bash_or_zsh "/home/nvm/.bash_profile" || die '/home/nvm/.bash_profile is bash profile' +nvm_profile_is_bash_or_zsh "/home/nvm/.zshrc" || die '/home/nvm/.zshrc is zsh profile' +if nvm_profile_is_bash_or_zsh "/home/nvm/.bash"; then die '/home/nvm/.bash is not bash nor zsh profile'; fi +if nvm_profile_is_bash_or_zsh "/home/nvm/.zsh" ; then die '/home/nvm/.zsh is not bash nor zsh profile'; fi diff --git a/_nodejs/.nvm/test/install_script/nvm_reset b/_nodejs/.nvm/test/install_script/nvm_reset new file mode 100755 index 0000000..77bac0a --- /dev/null +++ b/_nodejs/.nvm/test/install_script/nvm_reset @@ -0,0 +1,38 @@ +#!/bin/sh + +cleanup () { + unset -f safe_type die cleanup +} +die () { echo "$@" ; cleanup ; exit 1; } + +safe_type() { + type "$1" +} + +# precondition: the names should be unset +! safe_type nvm_do_install || die 'nvm_do_install is still available' +! safe_type nvm_has || die 'nvm_has is still available' +! safe_type nvm_download || die 'nvm_download is still available' +! safe_type install_nvm_as_script || die 'install_nvm_as_script is still available' +! safe_type install_nvm_from_git || die 'install_nvm_from_git is still available' +! safe_type nvm_reset || die 'nvm_reset is still available' +! safe_type nvm_detect_profile || die 'nvm_detect_profile is still available' + +NVM_ENV=testing \. ../../install.sh + +# Check nvm_reset exists +safe_type nvm_reset || die 'nvm_reset is not available' + +# Apply nvm_reset +nvm_reset || die 'nvm_reset failed' + +# The names should be unset +! safe_type nvm_do_install || die 'nvm_do_install is still available' +! safe_type nvm_has || die 'nvm_has is still available' +! safe_type nvm_download || die 'nvm_download is still available' +! safe_type install_nvm_as_script || die 'install_nvm_as_script is still available' +! safe_type install_nvm_from_git || die 'install_nvm_from_git is still available' +! safe_type nvm_reset || die 'nvm_reset is still available' +! safe_type nvm_detect_profile || die 'nvm_detect_profile is still available' + +cleanup diff --git a/_nodejs/.nvm/test/install_script/nvm_source b/_nodejs/.nvm/test/install_script/nvm_source new file mode 100755 index 0000000..9c1ec08 --- /dev/null +++ b/_nodejs/.nvm/test/install_script/nvm_source @@ -0,0 +1,39 @@ +#!/bin/sh + +cleanup () { + unset -f die cleanup + unset NVM_SOURCE out +} +die () { echo "$@" ; cleanup ; exit 1; } + +NVM_ENV=testing \. ../../install.sh + +# nvm_source with no parameter returns the git endpoint +echo $(nvm_source) | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" + +# nvm_source with git parameter returns the location of the nvm repo +echo $(nvm_source "git") | grep "nvm.git$" > /dev/null || die "nvm_source without arguments should return the location of the git repo" + +# nvm_source with script parameter returns the location of nvm.sh +echo $(nvm_source "script") | grep "nvm.sh$" > /dev/null || die "nvm_source \"script\" should return the location of nvm.sh" + +# nvm_source with script-nvm-exec parameter returns the location of nvm-exec +echo $(nvm_source "script-nvm-exec") | grep "nvm-exec$" > /dev/null || die "nvm_source \"script-nvm-exec\" should return the location of nvm.sh" + +# nvm_source with any other parameter errors out and exits +nvm_source "anything" 2> /dev/null && die "nvm_source with invalid parameter should exit" +out=$(nvm_source "anything" 2>&1 >/dev/null) || : #Saving the process here +[ -z "$out" ] && die "nvm_source with invalid parameter should error out" + +#nvm_source should always return NVM_SOURCE no matter the parameters +NVM_SOURCE="my_location" +out=$(nvm_source) +[ "_$out" = "_my_location" ] || die "nvm_source without arguments should have returned \$NVM_SOURCE. Got \"$out\"" +out=$(nvm_source "git") +[ "_$out" = "_my_location" ] || die "nvm_source git should have returned \$NVM_SOURCE. Got \"$out\"" +out=$(nvm_source "script") +[ "_$out" = "_my_location" ] || die "nvm_source script should have returned \$NVM_SOURCE. Got \"$out\"" +out=$(nvm_source "anything") +[ "_$out" = "_my_location" ] || die "nvm_source script should have returned \$NVM_SOURCE. Got \"$out\"" + +cleanup diff --git a/_nodejs/.nvm/test/installation_iojs/install already installed uses it b/_nodejs/.nvm/test/installation_iojs/install already installed uses it new file mode 100755 index 0000000..981c981 --- /dev/null +++ b/_nodejs/.nvm/test/installation_iojs/install already installed uses it @@ -0,0 +1,25 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +[ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" + +# Remove the stuff we're clobbering. +[ -e "${NVM_DIR}/versions/io.js/v1.0.0" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.0" +[ -e "${NVM_DIR}/versions/io.js/v1.0.1" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.1" + +# Install from binary +nvm install iojs-v1.0.0 +nvm install iojs-v1.0.1 + +nvm use iojs-v1.0.0 + +node --version | grep v1.0.0 || die "precondition failed: iojs node doesn't start at v1.0.0" +iojs --version | grep v1.0.0 || die "precondition failed: iojs binary doesn't start at v1.0.0" + +nvm install iojs-v1.0.1 + +node --version | grep v1.0.1 || die "nvm install on already installed version doesn't use it (node binary)" +iojs --version | grep v1.0.1 || die "nvm install on already installed version doesn't use it (iojs binary)" diff --git a/_nodejs/.nvm/test/installation_iojs/install from binary b/_nodejs/.nvm/test/installation_iojs/install from binary new file mode 100755 index 0000000..3ffe8aa --- /dev/null +++ b/_nodejs/.nvm/test/installation_iojs/install from binary @@ -0,0 +1,22 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +NVM_TEST_VERSION="v1.0.0" +NVM_PREFIXED_TEST_VERSION="iojs-$NVM_TEST_VERSION" + +# Remove the stuff we're clobbering. +[ -e "${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" ] && rm -R "${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" +[ -e "${NVM_DIR}/.cache/bin/${NVM_TEST_VERSION}-linux-x64/" ] && rm -R "${NVM_DIR}/.cache/bin/${NVM_TEST_VERSION}-linux-x64/" + +# Install from binary +OUTPUT_HEAD="$(2>&1 nvm install --no-progress $NVM_PREFIXED_TEST_VERSION | tac | tail -n 1)" || die "install $NVM_PREFIXED_TEST_VERSION failed" +EXPECTED_OUTPUT_HEAD="Downloading and installing io.js v1.0.0..." + +[ "${OUTPUT_HEAD}" = "${EXPECTED_OUTPUT_HEAD}" ] || die "expected >${EXPECTED_OUTPUT_HEAD}<; got >${OUTPUT_HEAD}<" + +# Check +[ -d "${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" ] +nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" || die "'nvm run ${NVM_PREFIXED_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed" diff --git a/_nodejs/.nvm/test/installation_iojs/install from source b/_nodejs/.nvm/test/installation_iojs/install from source new file mode 100644 index 0000000..d834e78 --- /dev/null +++ b/_nodejs/.nvm/test/installation_iojs/install from source @@ -0,0 +1,22 @@ +#!/bin/sh + +\. ../common.sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +set -ex + +NVM_TEST_VERSION='v3.3.1' +NVM_PREFIXED_TEST_VERSION="iojs-${NVM_TEST_VERSION}" + +# Remove the stuff we're clobbering. +nvm uninstall "${NVM_TEST_VERSION}" || echo 'not installed' + +# Install from source +(watch nvm install -s "${NVM_PREFIXED_TEST_VERSION}") || die "'nvm install -s ${NVM_PREFIXED_TEST_VERSION}' failed" + +# Check +nvm_is_version_installed "${NVM_PREFIXED_TEST_VERSION}" || die 'version not installed' +nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" || "'nvm run ${NVM_PREFIXED_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed" diff --git a/_nodejs/.nvm/test/installation_iojs/install two versions and use the latest one b/_nodejs/.nvm/test/installation_iojs/install two versions and use the latest one new file mode 100755 index 0000000..2ec99cd --- /dev/null +++ b/_nodejs/.nvm/test/installation_iojs/install two versions and use the latest one @@ -0,0 +1,25 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +# Remove the stuff we're clobbering. +[ -e "${NVM_DIR}/versions/io.js/v1.0.0" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.0" +[ -e "${NVM_DIR}/versions/io.js/v1.0.1" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.1" + +# Install from binary +nvm install iojs-v1.0.0 || die "'nvm install iojs-v1.0.0' failed" +nvm i iojs-v1.0.1 || die "'nvm i iojs-v1.0.1' failed" + +# Check +[ -d "${NVM_DIR}/versions/io.js/v1.0.0" ] || die "iojs v1.0.0 didn't exist" +[ -d "${NVM_DIR}/versions/io.js/v1.0.1" ] || die "iojs v1.0.1 didn't exist" + +# Use the first one +nvm use iojs-1.0.0 || die "'nvm use iojs-1.0.0' failed" + +# Use the latest one +nvm use iojs-1 || die "'nvm use iojs-1' failed" +[ "_$(node --version)" = "_v1.0.1" ] || die "'node --version' was not v1.0.1, got: $(node --version)" +[ "_$(iojs --version)" = "_v1.0.1" ] || die "'iojs --version' was not v1.0.1, got: $(iojs --version)" diff --git a/_nodejs/.nvm/test/installation_iojs/install version specified in .nvmrc from binary b/_nodejs/.nvm/test/installation_iojs/install version specified in .nvmrc from binary new file mode 100755 index 0000000..30e8b70 --- /dev/null +++ b/_nodejs/.nvm/test/installation_iojs/install version specified in .nvmrc from binary @@ -0,0 +1,22 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +NVM_TEST_VERSION=v1.0.0 +NVM_PREFIXED_TEST_VERSION="iojs-${NVM_TEST_VERSION}" +VERSION_PATH="${NVM_DIR}/versions/io.js/${NVM_TEST_VERSION}" + +# Remove the stuff we're clobbering. +[ -e "${VERSION_PATH}" ] && rm -R "${VERSION_PATH}" + +# Install from binary +echo "${NVM_PREFIXED_TEST_VERSION}" > .nvmrc + +nvm install || die "'nvm install' failed" + +# Check +[ -d "${VERSION_PATH}" ] || die "./${VERSION_PATH} did not exist" +nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" \ + || "'nvm run \'${NVM_PREFIXED_TEST_VERSION}\' --version | grep \'${NVM_TEST_VERSION}\'' failed" diff --git a/_nodejs/.nvm/test/installation_iojs/install version specified in .nvmrc from source b/_nodejs/.nvm/test/installation_iojs/install version specified in .nvmrc from source new file mode 100644 index 0000000..d02ddc7 --- /dev/null +++ b/_nodejs/.nvm/test/installation_iojs/install version specified in .nvmrc from source @@ -0,0 +1,23 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +set -ex + +NVM_TEST_VERSION='v3.3.0' +NVM_PREFIXED_TEST_VERSION="iojs-${NVM_TEST_VERSION}" + +# Remove the stuff we're clobbering. +nvm uninstall "${NVM_TEST_VERSION}" || echo 'not installed' + +# Install from binary +echo "${NVM_PREFIXED_TEST_VERSION}" > .nvmrc + +nvm install -s || "'nvm install -s' failed" + +# Check +nvm_is_version_installed "${NVM_PREFIXED_TEST_VERSION}" || die 'version is not installed' +nvm run "${NVM_PREFIXED_TEST_VERSION}" --version | grep "${NVM_TEST_VERSION}" \ + || die "'nvm run ${NVM_PREFIXED_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed" diff --git a/_nodejs/.nvm/test/installation_iojs/install while reinstalling packages b/_nodejs/.nvm/test/installation_iojs/install while reinstalling packages new file mode 100755 index 0000000..072eb91 --- /dev/null +++ b/_nodejs/.nvm/test/installation_iojs/install while reinstalling packages @@ -0,0 +1,31 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +# Remove the stuff we're clobbering. +[ -e "${NVM_DIR}/versions/io.js/v1.0.0" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.0" +[ -e "${NVM_DIR}/versions/io.js/v1.0.1" ] && rm -R "${NVM_DIR}/versions/io.js/v1.0.1" + +# Install from binary +nvm install iojs-v1.0.0 + +# Check +[ -d "${NVM_DIR}/versions/io.js/v1.0.0" ] || die "nvm install iojs-v1.0.0 didn't install" + +node --version | grep v1.0.0 > /dev/null || die "nvm install didn't use iojs-v1.0.0" + +npm install -g object-is@0.0.0 || die "npm install -g object-is failed" +npm list --global | grep object-is > /dev/null || die "object-is isn't installed" + +nvm ls iojs-1 | grep iojs-v1.0.0 > /dev/null || die "nvm ls iojs-1 didn't show iojs-v1.0.0" + +nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 || die "nvm install iojs-v1.0.1 --reinstall-packages-from=iojs-1.0.0 failed" + +[ -d "${NVM_DIR}/versions/io.js/v1.0.1" ] || die "nvm install iojs-v1.0.1 didn't install" + +nvm use iojs-1 +node --version | grep v1.0.1 > /dev/null || die "nvm use iojs-1 didn't use v1.0.1" + +npm list --global | grep object-is > /dev/null || die "object-is isn't installed" diff --git a/_nodejs/.nvm/test/installation_iojs/nvm install v1 works b/_nodejs/.nvm/test/installation_iojs/nvm install v1 works new file mode 100755 index 0000000..4498ee2 --- /dev/null +++ b/_nodejs/.nvm/test/installation_iojs/nvm install v1 works @@ -0,0 +1,19 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +NVM_VERSION="v1" +NVM_PREFIXED_TEST_VERSION="$(nvm ls-remote "$NVM_VERSION" | tail -1 | sed 's/^[ ]*//;s/[ ]*$//')" +NVM_TEST_VERSION="$(nvm_strip_iojs_prefix "$NVM_PREFIXED_TEST_VERSION")" + +# Remove the stuff we're clobbering. +[ -e "../../$NVM_TEST_VERSION" ] && rm -R "../../$NVM_TEST_VERSION" + +# Install from binary +nvm install "$NVM_VERSION" || die "nvm install $NVM_VERSION failed" + +# Check +[ -d "${NVM_DIR}/versions/io.js/$NVM_TEST_VERSION" ] +nvm run "$NVM_PREFIXED_TEST_VERSION" --version | grep "$NVM_TEST_VERSION" || die "'nvm run $NVM_PREFIXED_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/_nodejs/.nvm/test/installation_iojs/setup_dir b/_nodejs/.nvm/test/installation_iojs/setup_dir new file mode 100755 index 0000000..cb4522d --- /dev/null +++ b/_nodejs/.nvm/test/installation_iojs/setup_dir @@ -0,0 +1,5 @@ +#!/bin/sh + +if [ -f ".nvmrc" ]; then + mv .nvmrc .nvmrc.bak +fi diff --git a/_nodejs/.nvm/test/installation_iojs/teardown_dir b/_nodejs/.nvm/test/installation_iojs/teardown_dir new file mode 100755 index 0000000..2ca9cf1 --- /dev/null +++ b/_nodejs/.nvm/test/installation_iojs/teardown_dir @@ -0,0 +1,16 @@ +#!/bin/sh + +\. ../../nvm.sh +nvm deactivate +nvm uninstall iojs-v1.0.0 +nvm uninstall iojs-v1.0.3 +nvm uninstall iojs-v3.3.0 +nvm uninstall iojs-v3.3.1 + +if [ -f ".nvmrc" ]; then + rm .nvmrc +fi + +if [ -f ".nvmrc.bak" ]; then + mv .nvmrc.bak .nvmrc +fi diff --git a/_nodejs/.nvm/test/installation_node/default-packages b/_nodejs/.nvm/test/installation_node/default-packages new file mode 100755 index 0000000..7b1cfca --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/default-packages @@ -0,0 +1,123 @@ +#!/bin/sh + +FILE="$NVM_DIR/default-packages" + +die () { echo "$@" ; cleanup ; exit 1; } +setup () { + if [ -f $FILE ]; then + ORIG_DEFAULT_PACKAGES=$(cat $FILE) + mkdir ./tmp/ ||: + mv $FILE ./tmp/default-packages ||: + fi + touch $FILE +} +cleanup () { + rm -rf "$(nvm_version_path v6.10.1)" $FILE + if [ "$ORIG_DEFAULT_PACKAGES" != "" ]; then + rm -rf ./tmp/ + echo "$ORIG_DEFAULT_PACKAGES" > $FILE + fi +} + +setup + +\. ../../nvm.sh + +cat > $FILE << EOF +rimraf +object-inspect@1.0.2 + +# commented-package + +stevemao/left-pad +daytime +EOF + +printf %s "$(cat "${FILE}")" > $FILE # strip trailing newline + +nvm install v6.10.1 2>&1 +EXIT_CODE=$? +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm install v6.10.1' to exit with 0, got $EXIT_CODE" + +nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'rimraf' +if [ -z "$?" ]; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'rimraf'' to exit with 0, got $?" +fi + +nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'daytime' +if [ -z "$?" ]; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'daytime'' to exit with 0, got $?" +fi + +cleanup + +setup + +\. ../../nvm.sh + +cat > $FILE << EOF +rimraf +object-inspect@1.0.2 + +# commented-package + +stevemao/left-pad +EOF + +nvm install v6.10.1 --skip-default-packages 2>&1 +EXIT_CODE=$? +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm install v6.10.1' to exit with 0, got $EXIT_CODE" + +if nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'rimraf'; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'rimraf'' to be empty" +fi + +cleanup + +setup + +cat > $FILE << EOF +not~a~package~name +EOF + +nvm install v6.10.1 +EXIT_CODE=$? +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm install v6.10.1' to exit with 0, got $EXIT_CODE" + +if nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'not~a~package~name'; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'not~a~package~name'' to exit with 1, got $?" +fi + +cleanup + +setup + +cat > $FILE << EOF +object-inspect @ 1.0.2 +EOF + +nvm install v6.10.1 2>&1 +EXIT_CODE=$? +[ "_$EXIT_CODE" = "_1" ] || die "expected 'nvm install v6.10.1' to exit with 1, got $EXIT_CODE" + +if nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'object-inspect'; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'object-inspect'' to exit with 1, got $?" +fi + +cleanup + +setup + +rm -rf $FILE + +nvm install v6.10.1 2>&1 +EXIT_CODE=$? +[ "_$EXIT_CODE" = "_0" ] || die "expected 'nvm install v6.10.1' to exit with 0, got $EXIT_CODE" + +if nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'object-inspect'; then + die "expected 'nvm exec v6.10.1 npm ls -g --depth=0 | grep -q 'object-inspect'' to exit with 1, got $?" +fi + +touch $FILE + +cleanup diff --git a/_nodejs/.nvm/test/installation_node/install LTS b/_nodejs/.nvm/test/installation_node/install LTS new file mode 100755 index 0000000..e5638e2 --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install LTS @@ -0,0 +1,29 @@ +#!/bin/sh + +set -eux + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +nvm unalias default >/dev/null 2>&1 || die 'unable to unalias default' + +set +ex # needed for stderr +OUTPUT="$(nvm install --lts 3 2>&1)" +set -ex +EXIT_CODE="$(nvm install --lts 3 >/dev/null 2>&1 && echo $? || echo $?)" +EXPECTED_OUTPUT="Version '3' (with LTS filter) not found - try \`nvm ls-remote --lts\` to browse available versions." +[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts 3\` did not exit with 3, got >${EXIT_CODE}<" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts 3\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +set +ex # needed for stderr +OUTPUT="$(nvm install --lts=argon 3 2>&1)" +set -ex +EXIT_CODE="$(nvm install --lts=argon 3 >/dev/null 2>&1 && echo $? || echo $?)" +EXPECTED_OUTPUT="Version '3' (with LTS filter 'argon') not found - try \`nvm ls-remote --lts=argon\` to browse available versions." +[ "${EXIT_CODE}" = 3 ] || die "\`nvm install --lts=argon 3\` did not exit with 3, got >${EXIT_CODE}<" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm install --lts=argon 3\` output >${OUTPUT}<, expected >${EXPECTED_OUTPUT}<" + +nvm install --lts 4.2.2 || die 'nvm install --lts 4.2.2 failed' + +[ "$(nvm current)" = "v4.2.2" ] || die "v4.2.2 not current, got $(nvm_current)" diff --git a/_nodejs/.nvm/test/installation_node/install already installed uses it b/_nodejs/.nvm/test/installation_node/install already installed uses it new file mode 100755 index 0000000..a346d7d --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install already installed uses it @@ -0,0 +1,23 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +[ "$(nvm install invalid.invalid 2>&1)" = "Version 'invalid.invalid' not found - try \`nvm ls-remote\` to browse available versions." ] || die "nvm installing an invalid version did not print a nice error message" + +# Remove the stuff we're clobbering. +[ -e "${NVM_DIR}/v0.9.7" ] && rm -R "${NVM_DIR}/v0.9.7" +[ -e "${NVM_DIR}/v0.9.12" ] && rm -R "${NVM_DIR}/v0.9.12" + +# Install from binary +nvm install 0.9.7 +nvm install 0.9.12 + +nvm use 0.9.7 + +node --version | grep v0.9.7 || die "precondition failed: node doesn't start at 0.9.7" + +nvm install 0.9.12 + +node --version | grep v0.9.12 || die "nvm install on already installed version doesn't use it" diff --git a/_nodejs/.nvm/test/installation_node/install from binary b/_nodejs/.nvm/test/installation_node/install from binary new file mode 100755 index 0000000..e66b371 --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install from binary @@ -0,0 +1,23 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +nvm unalias default || die 'unable to unalias default' + +NVM_TEST_VERSION=v0.10.7 + +# Remove the stuff we're clobbering. +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION + +# Install from binary +nvm install $NVM_TEST_VERSION || die "install $NVM_TEST_VERSION failed" + +# Check +[ -d ../../$NVM_TEST_VERSION ] +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + +# ensure default is set +NVM_CURRENT_DEFAULT="$(nvm_alias default)" +[ "$NVM_CURRENT_DEFAULT" = "$NVM_TEST_VERSION" ] || die "wrong default alias: $(nvm alias)" diff --git a/_nodejs/.nvm/test/installation_node/install from source b/_nodejs/.nvm/test/installation_node/install from source new file mode 100755 index 0000000..d458c87 --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install from source @@ -0,0 +1,29 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +set +e # TODO: fix +\. ../../nvm.sh +set -e + +nvm deactivate || die 'deactivate failed' + +nvm unalias default || die 'unable to unalias default' + +NVM_TEST_VERSION=v0.10.7 + +# Remove the stuff we're clobbering. +nvm uninstall "${NVM_TEST_VERSION}" || die 'nvm uninstall failed' + +# Install from source +nvm install -s "${NVM_TEST_VERSION}" || die "'nvm install -s ${NVM_TEST_VERSION}' failed" + +# Check +[ -d ../../$NVM_TEST_VERSION ] || die "../../${NVM_TEST_VERSION} is not a directory" +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run ${NVM_TEST_VERSION} --version | grep ${NVM_TEST_VERSION}' failed" + +# ensure default is set +NVM_CURRENT_DEFAULT="$(nvm_alias default)" +[ "${NVM_CURRENT_DEFAULT}" = "${NVM_TEST_VERSION}" ] || die "wrong default alias: $(nvm alias)" diff --git a/_nodejs/.nvm/test/installation_node/install from source implicitly b/_nodejs/.nvm/test/installation_node/install from source implicitly new file mode 100755 index 0000000..a07efc7 --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install from source implicitly @@ -0,0 +1,23 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +set +e # TODO: fix +\. ../../nvm.sh +set -e + +nvm deactivate || die 'deactivate failed' + +NVM_TEST_VERSION=v0.8.5 + +# Remove the stuff we're clobbering. +nvm uninstall "${NVM_TEST_VERSION}" || die 'uninstall failed' + +# Install from source implicitly (v0.8.6 is when binaries started) +nvm install $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" + +# Check +[ -d ../../$NVM_TEST_VERSION ] +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/_nodejs/.nvm/test/installation_node/install from source with thread parameter b/_nodejs/.nvm/test/installation_node/install from source with thread parameter new file mode 100755 index 0000000..1b3faae --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install from source with thread parameter @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +NVM_TEST_VERSION=v0.10.7 + +# STAGE 1 # + +# Remove the stuff we're clobbering. +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION + +# Install from source with 1 make job +nvm install -s -j 1 $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" + +# Check +[ -d ../../$NVM_TEST_VERSION ] +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" + + + +# STAGE 2 # + +# Remove the stuff we're clobbering. +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION + +# Install from source with 2 make jobs (and swapped arg order) +nvm install -j 2 -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" + +# Check +[ -d ../../$NVM_TEST_VERSION ] +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/_nodejs/.nvm/test/installation_node/install from source without V8 snapshot for ARM b/_nodejs/.nvm/test/installation_node/install from source without V8 snapshot for ARM new file mode 100755 index 0000000..fe8241d --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install from source without V8 snapshot for ARM @@ -0,0 +1,25 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +NVM_TEST_VERSION=v0.10.7 + +# Remove the stuff we're clobbering. +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION + +# Fake ARM arch +nvm_get_arch() { + echo "armv7l" +} + +# Install from source +nvm install -s $NVM_TEST_VERSION || die "'nvm install -s $NVM_TEST_VERSION' failed" + +# Check Install +[ -d ../../$NVM_TEST_VERSION ] +node --version | grep $NVM_TEST_VERSION || "'node --version | grep $NVM_TEST_VERSION' failed" + +# Check V8 snapshot isn't compiled +node -p "if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }" | grep "no-snapshot" || "'node -p \"if(! process.config.variables.v8_use_snapshot) { console.log('no-snapshot'); }\" | grep \"no-snapshot\"' failed" diff --git a/_nodejs/.nvm/test/installation_node/install hook b/_nodejs/.nvm/test/installation_node/install hook new file mode 100755 index 0000000..4290bb1 --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install hook @@ -0,0 +1,45 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +. ../../nvm.sh + +VERSION='v0.11.0' +VERSION_PATH="$(nvm_version_path "${VERSION}")" + +succeed() { + nvm_echo "$@" + NVM_INSTALL_THIRD_PARTY_HOOK= nvm install "${VERSION}" +} + +fail() { + succeed "$@" + return 11 +} + +! nvm_is_version_installed "${VERSION}" || nvm uninstall "${VERSION}" || die 'uninstall failed' + +# an existing but empty VERSION_PATH directory should not be enough to satisfy nvm_is_version_installed +rm -rf "${VERSION_PATH}" +mkdir -p "${VERSION_PATH}" +nvm_is_version_installed "${VERSION}" && die 'nvm_is_version_installed check not strict enough' +rmdir "${VERSION_PATH}" + +OUTPUT="$(NVM_INSTALL_THIRD_PARTY_HOOK=succeed nvm install "${VERSION}")" +USE_OUTPUT="$(nvm use "${VERSION}")" +EXPECTED_OUTPUT="${VERSION} node std binary ${VERSION_PATH} +Downloading and installing node ${VERSION}... +${USE_OUTPUT}" + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" + +! nvm_is_version_installed "${VERSION}" || nvm uninstall "${VERSION}" || die 'uninstall 2 failed' + +OUTPUT="$(NVM_INSTALL_THIRD_PARTY_HOOK=fail nvm install "${VERSION}" || echo 'failed')" +USE_OUTPUT="$(nvm use "${VERSION}")" +EXPECTED_OUTPUT="${VERSION} node std binary ${VERSION_PATH} +Downloading and installing node ${VERSION}... +${USE_OUTPUT} +failed" + +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "expected >${EXPECTED_OUTPUT}<; got >${OUTPUT}<" diff --git a/_nodejs/.nvm/test/installation_node/install latest npm b/_nodejs/.nvm/test/installation_node/install latest npm new file mode 100755 index 0000000..8bb7a62 --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install latest npm @@ -0,0 +1,42 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +set +e # todo: fix +\. ../../nvm.sh +set -e + +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 1' +nvm install 4 >/dev/null 2>&1 || die 'install v4 failed' +nvm install-latest-npm || die 'nvm install-latest-npm failed: 1' +NPM_VERSION="$(npm --version)" +nvm_version_greater_than_or_equal_to "${NPM_VERSION}" 5.0.0 || die "node v4.x updates to ${NPM_VERSION}; expected >= v5" + +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 2' +nvm install 1.0 >/dev/null 2>&1 || die 'install v1.0 failed' +nvm install-latest-npm || die 'nvm install-latest-npm failed: 2' +NPM_VERSION="$(npm --version)" +[ "${NPM_VERSION}" = '4.5.0' ] || die "io.js v1.0.x updates to ${NPM_VERSION}; expected v4.5.0" + +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 3' +nvm install 1 >/dev/null 2>&1 || die 'install v1 failed' +nvm install-latest-npm || die 'nvm install-latest-npm failed: 3' +NPM_VERSION="$(npm --version)" +[ "${NPM_VERSION}" = '4.6.1' ] || die "io.js v1.x updates to ${NPM_VERSION}; expected v4.6.1" + +export NPM_CONFIG_STRICT_SSL=false # the npm registry tightened up their SSL certs + +nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 4' +nvm install 0.8.27 >/dev/null 2>&1 || die 'install v0.8 failed' +nvm install-latest-npm || die 'nvm install-latest-npm failed: 4' +NPM_VERSION="$(npm --version)" +[ "${NPM_VERSION}" = '4.5.0' ] || die "node 0.8.27 updates to ${NPM_VERSION}; expected v4.5.0" + +## Commented to work around travis-ci breaking 0,6 installs +# nvm deactivate >/dev/null 2>&1 || die 'unable to deactivate: 5' +# nvm install 0.6.21 >/dev/null 2>&1 || die 'install v0.6 failed' +# nvm install-latest-npm || die 'nvm install-latest-npm failed: 5' +# NPM_VERSION="$(npm --version)" +# [ "${NPM_VERSION}" = '1.3.26' ] || die "node 0.6.21 updates to ${NPM_VERSION}; expected v1.3.26" diff --git a/_nodejs/.nvm/test/installation_node/install two versions and use the latest one b/_nodejs/.nvm/test/installation_node/install two versions and use the latest one new file mode 100755 index 0000000..1fac278 --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install two versions and use the latest one @@ -0,0 +1,24 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +# Remove the stuff we're clobbering. +[ -e "${NVM_DIR}/v0.9.7" ] && rm -R "${NVM_DIR}/v0.9.7" +[ -e "${NVM_DIR}/v0.9.12" ] && rm -R "${NVM_DIR}/v0.9.12" + +# Install from binary +nvm install 0.9.7 || die "'nvm install 0.9.7' failed" +nvm i 0.9.12 || die "'nvm i 0.9.12' failed" + +# Check +[ -d "${NVM_DIR}/v0.9.7" ] || die "v0.9.7 didn't exist" +[ -d "${NVM_DIR}/v0.9.12" ] || die "v0.9.12 didn't exist" + +# Use the first one +nvm use 0.9.7 || die "'nvm use 0.9.7' failed" + +# Use the latest one +nvm use 0.9 || die "'nvm use 0.9' failed" +node --version | grep v0.9.12 || die "'node --version' was not v0.9.12, got: $(node --version)" diff --git a/_nodejs/.nvm/test/installation_node/install version specified in .nvmrc from binary b/_nodejs/.nvm/test/installation_node/install version specified in .nvmrc from binary new file mode 100755 index 0000000..0c90c99 --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install version specified in .nvmrc from binary @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +NVM_TEST_VERSION=v0.10.7 + +# Remove the stuff we're clobbering. +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION + +# Install from binary +echo "$NVM_TEST_VERSION" > .nvmrc + +nvm install || die "'nvm install' failed" + +# Check +[ -d ../../$NVM_TEST_VERSION ] || die "./$NVM_TEST_VERSION did not exist" +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \ + || "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/_nodejs/.nvm/test/installation_node/install version specified in .nvmrc from source b/_nodejs/.nvm/test/installation_node/install version specified in .nvmrc from source new file mode 100755 index 0000000..85ede4d --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install version specified in .nvmrc from source @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +NVM_TEST_VERSION=v0.10.7 + +# Remove the stuff we're clobbering. +[ -e ../../$NVM_TEST_VERSION ] && rm -R ../../$NVM_TEST_VERSION + +# Install from binary +echo "$NVM_TEST_VERSION" > .nvmrc + +nvm install -s || "'nvm install -s' failed" + +# Check +[ -d ../../$NVM_TEST_VERSION ] || die "$NVM_TEST_VERSION did not exist" +nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION \ + || die "'nvm run $NVM_TEST_VERSION --version | grep $NVM_TEST_VERSION' failed" diff --git a/_nodejs/.nvm/test/installation_node/install while reinstalling packages b/_nodejs/.nvm/test/installation_node/install while reinstalling packages new file mode 100755 index 0000000..5588842 --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install while reinstalling packages @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +# Remove the stuff we're clobbering. +[ -e "${NVM_DIR}/versions/node/v9.7.0" ] && rm -R "${NVM_DIR}/versions/node/v9.7.0" +[ -e "${NVM_DIR}/versions/node/v9.10.0" ] && rm -R "${NVM_DIR}/versions/node/v9.10.0" + +# Install from binary +nvm install 9.7.0 + +# Check +[ -d "${NVM_DIR}/versions/node/v9.7.0" ] || die "nvm install 9.7.0 didn't install" + +nvm use 9.7.0 + +node --version | grep v9.7.0 > /dev/null || die "nvm use 9.7.0 failed" + +npm install -g object-is@0.0.0 || die "npm install -g object-is failed" +npm list --global | grep object-is > /dev/null || die "object-is isn't installed" + +nvm ls 9 | grep v9.7.0 > /dev/null || die "nvm ls 9 didn't show v9.7.0" + +nvm install 9.10.0 --reinstall-packages-from=9 || die "nvm install 9.10.0 --reinstall-packages-from=9 failed" + +[ -d "${NVM_DIR}/versions/node/v9.10.0" ] || die "nvm install 9.10.0 didn't install" + +nvm use 9 +node --version | grep v9.10.0 > /dev/null || die "nvm ls 9 didn't use v9.10.0" + +npm list --global | grep object-is > /dev/null || die "object-is isn't installed" diff --git a/_nodejs/.nvm/test/installation_node/install with --latest-npm b/_nodejs/.nvm/test/installation_node/install with --latest-npm new file mode 100755 index 0000000..55ac74b --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/install with --latest-npm @@ -0,0 +1,12 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +set +e # todo: fix +\. ../../nvm.sh +set -e + +NVM_DEBUG=1 nvm install --latest-npm 4.2.2 \ + | grep 'Attempting to upgrade to the latest working version of npm...' || die 'did not call through to nvm_install_latest_npm' diff --git a/_nodejs/.nvm/test/installation_node/setup_dir b/_nodejs/.nvm/test/installation_node/setup_dir new file mode 100755 index 0000000..cb4522d --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/setup_dir @@ -0,0 +1,5 @@ +#!/bin/sh + +if [ -f ".nvmrc" ]; then + mv .nvmrc .nvmrc.bak +fi diff --git a/_nodejs/.nvm/test/installation_node/teardown_dir b/_nodejs/.nvm/test/installation_node/teardown_dir new file mode 100755 index 0000000..adb23c4 --- /dev/null +++ b/_nodejs/.nvm/test/installation_node/teardown_dir @@ -0,0 +1,18 @@ +#!/bin/sh + +\. ../../nvm.sh +nvm deactivate +nvm uninstall v0.10.7 +nvm uninstall v4.2.2 +nvm uninstall v0.9.7 +nvm uninstall v9.7.0 +nvm uninstall v0.9.12 +nvm uninstall v9.10.0 + +if [ -f ".nvmrc" ]; then + rm .nvmrc +fi + +if [ -f ".nvmrc.bak" ]; then + mv .nvmrc.bak .nvmrc +fi diff --git a/_nodejs/.nvm/test/mocks/isainfo_amd64 b/_nodejs/.nvm/test/mocks/isainfo_amd64 new file mode 100755 index 0000000..37f805b --- /dev/null +++ b/_nodejs/.nvm/test/mocks/isainfo_amd64 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-n" ]; then + echo "amd64" +else + echo "amd64 i386" +fi diff --git a/_nodejs/.nvm/test/mocks/isainfo_x86 b/_nodejs/.nvm/test/mocks/isainfo_x86 new file mode 100755 index 0000000..4658d2a --- /dev/null +++ b/_nodejs/.nvm/test/mocks/isainfo_x86 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-n" ]; then + echo "i386" +else + echo "i386" +fi diff --git a/_nodejs/.nvm/test/mocks/pkg_info_amd64 b/_nodejs/.nvm/test/mocks/pkg_info_amd64 new file mode 100755 index 0000000..d25c527 --- /dev/null +++ b/_nodejs/.nvm/test/mocks/pkg_info_amd64 @@ -0,0 +1,4 @@ +# On SmartOS 64bits setups, pkg_info outputs _both_ i386 and x86_64 +# architectures as architectures supported by pkg_install. +echo "i386" +echo "x86_64" diff --git a/_nodejs/.nvm/test/mocks/pkg_info_fail b/_nodejs/.nvm/test/mocks/pkg_info_fail new file mode 100755 index 0000000..379a4c9 --- /dev/null +++ b/_nodejs/.nvm/test/mocks/pkg_info_fail @@ -0,0 +1 @@ +exit 1 diff --git a/_nodejs/.nvm/test/mocks/pkg_info_x86 b/_nodejs/.nvm/test/mocks/pkg_info_x86 new file mode 100755 index 0000000..a555469 --- /dev/null +++ b/_nodejs/.nvm/test/mocks/pkg_info_x86 @@ -0,0 +1 @@ +echo "i386" diff --git a/_nodejs/.nvm/test/mocks/uname_osx_amd64 b/_nodejs/.nvm/test/mocks/uname_osx_amd64 new file mode 100755 index 0000000..03805ee --- /dev/null +++ b/_nodejs/.nvm/test/mocks/uname_osx_amd64 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-m" ]; then + echo "x86_64" +else + echo "Darwin foo.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_X86_64 x86_64" +fi diff --git a/_nodejs/.nvm/test/mocks/uname_osx_x86 b/_nodejs/.nvm/test/mocks/uname_osx_x86 new file mode 100755 index 0000000..1a345a3 --- /dev/null +++ b/_nodejs/.nvm/test/mocks/uname_osx_x86 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-m" ]; then + echo "i386" +else + echo "Darwin foo.local 13.4.0 Darwin Kernel Version 13.4.0: Sun Aug 17 19:50:11 PDT 2014; root:xnu-2422.115.4~1/RELEASE_I386 i386" +fi diff --git a/_nodejs/.nvm/test/mocks/uname_smartos_amd64 b/_nodejs/.nvm/test/mocks/uname_smartos_amd64 new file mode 100755 index 0000000..452f3bc --- /dev/null +++ b/_nodejs/.nvm/test/mocks/uname_smartos_amd64 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-m" ]; then + echo "i86pc" +else + echo "SunOS dev 5.11 joyent_20150219T102159Z i86pc i386 i86pc Solaris" +fi diff --git a/_nodejs/.nvm/test/mocks/uname_smartos_x86 b/_nodejs/.nvm/test/mocks/uname_smartos_x86 new file mode 100755 index 0000000..452f3bc --- /dev/null +++ b/_nodejs/.nvm/test/mocks/uname_smartos_x86 @@ -0,0 +1,5 @@ +if [ "_$1" = "_-m" ]; then + echo "i86pc" +else + echo "SunOS dev 5.11 joyent_20150219T102159Z i86pc i386 i86pc Solaris" +fi diff --git "a/_nodejs/.nvm/test/slow/Running \"nvm current\" should display current nvm environment." "b/_nodejs/.nvm/test/slow/Running \"nvm current\" should display current nvm environment." new file mode 100755 index 0000000..01d765d --- /dev/null +++ "b/_nodejs/.nvm/test/slow/Running \"nvm current\" should display current nvm environment." @@ -0,0 +1,9 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +nvm install 0.10 + +[ "$(nvm current)" = "$(node -v)" ] || die "Failed to find current version: got \"$(nvm current)\", expected \"$(node -v)\"" diff --git a/_nodejs/.nvm/test/slow/node 0.6.21 should install 0.6.21-pre b/_nodejs/.nvm/test/slow/node 0.6.21 should install 0.6.21-pre new file mode 100755 index 0000000..f326add --- /dev/null +++ b/_nodejs/.nvm/test/slow/node 0.6.21 should install 0.6.21-pre @@ -0,0 +1,11 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../nvm.sh + +nvm install 0.6.21 || die 'v0.6.21 installation failed' +[ "_$(node -v)" = "_v0.6.21-pre" ] || die "v0.6.21-pre not installed with v0.6.21, got $(node -v)" +[ "_$(nvm current)" = "_v0.6.21" ] || die "v0.6.21-pre not reported as v0.6.21, got $(nvm current)" diff --git "a/_nodejs/.nvm/test/slow/nvm exec/Preamble works and respects \"silent\" flag" "b/_nodejs/.nvm/test/slow/nvm exec/Preamble works and respects \"silent\" flag" new file mode 100755 index 0000000..08d0410 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm exec/Preamble works and respects \"silent\" flag" @@ -0,0 +1,30 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm use 0.10 +NPM_VERSION_TEN="$(npm --version)" +NODE_VERSION_TEN="$(node --version)" + +nvm use 1.0.0 && [ "$(node --version)" = "v1.0.0" ] || die "\`nvm use\` failed!" +NPM_VERSION_ONE="$(npm --version)" + +OUTPUT="$(nvm exec 0.10 npm --version)" +EXPECTED_OUTPUT="Running node ${NODE_VERSION_TEN} (npm v${NPM_VERSION_TEN}) +${NPM_VERSION_TEN}" +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "\`nvm exec\` failed to report node preamble; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm exec --silent 0.10 npm --version | head -1)" +EXPECTED_OUTPUT="${NPM_VERSION_TEN}" +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "\`nvm exec --silent\` failed to node suppress preamble; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm exec 1 npm --version)" +EXPECTED_OUTPUT="Running io.js v1.0.0 (npm v${NPM_VERSION_ONE}) +${NPM_VERSION_ONE}" +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "\`nvm exec\` failed to report io.js preamble; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" + +OUTPUT="$(nvm exec --silent 1 npm --version | head -1)" +EXPECTED_OUTPUT="${NPM_VERSION_ONE}" +[ "$OUTPUT" = "$EXPECTED_OUTPUT" ] || die "\`nvm exec --silent\` failed to suppress io.js preamble; expected '$EXPECTED_OUTPUT', got '$OUTPUT'" diff --git "a/_nodejs/.nvm/test/slow/nvm exec/Running \"nvm exec --lts\" should work" "b/_nodejs/.nvm/test/slow/nvm exec/Running \"nvm exec --lts\" should work" new file mode 100755 index 0000000..1be7c61 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm exec/Running \"nvm exec --lts\" should work" @@ -0,0 +1,18 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm install --lts || die 'nvm install --lts failed' + +NPM_VERSION_LTS="$(npm --version)" +TEST_STRING="foo bar" + +nvm use 1.0.0 && [ "$(node --version)" = "v1.0.0" ] || die "\`nvm use\` failed!" + +[ "$(nvm exec --lts npm --version | tail -1)" = "$NPM_VERSION_LTS" ] || die "`nvm exec` failed to run with the correct version" + +[ "$(nvm exec --lts bash -c "printf '$TEST_STRING'" | tail -1)" = "$TEST_STRING" ] || die "\`nvm exec\` failed to run with a command including whitespace" diff --git "a/_nodejs/.nvm/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" "b/_nodejs/.nvm/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" new file mode 100755 index 0000000..88ff70a --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm exec/Running \"nvm exec 0.x\" should work" @@ -0,0 +1,15 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm use 0.10 +NPM_VERSION_TEN="$(npm --version)" +TEST_STRING="foo bar" + +nvm use 1.0.0 && [ "$(node --version)" = "v1.0.0" ] || die "\`nvm use\` failed!" + +[ "$(nvm exec 0.10 npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "\`nvm exec\` failed to run with the correct version" + +[ "$(nvm exec 0.10 bash -c "printf '$TEST_STRING'" | tail -1)" = "$TEST_STRING" ] || die "\`nvm exec\` failed to run with a command including whitespace" diff --git "a/_nodejs/.nvm/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" "b/_nodejs/.nvm/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" new file mode 100755 index 0000000..8d3dcae --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm exec/Running \"nvm exec\" should pick up .nvmrc version" @@ -0,0 +1,16 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm use 0.10.7 +NPM_VERSION_TEN="$(npm --version)" + +nvm use 1.0.0 && [ "$(node --version)" = "v1.0.0" ] || die "\`nvm use\` failed!" + +echo "0.10.7" > .nvmrc + +[ "$(nvm exec npm --version | tail -1)" = "$NPM_VERSION_TEN" ] || die "\`nvm exec\` failed to run with the .nvmrc version" + +[ "$(nvm exec npm --version | head -1)" = "Found '$PWD/.nvmrc' with version <0.10.7>" ] || die "\`nvm exec\` failed to print out the \"found in .nvmrc\" message" diff --git a/_nodejs/.nvm/test/slow/nvm exec/setup_dir b/_nodejs/.nvm/test/slow/nvm exec/setup_dir new file mode 100755 index 0000000..7921742 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm exec/setup_dir @@ -0,0 +1,10 @@ +#!/bin/sh + +\. ../../../nvm.sh +nvm install 0.10.7 +nvm install 1.0.0 +nvm install --lts + +if [ -f ".nvmrc" ]; then + mv .nvmrc .nvmrc.bak +fi diff --git a/_nodejs/.nvm/test/slow/nvm exec/teardown_dir b/_nodejs/.nvm/test/slow/nvm exec/teardown_dir new file mode 100755 index 0000000..b16b416 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm exec/teardown_dir @@ -0,0 +1,13 @@ +#!/bin/sh + +\. ../../../nvm.sh +nvm deactivate +nvm uninstall v0.10.7 +nvm uninstall v1.0.0 +nvm uninstall --lts + +rm .nvmrc + +if [ -f ".nvmrc.bak" ]; then + mv .nvmrc.bak .nvmrc +fi diff --git "a/_nodejs/.nvm/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" "b/_nodejs/.nvm/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" new file mode 100755 index 0000000..d5f8571 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm reinstall-packages/Running \"nvm copy-packages $(nvm ls current)\" should error out" @@ -0,0 +1,17 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm use 0.10.28 > /dev/null + +nvm install-latest-npm || die 'nvm install-latest-npm failed' + +EXPECTED_MSG="Can not reinstall packages from the current version of node." +ACTUAL_MSG="$(nvm reinstall-packages 0.10.28 2>&1 > /dev/null)" +[ "~$ACTUAL_MSG" = "~$EXPECTED_MSG" ] || die "'nvm use 0.10.28 && nvm reinstall-packages 0.10.28' did not fail with the right message: '$ACTUAL_MESSAGE'" + +EXPECTED_ERROR_CODE="2" +ACTUAL_ERROR_CODE="$(nvm reinstall-packages 0.10.28 > /dev/null 2>&1 ; echo $?)" +[ "~$ACTUAL_ERROR_CODE" = "~$EXPECTED_ERROR_CODE" ] || die "'nvm use 0.10.28 && nvm reinstall-packages 0.10.28' did not fail with the right error code: expected '$EXPECTED_ERROR_CODE', got '$ACTUAL_ERROR_CODE'" diff --git a/_nodejs/.nvm/test/slow/nvm reinstall-packages/setup_dir b/_nodejs/.nvm/test/slow/nvm reinstall-packages/setup_dir new file mode 100755 index 0000000..2dd0f3e --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm reinstall-packages/setup_dir @@ -0,0 +1,11 @@ +#!/bin/sh + +\. ../../../nvm.sh +nvm install 0.10.28 +nvm install 0.10.29 +nvm install 4.7.1 +nvm install 4.7.2 + +if [ -f ".nvmrc" ]; then + mv .nvmrc .nvmrc.bak +fi diff --git a/_nodejs/.nvm/test/slow/nvm reinstall-packages/should work as expected b/_nodejs/.nvm/test/slow/nvm reinstall-packages/should work as expected new file mode 100755 index 0000000..fdc3800 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm reinstall-packages/should work as expected @@ -0,0 +1,31 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm exec 0.10.28 npm install -g npm@~1.4.11 && nvm install-latest-npm # this is required because before 1.4.10, npm ls doesn't indicated linked packages +nvm exec 0.10.29 npm install -g npm@~1.4.11 && nvm install-latest-npm # this is required because before 1.4.10, npm ls doesn't indicated linked packages + +nvm use 0.10.28 +(cd test-npmlink && npm link) + +EXPECTED_PACKAGES="autoprefixer bower david grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo" +EXPECTED_PACKAGES_INSTALL="autoprefixer bower david@11 grunt-cli grunth-cli http-server jshint marked node-gyp npmlist recursive-blame spawn-sync test-npmlink uglify-js yo@1" + +echo "$EXPECTED_PACKAGES_INSTALL" | sed -e 's/test-npmlink //' | xargs npm install -g --quiet + +get_packages() { + npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs +} + +nvm use 0.10.29 +ORIGINAL_PACKAGES=$(get_packages) + +nvm reinstall-packages 0.10.28 +FINAL_PACKAGES=$(get_packages) + +[ "$FINAL_PACKAGES" = "$EXPECTED_PACKAGES" ] || die "final packages ($FINAL_PACKAGES) did not match expected packages ($EXPECTED_PACKAGES)" +[ "$ORIGINAL_PACKAGES" != "$FINAL_PACKAGES" ] || die "original packages matched final packages ($ORIGINAL_PACKAGES)" + +[ $(test-npmlink) = 'ok' ] || die "failed to run test-npmlink" diff --git a/_nodejs/.nvm/test/slow/nvm reinstall-packages/teardown_dir b/_nodejs/.nvm/test/slow/nvm reinstall-packages/teardown_dir new file mode 100755 index 0000000..95bd476 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm reinstall-packages/teardown_dir @@ -0,0 +1,13 @@ +#!/bin/sh + +\. ../../../nvm.sh +nvm uninstall v0.10.28 +nvm uninstall v0.10.29 +nvm uninstall v4.7.1 +nvm uninstall v4.7.2 + +rm -f .nvmrc + +if [ -f ".nvmrc.bak" ]; then + mv .nvmrc.bak .nvmrc +fi diff --git a/_nodejs/.nvm/test/slow/nvm reinstall-packages/test-npmlink/index.js b/_nodejs/.nvm/test/slow/nvm reinstall-packages/test-npmlink/index.js new file mode 100755 index 0000000..9558516 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm reinstall-packages/test-npmlink/index.js @@ -0,0 +1,2 @@ +#!/usr/bin/env node +console.log('ok') diff --git a/_nodejs/.nvm/test/slow/nvm reinstall-packages/test-npmlink/package.json b/_nodejs/.nvm/test/slow/nvm reinstall-packages/test-npmlink/package.json new file mode 100644 index 0000000..e596ea4 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm reinstall-packages/test-npmlink/package.json @@ -0,0 +1,10 @@ +{ + "name": "test-npmlink", + "version": "0.0.1", + "description": "Stub package for testing npm link", + "bin": { + "test-npmlink": "index.js" + }, + "author": "hax", + "license": "ISC" +} diff --git a/_nodejs/.nvm/test/slow/nvm reinstall-packages/works with no installs b/_nodejs/.nvm/test/slow/nvm reinstall-packages/works with no installs new file mode 100755 index 0000000..ade209a --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm reinstall-packages/works with no installs @@ -0,0 +1,18 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +get_packages() { + npm list -g --depth=0 | \sed -e '1 d' -e 's/^.* \(.*\)@.*/\1/' -e '/^npm$/ d' | xargs +} + +nvm use 4.7.2 +ORIGINAL_PACKAGES=$(get_packages) + +nvm reinstall-packages 4.7.1 +FINAL_PACKAGES=$(get_packages) + +[ -z "${ORIGINAL_PACKAGES}" ] || die "original packages were not empty: ${ORIGINAL_PACKAGES}" +[ -z "${FINAL_PACKAGES}" ] || die "final packages were not empty: ${FINAL_PACKAGES}" diff --git "a/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" "b/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" new file mode 100755 index 0000000..28912d1 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run --harmony --version\" should work" @@ -0,0 +1,8 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm run 0.10.7 --harmony --version +[ "_$(nvm run 0.10.7 --harmony --version 2>/dev/null | tail -1)" = "_v0.10.7" ] || die "\`nvm run --harmony --version\` failed to run with the correct version" diff --git "a/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run --lts\" should work" "b/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run --lts\" should work" new file mode 100755 index 0000000..ead0dbd --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run --lts\" should work" @@ -0,0 +1,15 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +OUTPUT="$(nvm run --silent --lts --version)" +EXPECTED_OUTPUT="$(nvm_match_version 'lts/*')" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm run --lts\` failed to run with the correct version; expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" + +OUTPUT="$(nvm run --silent --lts=argon --version)" +EXPECTED_OUTPUT="$(nvm_match_version 'lts/argon')" +[ "${OUTPUT}" = "${EXPECTED_OUTPUT}" ] || die "\`nvm run --lts=argon\` failed to run with the correct version; expected >${EXPECTED_OUTPUT}<, got >${OUTPUT}<" diff --git "a/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" "b/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" new file mode 100755 index 0000000..b9a2c2c --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run 0.x\" should error out sensibly when 0.x is not installed" @@ -0,0 +1,16 @@ +#!/bin/sh + + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +EXPECTED_OUTPUT='N/A: version "v0.2" is not yet installed. + +You need to run "nvm install 0.2" to install it before using it.' +[ "_$(nvm run 0.2 --version 2>&1)" = "_$EXPECTED_OUTPUT" ] || die "\`nvm run\` with an uninstalled node version failed to error out correctly" + +EXPECTED_OUTPUT='N/A: version "iojs-v0.2" is not yet installed. + +You need to run "nvm install iojs-0.2" to install it before using it.' +[ "_$(nvm run iojs-0.2 --version 2>&1)" = "_$EXPECTED_OUTPUT" ] || die "\`nvm run\` with an uninstalled iojs version failed to error out correctly" diff --git "a/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run 0.x\" should work" "b/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run 0.x\" should work" new file mode 100755 index 0000000..d537d4a --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run 0.x\" should work" @@ -0,0 +1,8 @@ +#!/bin/sh + + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +[ "$(nvm run 0.10.7 --version | tail -1)" = "v0.10.7" ] || die "\`nvm run\` failed to run with the correct version" diff --git "a/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" "b/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" new file mode 100755 index 0000000..3273ea0 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm run/Running \"nvm run\" should pick up .nvmrc version" @@ -0,0 +1,12 @@ +#!/bin/sh + + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +echo "0.10.7" > .nvmrc + +[ "$(nvm run --version | tail -1)" = "v0.10.7" ] || die "\`nvm run\` failed to run with the .nvmrc version" + +[ "$(nvm run --version | head -1)" = "Found '$PWD/.nvmrc' with version <0.10.7>" ] || die "\`nvm run\` failed to print out the \"found in .nvmrc\" message" diff --git a/_nodejs/.nvm/test/slow/nvm run/setup_dir b/_nodejs/.nvm/test/slow/nvm run/setup_dir new file mode 100755 index 0000000..0fde4d4 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm run/setup_dir @@ -0,0 +1,11 @@ +#!/bin/sh + +\. ../../../nvm.sh + +nvm install 0.10.7 +nvm install --lts=argon +nvm install --lts + +if [ -f ".nvmrc" ]; then + mv .nvmrc .nvmrc.bak +fi diff --git a/_nodejs/.nvm/test/slow/nvm run/teardown_dir b/_nodejs/.nvm/test/slow/nvm run/teardown_dir new file mode 100755 index 0000000..53e2838 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm run/teardown_dir @@ -0,0 +1,14 @@ +#!/bin/sh + +\. ../../../nvm.sh + +nvm deactivate +nvm uninstall v0.10.7 +nvm uninstall --lts=argon +nvm uninstall --lts + +rm .nvmrc + +if [ -f ".nvmrc.bak" ]; then + mv .nvmrc.bak .nvmrc +fi diff --git "a/_nodejs/.nvm/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" "b/_nodejs/.nvm/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" new file mode 100755 index 0000000..ec6a658 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm uninstall/Running \"nvm uninstall 0.12.6\" uninstalls v0.12.6" @@ -0,0 +1,33 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +# Source nvm +\. ../../../nvm.sh + +# Version to install/uninstall +NVM_TEST_VERSION=0.12.6 + +# Make sure it's not already here +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION + +# Install it +nvm install $NVM_TEST_VERSION + +# Make sure it installed +nvm ls | grep "$NVM_TEST_VERSION" || die "Failed to install node" + +# Switch to another version so we can uninstall +nvm use 0.12.7 + +# if zsh, set "nomatch" opt to reproduce failure from https://github.com/nvm-sh/nvm/issues/1228 +if nvm_has "setopt"; then + setopt nomatch +fi + +# Uninstall it +nvm uninstall $NVM_TEST_VERSION + +# Make sure it uninstalled +nvm ls | grep "$NVM_TEST_VERSION" +[ "$?" != "0" ] || die "Failed to uninstall node" diff --git "a/_nodejs/.nvm/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" "b/_nodejs/.nvm/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" new file mode 100755 index 0000000..0c19db8 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm uninstall/Running \"nvm uninstall\" with incorrect file permissions fails nicely" @@ -0,0 +1,30 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +# Source nvm +\. ../../../nvm.sh + +# Version to install/uninstall +NVM_TEST_VERSION=5.10.1 + +# Make sure it's not already here +[ -e ../../../$NVM_TEST_VERSION ] && rm -R ../../../$NVM_TEST_VERSION + +# Install it +nvm install $NVM_TEST_VERSION + +# Make sure it installed +nvm ls | grep "$NVM_TEST_VERSION" || die "Failed to install node" + +# Install global module as root +npm_path=$(which npm) +sudo -n "$npm_path" install jspm@'<2' -g || die 'either sudo failed, or `npm install jspm -g` failed`' + +# Switch to another version so we can uninstall +nvm use 0.12.7 + +# Attempt to uninstall it +RETURN_MESSAGE="$(nvm uninstall $NVM_TEST_VERSION 2>&1)" +CHECK_FOR="Cannot uninstall, incorrect permissions on installation folder" +test "${RETURN_MESSAGE#*$CHECK_FOR}" != "$RETURN_MESSAGE" || die "Failed to show error message" diff --git a/_nodejs/.nvm/test/slow/nvm uninstall/setup_dir b/_nodejs/.nvm/test/slow/nvm uninstall/setup_dir new file mode 100755 index 0000000..108dbe3 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm uninstall/setup_dir @@ -0,0 +1,4 @@ +#!/bin/sh + +\. ../../../nvm.sh +nvm install 0.12.7 diff --git a/_nodejs/.nvm/test/slow/nvm uninstall/teardown_dir b/_nodejs/.nvm/test/slow/nvm uninstall/teardown_dir new file mode 100755 index 0000000..2fad54c --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm uninstall/teardown_dir @@ -0,0 +1,5 @@ +#!/bin/sh + +\. ../../../nvm.sh +nvm uninstall 0.12.7 +nvm deactivate diff --git "a/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" new file mode 100755 index 0000000..f5b9ec0 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use --lts\" uses latest LTS version" @@ -0,0 +1,22 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm deactivate >/dev/null 2>&1 || die 'deactivate failed' + +nvm use --lts || die 'nvm use --lts failed' +OUTPUT="$(nvm current)" +EXPECTED_OUTPUT="$(nvm_resolve_alias 'lts/*')" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --lts' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +OUTPUT="$(nvm use --silent --lts)" +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent --lts' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git "a/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" new file mode 100755 index 0000000..0801673 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use --lts=foo\" uses latest \"foo\" LTS version" @@ -0,0 +1,22 @@ +#!/bin/sh + +set -ex + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' + +nvm use --lts=testing || die 'nvm use --lts=testing failed' +OUTPUT="$(nvm current)" +EXPECTED_OUTPUT="$(nvm_resolve_alias 'lts/testing')" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --lts=testing' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +OUTPUT="$(nvm use --silent --lts=testing)" +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent --lts=testing' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git "a/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" new file mode 100755 index 0000000..9b83d08 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use iojs\" uses latest io.js version" @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' + +nvm use iojs || die 'nvm use iojs failed' +OUTPUT="$(nvm current)" +EXPECTED_OUTPUT="iojs-v1.0.1" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use iojs' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +OUTPUT="$(nvm use --silent iojs)" +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent iojs' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git "a/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" new file mode 100755 index 0000000..c87f3b4 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use node\" uses latest stable node version" @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' + +nvm use node || die 'nvm use node failed' +OUTPUT="$(nvm current)" +EXPECTED_OUTPUT="$(nvm_version stable)" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use node' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +OUTPUT="$(nvm use --silent node)" +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent node' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git "a/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" new file mode 100755 index 0000000..d47a48a --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use v1.0.0\" uses iojs-v1.0.0 iojs version" @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm deactivate 2>&1 >/dev/null || die 'deactivate failed' + +nvm use 'v1.0.0' || die 'nvm use v1.0.0 failed' +OUTPUT="$(nvm current)" +EXPECTED_OUTPUT="$(nvm_version v1.0.0)" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use v1.0.0' + 'nvm current' did not output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +OUTPUT="$(nvm use --silent 'v1.0.0')" +EXPECTED_OUTPUT="" + +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent v1.0.0' output was not silenced '$EXPECTED_OUTPUT'; got '$OUTPUT'" diff --git "a/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" new file mode 100755 index 0000000..2fe0de7 --- /dev/null +++ "b/_nodejs/.nvm/test/slow/nvm use/Running \"nvm use\" calls \"nvm_die_on_prefix\"" @@ -0,0 +1,22 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../../../nvm.sh + +nvm deactivate >/dev/null 2>&1 || die 'deactivate failed' + +nvm_die_on_prefix() { + echo >&2 "| $1 | $2 |" + return 3 +} + +OUTPUT="$(nvm use --silent node)" +EXPECTED_OUTPUT="" +[ "_$OUTPUT" = "_$EXPECTED_OUTPUT" ] \ + || die "'nvm use --silent node' did not call through to 'nvm_die_on_prefix' and give output '$EXPECTED_OUTPUT'; got '$OUTPUT'" + +EXIT_CODE="$(nvm use --silent node >/dev/null 2>&1; echo $?)" +EXPECTED_CODE="11" +[ "_$EXIT_CODE" = "_$EXPECTED_CODE" ] \ + || die "'nvm use --silent node' when 'nvm_die_on_prefix' fails did not return '$EXPECTED_CODE'; got '$EXIT_CODE'" diff --git a/_nodejs/.nvm/test/slow/nvm use/setup_dir b/_nodejs/.nvm/test/slow/nvm use/setup_dir new file mode 100755 index 0000000..e917f0b --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm use/setup_dir @@ -0,0 +1,23 @@ +#!/bin/sh + +\. ../../../nvm.sh + +mkdir -p "${NVM_DIR}/.nvm_use_bak" +if [ -d "${NVM_DIR}/v*" ]; then + mv "${NVM_DIR}/v*" "${NVM_DIR}/.nvm_use_bak/" +fi +mkdir -p "${NVM_DIR}/.nvm_use_lts_alias_bak" +if [ -d "${NVM_DIR}/alias/lts" ]; then + mv "${NVM_DIR}/alias/lts/*" "${NVM_DIR}/.nvm_use_lts_alias_bak/" +fi + +for VERSION in "0.8.7" "0.9.1" "0.10.1" "0.11.1"; do + nvm install "v$VERSION" +done + +for VERSION in "1.0.0" "1.0.1"; do + nvm install "iojs-v$VERSION" +done + +nvm_make_alias lts/testing 0.10.1 +nvm_make_alias 'lts/*' lts/testing diff --git a/_nodejs/.nvm/test/slow/nvm use/teardown_dir b/_nodejs/.nvm/test/slow/nvm use/teardown_dir new file mode 100755 index 0000000..947be61 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm use/teardown_dir @@ -0,0 +1,22 @@ +#!/bin/sh + +\. ../../../nvm.sh + +for VERSION in "0.8.7" "0.9.1" "0.10.1" "0.11.1"; do + nvm uninstall "$VERSION" +done + +for VERSION in "1.0.0" "1.0.1"; do + nvm uninstall "iojs-v$VERSION" +done + +if [ -d "${NVM_DIR}/.nvm_use_bak/*" ]; then + mv "${NVM_DIR}/.nvm_use_bak/*" "${NVM_DIR}" + rmdir "${NVM_DIR}/.nvm_use_bak" +fi + +if [ -d "${NVM_DIR}/.nvm_use_lts_alias_bak" ]; then + rm -rf "${NVM_DIR}/alias/lts/*" + mv "${NVM_DIR}/.nvm_use_lts_alias_bak/*" "${NVM_DIR}/alias/lts/" + rmdir "${NVM_DIR}/.nvm_use_lts_alias_bak" +fi diff --git a/_nodejs/.nvm/test/slow/nvm_get_latest/nvm_get_latest b/_nodejs/.nvm/test/slow/nvm_get_latest/nvm_get_latest new file mode 100755 index 0000000..5311360 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm_get_latest/nvm_get_latest @@ -0,0 +1,101 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f curl wget nvm_has +} + +\. ../../../nvm.sh + +EXPECTED_VERSION="v12.3.456" +URL="https://github.com/nvm-sh/nvm/releases/tag/$EXPECTED_VERSION" +EXPECTED_CURL_ARGS="--compressed -q -w %{url_effective}\n -L -s -S http://latest.nvm.sh -o /dev/null" +EXPECTED_WGET_ARGS="-q http://latest.nvm.sh --server-response -O /dev/null" + +curl() { + if [ $# -eq 1 ] && [ "$1" = "-V" ]; then + echo " +curl 7.47.0 (x86_64-pc-linux-gnu) libcurl/7.47.0 GnuTLS/3.4.10 zlib/1.2.8 libidn/1.32 librtmp/2.3 +Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp +Features: AsynchDNS IDN IPv6 Largefile GSS-API Kerberos SPNEGO NTLM NTLM_WB SSL libz TLS-SRP UnixSockets" + elif [ "_$*" != "_$EXPECTED_CURL_ARGS" ]; then + echo >&2 "expected args ($EXPECTED_CURL_ARGS), got ($*)" + return 1 + else + echo $URL + fi +} +wget() { + if [ "_$*" != "_$EXPECTED_WGET_ARGS" ]; then + echo >&2 "expected args ($EXPECTED_WGET_ARGS), got ($*)" + return 1 + else + local WGET_CONTENTS + WGET_CONTENTS=" + HTTP/1.1 301 Moved Permanently + Location: https://github.com/nvm-sh/nvm/releases/latest + Content-Type: text/html; charset=utf-8 + Content-Length: 84 + Date: Mon, 22 Dec 2014 02:11:15 GMT + HTTP/1.1 302 Found + Server: GitHub.com + Date: Mon, 22 Dec 2014 02:11:15 GMT + Content-Type: text/html; charset=utf-8 + Transfer-Encoding: chunked + Status: 302 Found + X-XSS-Protection: 1; mode=block + X-Frame-Options: deny + Content-Security-Policy: default-src *; script-src assets-cdn.github.com collector-cdn.github.com; object-src assets-cdn.github.com; style-src 'self' 'unsafe-inline' 'unsafe-eval' assets-cdn.github.com; img-src 'self' data: assets-cdn.github.com identicons.github.com www.google-analytics.com collector.githubapp.com *.githubusercontent.com *.gravatar.com *.wp.com; media-src 'none'; frame-src 'self' render.githubusercontent.com gist.github.com www.youtube.com player.vimeo.com checkout.paypal.com; font-src assets-cdn.github.com; connect-src 'self' ghconduit.com:25035 live.github.com uploads.github.com www.google-analytics.com s3.amazonaws.com + Cache-Control: no-cache + Vary: X-PJAX + Location: $URL + X-UA-Compatible: IE=Edge,chrome=1 + Set-Cookie: logged_in=no; domain=.github.com; path=/; expires=Fri, 22-Dec-2034 02:11:15 GMT; secure; HttpOnly + Set-Cookie: _gh_sess=eyJzZXNzaW9uX2lkIjoiNTMzNGNjZWUxM2VhZjNhN2M3MzIwZWUxNGYwNzhmNDkiLCJzcHlfcmVwbyI6ImNyZWF0aW9uaXgvbnZtIiwic3B5X3JlcG9fYXQiOjE0MTkyMTQyNzV9--e2fa4cf5305d61aa58c0e0bf21fdb335a9660dcf; path=/; secure; HttpOnly + X-Request-Id: 4b99bf200157dd845f76ab83e4093acc + X-Runtime: 0.030872 + X-Rack-Cache: miss + X-GitHub-Request-Id: 45B56780:3913:880EF6:54977DC3 + Strict-Transport-Security: max-age=31536000; includeSubdomains; preload + X-Content-Type-Options: nosniff + Vary: Accept-Encoding + X-Served-By: ef97014f01ea59c1ef337fe51a4d0331 + HTTP/1.1 200 OK + Server: GitHub.com + Date: Mon, 22 Dec 2014 02:11:15 GMT + Content-Type: text/html; charset=utf-8 + Transfer-Encoding: chunked + Status: 200 OK + X-XSS-Protection: 1; mode=block + X-Frame-Options: deny + Content-Security-Policy: default-src *; script-src assets-cdn.github.com collector-cdn.github.com; object-src assets-cdn.github.com; style-src 'self' 'unsafe-inline' 'unsafe-eval' assets-cdn.github.com; img-src 'self' data: assets-cdn.github.com identicons.github.com www.google-analytics.com collector.githubapp.com *.githubusercontent.com *.gravatar.com *.wp.com; media-src 'none'; frame-src 'self' render.githubusercontent.com gist.github.com www.youtube.com player.vimeo.com checkout.paypal.com; font-src assets-cdn.github.com; connect-src 'self' ghconduit.com:25035 live.github.com uploads.github.com www.google-analytics.com s3.amazonaws.com + Cache-Control: no-cache, private + Vary: X-PJAX + X-UA-Compatible: IE=Edge,chrome=1 + Set-Cookie: _gh_sess=eyJzZXNzaW9uX2lkIjoiNTMzNGNjZWUxM2VhZjNhN2M3MzIwZWUxNGYwNzhmNDkiLCJzcHlfcmVwbyI6ImNyZWF0aW9uaXgvbnZtIiwic3B5X3JlcG9fYXQiOjE0MTkyMTQyNzUsIl9jc3JmX3Rva2VuIjoiemZTVDNIRGo0QzF0dzkyNXp6NFBRdGJVbTl4NSsxTGo1cngwVFQ3NDVwdz0ifQ%3D%3D--b72bfd5241907dcf557b226e74351ff39f0e9ede; path=/; secure; HttpOnly + X-Request-Id: 305b0d158bf8c0b3fa488a33d7687091 + X-Runtime: 0.038544 + X-Rack-Cache: miss + X-GitHub-Request-Id: 45B56780:3913:880F19:54977DC3 + Strict-Transport-Security: max-age=31536000; includeSubdomains; preload + X-Content-Type-Options: nosniff + Vary: Accept-Encoding + X-Served-By: 926b734ea1992f8ee1f88ab967a93dac +" + "$WGET_CONTENTS" | while read line + do + >&2 echo "$line" + done + fi +} + +OUTPUT="$(nvm_get_latest)" +EXIT_CODE="$(nvm_get_latest >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_$EXPECTED_VERSION" ] \ + || die "success path did not return version '$EXPECTED_VERSION', got '$OUTPUT'" +[ "_$EXIT_CODE" = "_0" ] \ + || die "success path did not exit with code 0, got $EXIT_CODE" + + +cleanup diff --git a/_nodejs/.nvm/test/slow/nvm_get_latest/nvm_get_latest failed redirect b/_nodejs/.nvm/test/slow/nvm_get_latest/nvm_get_latest failed redirect new file mode 100755 index 0000000..97534e9 --- /dev/null +++ b/_nodejs/.nvm/test/slow/nvm_get_latest/nvm_get_latest failed redirect @@ -0,0 +1,25 @@ +#!/bin/sh + +die () { echo "$@" ; cleanup ; exit 1; } + +cleanup() { + unset -f curl wget +} + +\. ../../../nvm.sh + +curl() { + return 1 +} +wget() { + return 1 +} + +OUTPUT="$(nvm_get_latest 2>&1)" +EXIT_CODE="$(nvm_get_latest >/dev/null 2>&1 ; echo $?)" +[ "_$OUTPUT" = "_http://latest.nvm.sh did not redirect to the latest release on GitHub" ] \ + || die "failed redirect did not report correct error message, got '$OUTPUT'" +[ "_$EXIT_CODE" = "_2" ] \ + || die "failed redirect did not exit with code 2, got $EXIT_CODE" + +cleanup diff --git a/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh should keep version if one is active b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh should keep version if one is active new file mode 100755 index 0000000..4254159 --- /dev/null +++ b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh should keep version if one is active @@ -0,0 +1,20 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +echo '0.10.1' > ../../alias/default || die "couldn't create default alias" + +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' + +NVM_TARGET=0.10.3 +NVM_DEFAULT="$(nvm_resolve_local_alias default)" + +[ "_$NVM_DEFAULT" != "_$NVM_TARGET" ] || die "default $NVM_DEFAULT is the same as target $NVM_TARGET" + +nvm use $NVM_TARGET || die "nvm use $NVM_TARGET failed" + +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' + +NVM_CURRENT="$(nvm current)" + +[ "_${NVM_CURRENT#v}" = "_$NVM_TARGET" ] || die "node version not retained after sourcing" diff --git a/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh should use the default if available and no nvm node is loaded b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh should use the default if available and no nvm node is loaded new file mode 100755 index 0000000..fe837f2 --- /dev/null +++ b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh should use the default if available and no nvm node is loaded @@ -0,0 +1,28 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +\. ../common.sh + +# We need to unload nvm again first, as by the time this test is run, +# despite being unloaded in setup, the inherited PATH still contains +# an nvm-installed node version. We have to reset NVM_DIR after the unload. +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' +NVM_DIR_CACHED="$NVM_DIR" +nvm unload || die 'unloading returned nonzero exit code' +NVM_DIR="$NVM_DIR_CACHED" + +echo '0.10.1' > ../../alias/default || die 'creation of default alias failed' + +# Now to begin the real test +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' + +NVM_LS_CURRENT_NOT_GREPPED="$(nvm ls current | strip_colors)" +NVM_LS_CURRENT="$(nvm ls current | strip_colors | \grep -o v0.10.1)" +[ "_$NVM_LS_CURRENT" = '_v0.10.1' ] || die "'nvm ls current' did not return '-> v0.10.1', got '$NVM_LS_CURRENT_NOT_GREPPED'" + +# NVM_LS_CURRENT_COLORED="$(nvm ls current | sed -n l)" + +NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)" +[ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.1 (-> v0.10.1)" ] \ + || die "'nvm alias default did not return 'default -> 0.10.1 (-> v0.10.1)', got '$NVM_ALIAS_DEFAULT'" diff --git a/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it new file mode 100755 index 0000000..35ed553 --- /dev/null +++ b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with --install and .nvmrc should install it @@ -0,0 +1,27 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } +supports_source_options () { + [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] +} + +if ! supports_source_options; then + echo 'this shell does not support passing options on sourcing' + exit 0; +fi + +echo '0.10.2' > ../../.nvmrc || die 'creation of .nvmrc failed' + +\. ../../nvm.sh --install +EXIT_CODE="$(echo $?)" + +echo 'sourcing complete.' + +nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: $(nvm ls)" + +[ "_$(nvm_rc_version | \grep -o -e 'with version .*$')" = "_with version <0.10.2>" ] || die "nvm_rc_version $(nvm_rc_version)" + +[ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE" + +NVM_LS_CURRENT="$(nvm ls current | \grep -o v0.10.2)" +[ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got '$NVM_LS_CURRENT' `nvm ls`" diff --git a/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with --install should install the default b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with --install should install the default new file mode 100755 index 0000000..8791455 --- /dev/null +++ b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with --install should install the default @@ -0,0 +1,32 @@ +#!/bin/sh +\. ../common.sh + +die () { echo "$@" ; exit 1; } +supports_source_options () { + [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] +} + +if ! supports_source_options; then + echo 'this shell does not support passing options on sourcing' + exit 0; +fi + +echo '0.10.2' > ../../alias/default || die 'creation of default alias failed' + +echo 'sourcing nvm with --install...' + +\. ../../nvm.sh --install +EXIT_CODE="$(echo $?)" + +echo 'sourcing complete.' + +nvm_version 0.10.2 >/dev/null 2>&1 || die "v0.10.2 not installed: $(nvm ls)" + +[ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE" + +NVM_LS_CURRENT="$(nvm ls current | strip_colors | command grep -o v0.10.2)" +[ "_$NVM_LS_CURRENT" = '_v0.10.2' ] || die "'nvm ls current' did not return '-> v0.10.2', got '$NVM_LS_CURRENT'" + +NVM_ALIAS_DEFAULT="$(nvm alias default | strip_colors)" +[ "_$NVM_ALIAS_DEFAULT" = "_default -> 0.10.2 (-> v0.10.2)" ] \ + || die "'nvm alias default did not return 'default -> 0.10.2 (-> v0.10.2)', got '$NVM_ALIAS_DEFAULT'" diff --git a/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with --no-use should not use anything b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with --no-use should not use anything new file mode 100755 index 0000000..5b98d4b --- /dev/null +++ b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with --no-use should not use anything @@ -0,0 +1,31 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } +supports_source_options () { + [ "_$(echo 'echo $1' | . /dev/stdin yes)" = "_yes" ] +} + +if ! supports_source_options; then + echo 'this shell does not support passing options on sourcing' + exit 0; +fi + +\. ../../nvm.sh +nvm install 4.1.0 || die 'install of v4.1.0 failed' +nvm_version 4.1.0 >/dev/null 2>&1 || die "v4.1.0 not installed: $(nvm ls)" +nvm deactivate || die 'nvm deactivate failed' + +NVM_CURRENT="$(nvm current)" +[ "_$NVM_CURRENT" = '_none' ] || [ "_$NVM_CURRENT" = '_system' ] || die "'nvm current' did not return 'none' or 'system', got '$NVM_CURRENT' `nvm ls`" + +nvm unload || die 'nvm unload failed' + +\. ../../nvm.sh --no-use +EXIT_CODE="$(echo $?)" + +echo 'sourcing complete.' + +[ "_$EXIT_CODE" = "_0" ] || die "sourcing returned nonzero exit code: $EXIT_CODE" + +NVM_CURRENT="$(nvm current)" +[ "_$NVM_CURRENT" = '_none' ] || [ "_$NVM_CURRENT" = '_system' ] || die "'nvm current' did not return 'none' or 'system', got '$NVM_CURRENT' `nvm ls`" diff --git a/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with no default should return 0 b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with no default should return 0 new file mode 100755 index 0000000..7fd4fc7 --- /dev/null +++ b/_nodejs/.nvm/test/sourcing/Sourcing nvm.sh with no default should return 0 @@ -0,0 +1,11 @@ +#!/bin/sh + +die () { echo "$@" ; exit 1; } + +touch ../../alias/default +rm ../../alias/default || die 'removal of default alias failed' +nvm_alias default && die '"nvm_alias default" did not fail' + +set -e # necessary to fail internally with a nonzero code + +\. ../../nvm.sh || die 'sourcing returned nonzero exit code' diff --git a/_nodejs/.nvm/test/sourcing/setup b/_nodejs/.nvm/test/sourcing/setup new file mode 100755 index 0000000..a7f6be8 --- /dev/null +++ b/_nodejs/.nvm/test/sourcing/setup @@ -0,0 +1,14 @@ +#!/bin/sh + +mkdir -p ../../alias +rm -rf ../../alias/default +rm -f ../../.nvmrc +rm -rf ../../v0.10.7 +rm -rf ../../v0.9.7 +rm -rf ../../v0.9.12 + +\. ../../nvm.sh +nvm install 0.10.1 || echo >&2 'nvm install 0.10.1 failed' +nvm install 0.10.3 || echo >&2 'nvm install 0.10.3 failed' +nvm unalias default || 'removing default alias failed' +nvm unload || echo >&2 'nvm unload failed' diff --git a/_nodejs/.nvm/test/sourcing/teardown b/_nodejs/.nvm/test/sourcing/teardown new file mode 100755 index 0000000..9bb52b0 --- /dev/null +++ b/_nodejs/.nvm/test/sourcing/teardown @@ -0,0 +1,7 @@ +#!/bin/sh + +rm -rf ../../alias +rm -rf ../../v0.10.1 +rm -rf ../../v0.10.2 +rm -rf ../../v0.10.3 +rm -f ../../.nvmrc diff --git a/_nodejs/.nvm/update_test_mocks.sh b/_nodejs/.nvm/update_test_mocks.sh new file mode 100755 index 0000000..30a3782 --- /dev/null +++ b/_nodejs/.nvm/update_test_mocks.sh @@ -0,0 +1,58 @@ +#!/usr/bin/env bash + +set -e + +echo 'Updating test mocks...' + +MOCKS_DIR="$PWD/test/fast/Unit tests/mocks" + +echo "creating $MOCKS_DIR" +mkdir -p "$MOCKS_DIR" + +\. "$NVM_DIR/nvm.sh" --no-use +nvm deactivate 2> /dev/null +nvm_is_version_installed() { + return 1 +} + +nvm_make_alias() { + # prevent local alias creation + return 0 +} + +nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote.txt" +nvm_ls_remote_iojs > "$MOCKS_DIR/nvm_ls_remote_iojs.txt" +NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS.txt" +NVM_LTS=argon nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS argon.txt" +nvm_download -L -s "https://nodejs.org/download/nightly/index.tab" -o - > "$MOCKS_DIR/nodejs.org-download-nightly-index.tab" +nvm_download -L -s "$(nvm_get_mirror iojs std)/index.tab" -o - > "$MOCKS_DIR/iojs.org-dist-index.tab" +nvm ls-remote > "$MOCKS_DIR/nvm ls-remote.txt" +nvm ls-remote --lts > "$MOCKS_DIR/nvm ls-remote lts.txt" +nvm ls-remote node > "$MOCKS_DIR/nvm ls-remote node.txt" +nvm ls-remote iojs > "$MOCKS_DIR/nvm ls-remote iojs.txt" +nvm_print_implicit_alias remote stable > "$MOCKS_DIR/nvm_print_implicit_alias remote stable.txt" +nvm_ls_remote stable > "$MOCKS_DIR/nvm_ls_remote stable.txt" + +set +e +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote nightly.txt" +nvm_download -L -s "$(nvm_get_mirror node std)/index.tab" -o - > "$MOCKS_DIR/nodejs.org-dist-index.tab" +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ nvm_print_implicit_alias remote stable > "$MOCKS_DIR/nvm_print_implicit_alias remote stable nightly.txt" +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ nvm_ls_remote stable > "$MOCKS_DIR/nvm_ls_remote stable nightly.txt" +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ NVM_LTS=* nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS nightly.txt" +NVM_NODEJS_ORG_MIRROR=https://nodejs.org/download/nightly/ NVM_LTS=argon nvm_ls_remote > "$MOCKS_DIR/nvm_ls_remote LTS nightly argon.txt" +set -e + +ALIAS_PATH="$MOCKS_DIR/nvm_make_alias LTS alias calls.txt" +: > "$ALIAS_PATH" +LTS_NAMES_PATH="$MOCKS_DIR/LTS_names.txt" +: > "$LTS_NAMES_PATH" +nvm_make_alias() { + # prevent local alias creation, and store arguments + echo "${1}|${2}" >> "$ALIAS_PATH" + if [ "${1}" != 'lts/*' ]; then + echo "${1#lts/}" >> "$LTS_NAMES_PATH" + fi +} +nvm ls-remote --lts > /dev/null + +echo "done! Don't forget to git commit them." diff --git a/_nodejs/.yarnrc b/_nodejs/.yarnrc new file mode 100644 index 0000000..4132c7d --- /dev/null +++ b/_nodejs/.yarnrc @@ -0,0 +1,5 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +lastUpdateCheck 1587715289230 diff --git a/requirements.txt b/_py/piplist similarity index 98% rename from requirements.txt rename to _py/piplist index 92a2d2a..1a91111 100644 --- a/requirements.txt +++ b/_py/piplist @@ -53,7 +53,6 @@ pyobjc-framework-SystemConfiguration 2.5.1 pyobjc-framework-WebKit 2.5.1 pyOpenSSL 19.0.0 pyparsing 2.0.1 -pyperclip 1.7.0 python-dateutil 1.5 pytz 2013.7 scipy 0.13.0b1 diff --git a/tmux/.tmux.conf b/_tmux/.tmux.conf similarity index 100% rename from tmux/.tmux.conf rename to _tmux/.tmux.conf diff --git a/_tmux/.tmux/plugins/tmux-continuum/.gitattributes b/_tmux/.tmux/plugins/tmux-continuum/.gitattributes new file mode 100644 index 0000000..4cde323 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/.gitattributes @@ -0,0 +1,2 @@ +# Force text files to have unix eols, so Windows/Cygwin does not break them +*.* eol=lf diff --git a/_tmux/.tmux/plugins/tmux-continuum/CHANGELOG.md b/_tmux/.tmux/plugins/tmux-continuum/CHANGELOG.md new file mode 100644 index 0000000..2a56b2f --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/CHANGELOG.md @@ -0,0 +1,45 @@ +# Changelog + +### master +- bugfix: "auto restore" feature stopped working +- bugfix: prevent race condition when auto-saving with locks (@v9v) +- Multiple users on a system can now each run continuum on their own. + +### v3.1.0, 2015-03-14 +- properly quote scripts +- bugfix: "auto restore" feature does not work on tmux `1.9a` +- bugfix: do not count `tmux source-file .tmux.conf` as a tmux process (when + checking if other tmux server is running). Previously, this caused + interpolation command not to be inserted into `status-right` because `tmux + source-file` was falsely detected as another tmux server. +- add `#{continuum_status}` status line interpolation + +### v3.0.0, 2015-02-20 +- rename the plugin from `tmux-resurrect-auto` to `tmux-continuum` + +### v2.2.0, 2015-02-20 +- document tmux multi-server behavior in the readme +- do not auto-restore tmux environment if another tmux server is already running + (we don't want to duplicate stuff) +- bugfixes for 'tmux auto start' OS X Terminal.app and iTerm scripts +- prevent saving for the first 15 minutes only when plugin is sourced the first + time (not on subsequent sources or tmux.conf reloads) +- do not start auto-saving if there's another tmux server running (we don't want + for save files from various tmux environments to override each other) + +### v2.1.0, 2015-02-18 +- enable "tmux auto start" for OS X +- enable customizing "tmux auto start" for OS X +- fix errors when creating a launchd plist file for auto-start on OS X + +### v2.0.0, 2015-02-15 +- enable automatic environment restore when tmux is started + +### v1.0.0, 2015-02-12 +- first working version +- run the save script in the background +- do not start saving right after tmux is started +- add a check for tmux version to the initializer script +- when interval is set to '0' autosave is disabled +- bugfix: helper files not loaded +- update readme with the instructions how to disable auto saving diff --git a/_tmux/.tmux/plugins/tmux-continuum/CONTRIBUTING.md b/_tmux/.tmux/plugins/tmux-continuum/CONTRIBUTING.md new file mode 100644 index 0000000..21c18fd --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/CONTRIBUTING.md @@ -0,0 +1,15 @@ +### Contributing + +Code contributions are welcome! + +If you wanna contribute a bigger feature, please open a github issue so we can +discuss it together first. + +### Reporting a bug + +If you find a bug please report it in the issues. When reporting a bug please +attach: +- a file symlinked to `~/.tmux/resurrect/last`. +- your `.tmux.conf` +- if you're getting an error paste it to a [gist](https://gist.github.com/) and + link it in the issue diff --git a/_tmux/.tmux/plugins/tmux-continuum/LICENSE.md b/_tmux/.tmux/plugins/tmux-continuum/LICENSE.md new file mode 100644 index 0000000..e6e7350 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/LICENSE.md @@ -0,0 +1,19 @@ +Copyright (C) Bruno Sutic + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/_tmux/.tmux/plugins/tmux-continuum/README.md b/_tmux/.tmux/plugins/tmux-continuum/README.md new file mode 100644 index 0000000..bafc6aa --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/README.md @@ -0,0 +1,98 @@ +# tmux-continuum + +Features: + +- continuous saving of tmux environment +- automatic tmux start when computer/server is turned on +- automatic restore when tmux is started + +Together these features enable uninterrupted tmux usage. No matter the computer +or server restarts, if the machine is on, tmux will be there how you left it off +the last time it was used. + +Tested and working on Linux, OSX and Cygwin. + +#### Continuous saving + +Tmux environment will be saved at the interval of 15 minutes. All the saving +happens in the background without the impact to your workflow. + +This action starts automatically when the plugin is installed. + +#### Automatic tmux start + +Tmux is automatically started after the computer/server is turned on. + +See the [instructions](docs/automatic_start.md) how to enable this for your +system. + +#### Automatic restore + +Last saved environment is automatically restored when tmux is started. + +Put `set -g @continuum-restore 'on'` in `.tmux.conf` to enable this. + +Note: automatic restore happens **exclusively** on tmux server start. No other +action (e.g. sourcing `.tmux.conf`) triggers this. + +#### Dependencies + +`tmux 1.9` or higher, `bash`, +[tmux-resurrect](https://github.com/tmux-plugins/tmux-resurrect) plugin. + +### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended) + +Please make sure you have +[tmux-resurrect](https://github.com/tmux-plugins/tmux-resurrect) installed. + +Add plugin to the list of TPM plugins in `.tmux.conf`: + + set -g @plugin 'tmux-plugins/tmux-resurrect' + set -g @plugin 'tmux-plugins/tmux-continuum' + +Hit `prefix + I` to fetch the plugin and source it. The plugin will +automatically start "working" in the background, no action required. + +### Manual Installation + +Please make sure you have +[tmux-resurrect](https://github.com/tmux-plugins/tmux-resurrect) installed. + +Clone the repo: + + $ git clone https://github.com/tmux-plugins/tmux-continuum ~/clone/path + +Add this line to the bottom of `.tmux.conf`: + + run-shell ~/clone/path/continuum.tmux + +Reload TMUX environment with: `$ tmux source-file ~/.tmux.conf` + +The plugin will automatically start "working" in the background, no action +required. + +### Docs + +- [frequently asked questions](docs/faq.md) +- [behavior when running multiple tmux servers](docs/multiple_tmux_servers.md) - + this doc is safe to skip, but you might want to read it if you're using tmux + with `-L` or `-S` flags +- [automatically start tmux after the computer is turned on](docs/automatic_start.md) +- [continuum status in tmux status line](docs/continuum_status.md) + +### Other goodies + +- [tmux-copycat](https://github.com/tmux-plugins/tmux-copycat) - a plugin for + regex searches in tmux and fast match selection +- [tmux-yank](https://github.com/tmux-plugins/tmux-yank) - enables copying + highlighted text to system clipboard +- [tmux-open](https://github.com/tmux-plugins/tmux-open) - a plugin for quickly + opening highlighted file or a url + +### Reporting bugs and contributing + +Both contributing and bug reports are welcome. Please check out +[contributing guidelines](CONTRIBUTING.md). + +### License +[MIT](LICENSE.md) diff --git a/_tmux/.tmux/plugins/tmux-continuum/continuum.tmux b/_tmux/.tmux/plugins/tmux-continuum/continuum.tmux new file mode 100755 index 0000000..00ad3e9 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/continuum.tmux @@ -0,0 +1,87 @@ +#!/usr/bin/env bash + +set -x + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +source "$CURRENT_DIR/scripts/helpers.sh" +source "$CURRENT_DIR/scripts/variables.sh" +source "$CURRENT_DIR/scripts/shared.sh" + +save_command_interpolation="#($CURRENT_DIR/scripts/continuum_save.sh)" + +supported_tmux_version_ok() { + "$CURRENT_DIR/scripts/check_tmux_version.sh" "$SUPPORTED_VERSION" +} + +handle_tmux_automatic_start() { + "$CURRENT_DIR/scripts/handle_tmux_automatic_start.sh" +} + +another_tmux_server_running() { + if just_started_tmux_server; then + another_tmux_server_running_on_startup + else + # script loaded after tmux server start can have multiple clients attached + [ "$(number_tmux_processes_except_current_server)" -gt "$(number_current_server_client_processes)" ] + fi +} + +delay_saving_environment_on_first_plugin_load() { + if [ -z "$(get_tmux_option "$last_auto_save_option" "")" ]; then + # last save option not set, this is first time plugin load + set_last_save_timestamp + fi +} + +add_resurrect_save_interpolation() { + local status_right_value="$(get_tmux_option "status-right" "")" + # check interpolation not already added + if ! [[ "$status_right_value" == *"$save_command_interpolation"* ]]; then + local new_value="${save_command_interpolation}${status_right_value}" + set_tmux_option "status-right" "$new_value" + fi +} + +just_started_tmux_server() { + local tmux_start_time + tmux_start_time="$(tmux display-message -p -F '#{start_time}')" + [ "$tmux_start_time" == "" ] || [ "$tmux_start_time" -gt "$(($(date +%s)-10))" ] +} + +start_auto_restore_in_background() { + "$CURRENT_DIR/scripts/continuum_restore.sh" & +} + +update_tmux_option() { + local option="$1" + local option_value="$(get_tmux_option "$option")" + # replace interpolation string with a script to execute + local new_option_value="${option_value/$status_interpolation_string/$status_script}" + set_tmux_option "$option" "$new_option_value" +} + +main() { + if supported_tmux_version_ok; then + handle_tmux_automatic_start + + # Advanced edge case handling: start auto-saving only if this is the + # only tmux server. We don't want saved files from more environments to + # overwrite each other. + if ! another_tmux_server_running; then + # give user a chance to restore previously saved session + delay_saving_environment_on_first_plugin_load + add_resurrect_save_interpolation + fi + + if just_started_tmux_server; then + start_auto_restore_in_background + fi + + # Put "#{continuum_status}" interpolation in status-right or + # status-left tmux option to get current tmux continuum status. + update_tmux_option "status-right" + update_tmux_option "status-left" + fi +} +main diff --git a/_tmux/.tmux/plugins/tmux-continuum/docs/automatic_start.md b/_tmux/.tmux/plugins/tmux-continuum/docs/automatic_start.md new file mode 100644 index 0000000..be80e95 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/docs/automatic_start.md @@ -0,0 +1,35 @@ +# Automatic Tmux start + +Tmux is automatically started after the computer/server is turned on. + +### OS X + +To enable this feature: +- put `set -g @continuum-boot 'on'` in `tmux.conf` +- reload tmux config with this shell command: `$ tmux source-file ~/.tmux.conf` + +Next time the computer is started: +- `Terminal.app` window will open and resize to maximum size +- `tmux` command will be executed in the terminal window +- if "auto restore" feature is enabled, tmux will start restoring previous env + +Config options: +- `set -g @continuum-boot-options 'fullscreen'` - terminal window + will go fullscreen +- `set -g @continuum-boot-options 'iterm'` - start `iTerm` instead + of `Terminal.app` +- `set -g @continuum-boot-options 'iterm,fullscreen'` - start `iTerm` + in fullscreen + +### Linux + +Help with this would be greatly appreciated. Please get in touch. + +#### Systemd + +##### this will only start the tmux server, it will *not* start any terminal emulator + +To enable automatic start with systemd: +- Put `set -g @continuum-boot 'on'` in tmux.conf +- reload tmux config with this shell command: `$ tmux source-file ~/.tmux.conf` +- see [systemd](./systemd_details.md) for more details about how this is implemented diff --git a/_tmux/.tmux/plugins/tmux-continuum/docs/continuum_status.md b/_tmux/.tmux/plugins/tmux-continuum/docs/continuum_status.md new file mode 100644 index 0000000..c154ae4 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/docs/continuum_status.md @@ -0,0 +1,17 @@ +## Continuum status in tmux status line + +There is an option to display current status of tmux continuum in tmux status +line. This is done via `#{continuum_status}` interpolation and it works with +both `status-right` and `status-left` tmux native options. + +Example usage: + + set -g status-right 'Continuum status: #{continuum_status}' + +When running, `#{continuum_status}` will show continuum save interval: + + Continuum status: 15 + +or if continuous saving is disabled: + + Continuum status: off diff --git a/_tmux/.tmux/plugins/tmux-continuum/docs/faq.md b/_tmux/.tmux/plugins/tmux-continuum/docs/faq.md new file mode 100644 index 0000000..91a6b9e --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/docs/faq.md @@ -0,0 +1,57 @@ +### FAQ + +> Will a previous save be overwritten immediately after I start tmux? + +No, first automatic save starts 15 minutes after tmux is started. If automatic +restore is not enabled, that gives you enough time to manually restore from a +previous save. + +> I want to make a restore to a previous point in time, but it seems that save +is now overwritten? + +None of the previous saves are deleted (unless you explicitly do that). All save +files are kept in `~/.tmux/resurrect/` directory.
+Here are the steps to restore to a previous point in time: + +- make sure you start this with a "fresh" tmux instance +- `$ cd ~/.tmux/resurrect/` +- locate the save file you'd like to use for restore (file names have a timestamp) +- symlink the `last` file to the desired save file: `$ ln -sf last` +- do a restore with `tmux-resurrect` key: `prefix + Ctrl-r` + +You should now be restored to the time when `` save happened. + +> Will this plugin fill my hard disk? + +Most likely no. A regular save file is in the range of 5Kb. That said, it +would be good to clean out old save files from `~/.tmux/resurrect/` dir from +time to time. + +> How do I change the save interval to i.e. 1 hour? + +The interval is always measured in minutes. So setting the interval to `60` +(minutes) will do the trick. Put this in `.tmux.conf`: + + set -g @continuum-save-interval '60' + +and then source `tmux.conf` by executing this command in the shell +`$ tmux source-file ~/.tmux.conf`. + +> How do I stop automatic saving? + +Just set the save interval to `0`. Put this in `.tmux.conf` + + set -g @continuum-save-interval '0' + +and then source `tmux.conf` by executing this command in the shell +`$ tmux source-file ~/.tmux.conf`. + +> I had automatic restore turned on, how do I disable it now? + +Just remove `set -g @continuum-restore 'on'` from `tmux.conf`. + +To be absolutely sure automatic restore doesn't happen, create a +`tmux_no_auto_restore` file in your home directory (command: +`$ touch ~/tmux_no_auto_restore`). Automatic restore won't happen if this file +exists. + diff --git a/_tmux/.tmux/plugins/tmux-continuum/docs/multiple_tmux_servers.md b/_tmux/.tmux/plugins/tmux-continuum/docs/multiple_tmux_servers.md new file mode 100644 index 0000000..98c2506 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/docs/multiple_tmux_servers.md @@ -0,0 +1,20 @@ +### Behavior when running multiple tmux servers + +(This is safe to skip if you're always running a single tmux server.) + +If you're an advanced tmux user, you might be running multiple tmux servers at +the same time. Maybe you start the first tmux server with `$ tmux` and then +later another one with e.g. `$ tmux -S/tmp/foo`. + +You probably don't want to "auto restore" the same environment in the second +tmux that uses `/tmp/foo` socket. You also probably don't want two tmux +environments both having "auto save" feature on (think about overwrites). + +This plugin handles multi-server scenario by giving precedence to the tmux +server that was first started. + +In the above example, the server started with `$ tmux` will do "auto +restore" (if enabled) and will start "auto saving". +"Auto restore" or "auto saving" **will not** happen for the second server that +was started later with the `$ tmux -S/tmp/foo` command. The plugin will +detect the presence of another server (`$ tmux`) and give it precedence. diff --git a/_tmux/.tmux/plugins/tmux-continuum/docs/systemd_details.md b/_tmux/.tmux/plugins/tmux-continuum/docs/systemd_details.md new file mode 100644 index 0000000..7b9ed45 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-continuum/docs/systemd_details.md @@ -0,0 +1,13 @@ +# Systemd automatic start for tmux + +The first time tmux starts when `@continuum-boot` is set to 'on' tmux-continuum will generate a user level systemd unit file which it will save to `${HOME}/.config/systemd/user/tmux.service` and enable it. From then on when that user logs in, either through a GUI session or on the console or via ssh, Systemd will start the tmux server. + +The command used to start the tmux server is determined via the `@continuum-systemd-start-cmd` option that can be set in .tmux.conf. (Remember to reload your configuration with `tmux source ~/.tmux.conf` afterwards. + +The default command to use is `new-session -d`. If you want more control over what sessions get started then you should set up your sessions in tmux.conf and set `@continuum-systemd-start-cmd = 'start-server'`. As this will be executed as part of systemd's ExecStart statement there will be no shell parsing. See [Systemd manual](http://www.freedesktop.org/software/systemd/man/systemd.service.html#Command%20lines) for more details. + +To control the tmux service you can use all the standard `systemctl` commands using the `--user` argument. eg to see if the tmux server has started: + + systemctl --user status tmux.service + + diff --git a/_tmux/.tmux/plugins/tmux-logging/.gitattributes b/_tmux/.tmux/plugins/tmux-logging/.gitattributes new file mode 100644 index 0000000..3772b5e --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-logging/.gitattributes @@ -0,0 +1,5 @@ +# Force text files to have unix eols, so Windows/Cygwin does not break them +*.* eol=lf + +# Except for images because then on checkout the files have been altered. +*.png binary diff --git a/_tmux/.tmux/plugins/tmux-logging/CHANGELOG.md b/_tmux/.tmux/plugins/tmux-logging/CHANGELOG.md new file mode 100644 index 0000000..ebbefaa --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-logging/CHANGELOG.md @@ -0,0 +1,29 @@ +# Changelog + +### master + +### v2.1.0, 2015-03-18 +- `capture-pane` gets a `-J` flag. It joins wrapped lines and preserves trailing + spaces at each line's end. +- when capturing whole history, do not guess its size, but get it from + `#{history_limit}` format flag + +### v2.0.0, 2015-03-14 +- update readme +- extract default keys and key options to `variables.sh` file +- require tmux version 1.9 or greater to use the plugin +- change all internal variable names (BREAKING CHANGE!) +- change internal script names +- lot of internal refactoring + +### v1.0.0, 2014-11-09 +- improve `capture-pane`. It is now piped directly to the target file. + +### v0.0.2, 2014-08-26 +- add other plugins list to the README +- update readme to reflect github organization change +- add a 'clear pane history' key binding + +### v0.0.1, 2014-06-02 + +- first working release diff --git a/_tmux/.tmux/plugins/tmux-logging/LICENSE.md b/_tmux/.tmux/plugins/tmux-logging/LICENSE.md new file mode 100644 index 0000000..40f6ddd --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-logging/LICENSE.md @@ -0,0 +1,19 @@ +Copyright (C) 2014 Bruno Sutic + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/_tmux/.tmux/plugins/tmux-logging/README.md b/_tmux/.tmux/plugins/tmux-logging/README.md new file mode 100644 index 0000000..a0b8f40 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-logging/README.md @@ -0,0 +1,124 @@ +# Tmux Logging + +Features: + +1. Logging of all output in the current pane
+ After you start logging, everything that's typed and all the output will be + saved to a file. Convenient for keeping track of your work. +2. Current pane "Screen Capture"
+ All the text visible in the current pane is saved to a file. Like a + screenshot, but textual. +3. Save a complete history of current pane
+ Everything that has been typed and all the output since the creation of the + current pane can be saved to a file. +4. Clear pane history with `prefix + alt + c` + +Tested and working on Linux, OSX and Cygwin. + +### 1. Logging + +Toggle (start/stop) logging in the current pane. + +* Key binding: `prefix + shift + p` +* File name format: `tmux-#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S.log` +* File path: `$HOME` (user home dir) + * Example file: `~/tmux-my-session-0-1-20140527T165614.log` + +### 2. "Screen Capture" + +Save visible text, in the current pane. Equivalent of a "textual screenshot". + +* Key binding: `prefix + alt + p` +* File name format: `tmux-screen-capture-#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S.log` +* File path: `$HOME` (user home dir) + * Example file: `tmux-screen-capture-my-session-0-1-20140527T165614.log` + +### 3. Save complete history + +Save complete pane history to a file. Convenient if you retroactively remember +you need to log/save all the work. + +* Key binding: `prefix + alt + shift + p` +* File name format: `tmux-history-#{session_name}-#{window_index}-#{pane_index}-%Y%m%dT%H%M%S.log` +* File path: `$HOME` (user home dir) + * Example file: `tmux-history-my-session-0-1-20140527T165614.log` + +**NOTE**: this functionality depends on the value of `history-limit` - the number +of lines Tmux keeps in the scrollback buffer. Only what Tmux kept will also be saved, +to a file. + +Use `set -g history-limit 50000` in .tmux.conf, with modern computers +it is ok to set this option to a high number. + +### 4. Clear pane history + +Key binding: `prefix + alt + c` + +This is just a convenience key binding. + +### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended) + +Add plugin to the list of TPM plugins in `.tmux.conf`: + + set -g @plugin 'tmux-plugins/tmux-logging' + +Hit `prefix + I` to fetch the plugin and source it. + +You should now have all `tmux-logging` key bindings defined. + +### Manual Installation + +Clone the repo: + + $ git clone https://github.com/tmux-plugins/tmux-logging ~/clone/path + +Add this line to the bottom of `.tmux.conf`: + + run-shell ~/clone/path/logging.tmux + +Reload TMUX environment: + + # type this in terminal + $ tmux source-file ~/.tmux.conf + +You should now have all `tmux-logging` key bindings defined. + +### Installing `ansifilter` (recommended for OSX users) + +If you're on OSX, it is recommeneded to install `ansifilter`: +`$ brew install ansifilter` + +[ansifilter](http://www.andre-simon.de/doku/ansifilter/en/ansifilter.php) +is a program specialized for removing (or working with) ANSI codes. + +It helps with removing ANSI codes from the log. If `ansifilter` is not present, +ANSI codes are removed with `sed`. + +This feature improves the default `pipe-pane` logging mechanism by stripping +ANSI codes. This is how the plain `pipe-pane` log output looks like if you're +using terminal with coloring: + +![garbled log output](/screenshots/garbled_log_output.png) + +Garbled characters are called ANSI codes. They enable colors in terminal, but +are just making 'noise' in the textual log output. + +A user will probably want to filter ANSI codes out of the log. Here's the same +log as above when this plugin is used: + +![proper log output](/screenshots/proper_log_output.png) + +### Other plugins + +You might also find these useful: + +- [resurrect](https://github.com/tmux-plugins/tmux-resurrect) - restore tmux + environment after system restart +- [pain control](https://github.com/tmux-plugins/tmux-pain-control) - useful standard + bindings for controlling panes +- [sessionist](https://github.com/tmux-plugins/tmux-sessionist) - lightweight + tmux utils for switching and creating sessions + +### License + +[MIT](LICENSE.md) diff --git a/_tmux/.tmux/plugins/tmux-logging/logging.tmux b/_tmux/.tmux/plugins/tmux-logging/logging.tmux new file mode 100755 index 0000000..c65856e --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-logging/logging.tmux @@ -0,0 +1,16 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +source "$CURRENT_DIR/scripts/variables.sh" +source "$CURRENT_DIR/scripts/shared.sh" + + +main() { + tmux bind-key "$logging_key" run-shell "$CURRENT_DIR/scripts/toggle_logging.sh" + tmux bind-key "$pane_screen_capture_key" run-shell "$CURRENT_DIR/scripts/screen_capture.sh" + tmux bind-key "$save_complete_history_key" run-shell "$CURRENT_DIR/scripts/save_complete_history.sh" + tmux bind-key "$clear_history_key" run-shell "$CURRENT_DIR/scripts/clear_history.sh" +} + +main diff --git a/_tmux/.tmux/plugins/tmux-logging/screenshots/garbled_log_output.png b/_tmux/.tmux/plugins/tmux-logging/screenshots/garbled_log_output.png new file mode 100644 index 0000000..190d858 Binary files /dev/null and b/_tmux/.tmux/plugins/tmux-logging/screenshots/garbled_log_output.png differ diff --git a/_tmux/.tmux/plugins/tmux-logging/screenshots/proper_log_output.png b/_tmux/.tmux/plugins/tmux-logging/screenshots/proper_log_output.png new file mode 100644 index 0000000..ab7a89e Binary files /dev/null and b/_tmux/.tmux/plugins/tmux-logging/screenshots/proper_log_output.png differ diff --git a/_tmux/.tmux/plugins/tmux-resurrect/.gitattributes b/_tmux/.tmux/plugins/tmux-resurrect/.gitattributes new file mode 100644 index 0000000..3772b5e --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/.gitattributes @@ -0,0 +1,5 @@ +# Force text files to have unix eols, so Windows/Cygwin does not break them +*.* eol=lf + +# Except for images because then on checkout the files have been altered. +*.png binary diff --git a/_tmux/.tmux/plugins/tmux-resurrect/.gitignore b/_tmux/.tmux/plugins/tmux-resurrect/.gitignore new file mode 100644 index 0000000..72523e8 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/.gitignore @@ -0,0 +1,3 @@ +run_tests +tests/run_tests_in_isolation +tests/helpers/helpers.sh diff --git a/_tmux/.tmux/plugins/tmux-resurrect/.gitmodules b/_tmux/.tmux/plugins/tmux-resurrect/.gitmodules new file mode 100644 index 0000000..5e44e3c --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/tmux-test"] + path = lib/tmux-test + url = https://github.com/tmux-plugins/tmux-test.git diff --git a/_tmux/.tmux/plugins/tmux-resurrect/.travis.yml b/_tmux/.tmux/plugins/tmux-resurrect/.travis.yml new file mode 100644 index 0000000..fea6850 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/.travis.yml @@ -0,0 +1,19 @@ +# generic packages and tmux +before_install: + - sudo apt-get update + - sudo apt-get install -y git-core expect + - sudo apt-get install -y python-software-properties software-properties-common + - sudo apt-get install -y libevent-dev libncurses-dev + - git clone https://github.com/tmux/tmux.git + - cd tmux + - git checkout 2.5 + - sh autogen.sh + - ./configure && make && sudo make install + +install: + - git fetch --unshallow --recurse-submodules || git fetch --recurse-submodules + # manual `git clone` required for testing `tmux-test` plugin itself + - git clone https://github.com/tmux-plugins/tmux-test lib/tmux-test; true + - lib/tmux-test/setup + +script: ./tests/run_tests_in_isolation diff --git a/_tmux/.tmux/plugins/tmux-resurrect/CHANGELOG.md b/_tmux/.tmux/plugins/tmux-resurrect/CHANGELOG.md new file mode 100644 index 0000000..f604101 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/CHANGELOG.md @@ -0,0 +1,149 @@ +# Changelog + +### master +- save and restore tmux pane contents (@laomaiweng) +- update tmux-test to solve issue with recursing git submodules in that project +- set options quietly in `resurrect.tmux` script +- improve pane contents restoration: `cat ` is no longer shown in pane + content history +- refactoring: drop dependency on `paste` command +- bugfix for pane contents restoration +- expand tilde char `~` if used with `@resurrect-dir` +- do not save empty trailing lines when pane content is saved +- do not save pane contents if pane is empty (only for 'save pane contents' + feature) +- "save pane contents" feature saves files to a separate directory +- archive and compress pane contents file +- make archive & compress pane contents process more portable +- `mutt` added to the list of automatically restored programs +- added guide for migrating from tmuxinator +- fixed a bug for restoring commands on tmux 2.5 (and probably tmux 2.4) +- do not create another resurrect file if there are no changes (credit @vburdo) +- allow using '$HOSTNAME' in @resurrect-dir +- add zsh history saving and restoring +- delete resurrect files older than 30 days, but keep at least 5 files +- add save and restore hooks +- always use `-ao` flags for `ps` command to detect commands +- Deprecate restoring shell history feature. +- `view` added to the list of automatically restored programs + +### v2.4.0, 2015-02-23 +- add "tmux-test" +- add test for "resurrect save" feature +- add test for "resurrect restore" feature +- make the tests work and pass on travis +- add travis badge to the readme + +### v2.3.0, 2015-02-12 +- Improve fetching proper window_layout for zoomed windows. In order to fetch + proper value, window has to get unzoomed. This is now done faster so that + "unzoom,fetch value,zoom" cycle is almost unnoticable to the user. + +### v2.2.0, 2015-02-12 +- bugfix: zoomed windows related regression +- export save and restore script paths so that 'tmux-resurrect-save' plugin can + use them +- enable "quiet" saving (used by 'tmux-resurrect-save' plugin) + +### v2.1.0, 2015-02-12 +- if restore is started when there's only **1 pane in the whole tmux server**, + assume the users wants the "full restore" and overrwrite that pane. + +### v2.0.0, 2015-02-10 +- add link to the wiki page for "first pane/window issue" to the README as well + as other tweaks +- save and restore grouped sessions (used with multi-monitor workflow) +- save and restore active and alternate windows in grouped sessions +- if there are no grouped sessions, do not output empty line to "last" file +- restore active and alternate windows only if they are present in the "last" file +- refactoring: prefer using variable with tab character +- remove deprecated `M-s` and `M-r` key bindings (breaking change) + +### v1.5.0, 2014-11-09 +- add support for restoring neovim sessions + +### v1.4.0, 2014-10-25 +- plugin now uses strategies when fetching pane full command. Implemented + 'default' strategy. +- save command strategy: 'pgrep'. It's here only if fallback is needed. +- save command strategy: 'gdb' +- rename default strategy name to 'ps' +- create `expect` script that can fully restore tmux environment +- fix default save command strategy `ps` command flags. Flags are different for + FreeBSD. +- add bash history saving and restoring (@rburny) +- preserving layout of zoomed windows across restores (@Azrael3000) + +### v1.3.0, 2014-09-20 +- remove dependency on `pgrep` command. Use `ps` for fetching process names. + +### v1.2.1, 2014-09-02 +- tweak 'new_pane' creation strategy to fix #36 +- when running multiple tmux server and for a large number of panes (120 +) when + doing a restore, some panes might not be created. When that is the case also + don't restore programs for those panes. + +### v1.2.0, 2014-09-01 +- new feature: inline strategies when restoring a program + +### v1.1.0, 2014-08-31 +- bugfix: sourcing `variables.sh` file in save script +- add `Ctrl` key mappings, deprecate `Alt` keys mappings. + +### v1.0.0, 2014-08-30 +- show spinner during the save process +- add screencast script +- make default program running list even more conservative + +### v0.4.0, 2014-08-29 +- change plugin name to `tmux-resurrect`. Change all the variable names. + +### v0.3.0, 2014-08-29 +- bugfix: when top is running the pane `$PWD` can't be saved. This was causing + issues during the restore and is now fixed. +- restoring sessions multiple times messes up the whole environment - new panes + are all around. This is now fixed - pane restorations are now idempotent. +- if pane exists from before session restore - do not restore the process within + it. This makes the restoration process even more idempotent. +- more panes within a window can now be restored +- restore window zoom state + +### v0.2.0, 2014-08-29 +- bugfix: with vim 'session' strategy, if the session file does not exist - make + sure vim does not contain `-S` flag +- enable restoring programs with arguments (e.g. "rails console") and also + processes that contain program name +- improve `irb` restore strategy + +### v0.1.0, 2014-08-28 +- refactor checking if saved tmux session exists +- spinner while tmux sessions are restored + +### v0.0.5, 2014-08-28 +- restore pane processes +- user option for disabling pane process restoring +- enable whitelisting processes that will be restored +- expand readme with configuration options +- enable command strategies; enable restoring vim sessions +- update readme: explain restoring vim sessions + +### v0.0.4, 2014-08-26 +- restore pane layout for each window +- bugfix: correct pane ordering in a window + +### v0.0.3, 2014-08-26 +- save and restore current and alternate session +- fix a bug with non-existing window names +- restore active pane for each window that has multiple panes +- restore active and alternate window for each session + +### v0.0.2, 2014-08-26 +- saving a new session does not remove the previous one +- make the directory where sessions are stored configurable +- support only Tmux v1.9 or greater +- display a nice error message if saved session file does not exist +- added README + +### v0.0.1, 2014-08-26 +- started a project +- basic saving and restoring works diff --git a/_tmux/.tmux/plugins/tmux-resurrect/CONTRIBUTING.md b/_tmux/.tmux/plugins/tmux-resurrect/CONTRIBUTING.md new file mode 100644 index 0000000..444098c --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/CONTRIBUTING.md @@ -0,0 +1,12 @@ +### Contributing + +Code contributions are welcome! + +### Reporting a bug + +If you find a bug please report it in the issues. When reporting a bug please +attach: +- a file symlinked to `~/.tmux/resurrect/last`. +- your `.tmux.conf` +- if you're getting an error paste it to a [gist](https://gist.github.com/) and + link it in the issue diff --git a/_tmux/.tmux/plugins/tmux-resurrect/LICENSE.md b/_tmux/.tmux/plugins/tmux-resurrect/LICENSE.md new file mode 100644 index 0000000..40f6ddd --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/LICENSE.md @@ -0,0 +1,19 @@ +Copyright (C) 2014 Bruno Sutic + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/_tmux/.tmux/plugins/tmux-resurrect/README.md b/_tmux/.tmux/plugins/tmux-resurrect/README.md new file mode 100644 index 0000000..9963e55 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/README.md @@ -0,0 +1,132 @@ +# Tmux Resurrect + +[![Build Status](https://travis-ci.org/tmux-plugins/tmux-resurrect.svg?branch=master)](https://travis-ci.org/tmux-plugins/tmux-resurrect) + +Restore `tmux` environment after system restart. + +Tmux is great, except when you have to restart the computer. You lose all the +running programs, working directories, pane layouts etc. +There are helpful management tools out there, but they require initial +configuration and continuous updates as your workflow evolves or you start new +projects. + +`tmux-resurrect` saves all the little details from your tmux environment so it +can be completely restored after a system restart (or when you feel like it). +No configuration is required. You should feel like you never quit tmux. + +It even (optionally) +[restores vim and neovim sessions](docs/restoring_vim_and_neovim_sessions.md)! + +Automatic restoring and continuous saving of tmux env is also possible with +[tmux-continuum](https://github.com/tmux-plugins/tmux-continuum) plugin. + +### Screencast + +[![screencast screenshot](/video/screencast_img.png)](https://vimeo.com/104763018) + +### Key bindings + +- `prefix + Ctrl-s` - save +- `prefix + Ctrl-r` - restore + +### About + +This plugin goes to great lengths to save and restore all the details from your +`tmux` environment. Here's what's been taken care of: + +- all sessions, windows, panes and their order +- current working directory for each pane +- **exact pane layouts** within windows (even when zoomed) +- active and alternative session +- active and alternative window for each session +- windows with focus +- active pane for each window +- "grouped sessions" (useful feature when using tmux with multiple monitors) +- programs running within a pane! More details in the + [restoring programs doc](docs/restoring_programs.md). + +Optional: + +- [restoring vim and neovim sessions](docs/restoring_vim_and_neovim_sessions.md) +- [restoring pane contents](docs/restoring_pane_contents.md) + +Requirements / dependencies: `tmux 1.9` or higher, `bash`. + +Tested and working on Linux, OSX and Cygwin. + +`tmux-resurrect` is idempotent! It will not try to restore panes or windows that +already exist.
+The single exception to this is when tmux is started with only 1 pane in order +to restore previous tmux env. Only in this case will this single pane be +overwritten. + +### Installation with [Tmux Plugin Manager](https://github.com/tmux-plugins/tpm) (recommended) + +Add plugin to the list of TPM plugins in `.tmux.conf`: + + set -g @plugin 'tmux-plugins/tmux-resurrect' + +Hit `prefix + I` to fetch the plugin and source it. You should now be able to +use the plugin. + +### Manual Installation + +Clone the repo: + + $ git clone https://github.com/tmux-plugins/tmux-resurrect ~/clone/path + +Add this line to the bottom of `.tmux.conf`: + + run-shell ~/clone/path/resurrect.tmux + +Reload TMUX environment with: `$ tmux source-file ~/.tmux.conf`. +You should now be able to use the plugin. + +### Docs + +- [Guide for migrating from tmuxinator](docs/migrating_from_tmuxinator.md) + +**Configuration** + +- [Changing the default key bindings](docs/custom_key_bindings.md). +- [Setting up hooks on save & restore](docs/hooks.md). +- Only a conservative list of programs is restored by default:
+ `vi vim nvim emacs man less more tail top htop irssi weechat mutt`.
+ [Restoring programs doc](docs/restoring_programs.md) explains how to restore + additional programs. +- [Change a directory](docs/save_dir.md) where `tmux-resurrect` saves tmux + environment. + +**Optional features** + +- [Restoring vim and neovim sessions](docs/restoring_vim_and_neovim_sessions.md) + is nice if you're a vim/neovim user. +- [Restoring pane contents](docs/restoring_pane_contents.md) feature. + +**Experimental features (also optional)** + +- [restoring shell history](docs/restoring_shell_history.md) + +### Other goodies + +- [tmux-copycat](https://github.com/tmux-plugins/tmux-copycat) - a plugin for + regex searches in tmux and fast match selection +- [tmux-yank](https://github.com/tmux-plugins/tmux-yank) - enables copying + highlighted text to system clipboard +- [tmux-open](https://github.com/tmux-plugins/tmux-open) - a plugin for quickly + opening highlighted file or a url +- [tmux-continuum](https://github.com/tmux-plugins/tmux-continuum) - automatic + restoring and continuous saving of tmux env + +### Reporting bugs and contributing + +Both contributing and bug reports are welcome. Please check out +[contributing guidelines](CONTRIBUTING.md). + +### Credits + +[Mislav Marohnić](https://github.com/mislav) - the idea for the plugin came from his +[tmux-session script](https://github.com/mislav/dotfiles/blob/2036b5e03fb430bbcbc340689d63328abaa28876/bin/tmux-session). + +### License +[MIT](LICENSE.md) diff --git a/_tmux/.tmux/plugins/tmux-resurrect/docs/custom_key_bindings.md b/_tmux/.tmux/plugins/tmux-resurrect/docs/custom_key_bindings.md new file mode 100644 index 0000000..99bfc2c --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/docs/custom_key_bindings.md @@ -0,0 +1,11 @@ +# Custom key bindings + +The default key bindings are: + +- `prefix + Ctrl-s` - save +- `prefix + Ctrl-r` - restore + +To change these, add to `.tmux.conf`: + + set -g @resurrect-save 'S' + set -g @resurrect-restore 'R' diff --git a/_tmux/.tmux/plugins/tmux-resurrect/docs/hooks.md b/_tmux/.tmux/plugins/tmux-resurrect/docs/hooks.md new file mode 100644 index 0000000..71625ca --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/docs/hooks.md @@ -0,0 +1,39 @@ +# Save & Restore Hooks + +Hooks allow to set custom commands that will be executed during session save +and restore. Most hooks are called with zero arguments, unless explicitly +stated otherwise. + +Currently the following hooks are supported: + +- `@resurrect-hook-post-save-layout` + + Called after all sessions, panes and windows have been saved. + + Passed single argument of the state file. + +- `@resurrect-hook-post-save-all` + + Called at end of save process right before the spinner is turned off. + +- `@resurrect-hook-pre-restore-all` + + Called before any tmux state is altered. + +- `@resurrect-hook-pre-restore-history` - deprecated + + Called after panes and layout have been restores, but before bash history is + restored (if it is enabled) -- the hook is always called even if history + saving is disabled. + +- `@resurrect-hook-pre-restore-pane-processes` + + Called after history is restored, but before running processes are restored. + +### Examples + +Here is an example how to save and restore window geometry for most terminals in X11. +Add this to `.tmux.conf`: + + set -g @resurrect-hook-post-save-all 'eval $(xdotool getwindowgeometry --shell $WINDOWID); echo 0,$X,$Y,$WIDTH,$HEIGHT > $HOME/.tmux/resurrect/geometry' + set -g @resurrect-hook-pre-restore-all 'wmctrl -i -r $WINDOWID -e $(cat $HOME/.tmux/resurrect/geometry)' diff --git a/_tmux/.tmux/plugins/tmux-resurrect/docs/migrating_from_tmuxinator.md b/_tmux/.tmux/plugins/tmux-resurrect/docs/migrating_from_tmuxinator.md new file mode 100644 index 0000000..f59f90f --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/docs/migrating_from_tmuxinator.md @@ -0,0 +1,72 @@ +# Migrating from `tmuxinator` + +### Why migrate to `tmux-resurrect`? + +Here are some reasons why you'd want to migrate from `tmuxinator` to +`tmux-resurrect`: + +- **Less dependencies**
+ `tmuxinator` depends on `ruby` which can be a hassle to set up if you're not a + rubyist.
+ `tmux-resurrect` depends just on `bash` which is virtually + omnipresent. + +- **Simplicity**
+ `tmuxinator` has an executable, CLI interface with half dozen commands and + command completion.
+ `tmux-resurrect` defines just 2 tmux key bindings. + +- **No configuration**
+ `tmuxinator` is all about config files (and their constant updating).
+ `tmux-resurrect` requires no configuration to work. + +- **Better change handling**
+ When you make a change to any aspect of tmux layout, you also have to + update related `tmuxinator` project file (and test to make sure change is + ok).
+ With `tmux-resurrect` there's nothing to do: your change will be + remembered on the next save. + +### How to migrate? + +1. Install `tmux-resurrect`. +2. Open \*all* existing `tmuxinator` projects.
+ Verify all projects are open by pressing `prefix + s` and checking they are + all on the list. +3. Perform a `tmux-resurrect` save. + +That's it! You can continue using just `tmux-resurrect` should you choose so. + +Note: it probably makes no sense to use both tools at the same time as they do +the same thing (creating tmux environment for you to work in). +Technically however, there should be no issues. + +### Usage differences + +`tmuxinator` focuses on managing individual tmux sessions (projects). +`tmux-resurrect` keeps track of the \*whole* tmux environment: all sessions are +saved and restored together. + +A couple tips if you decide to switch to `tmux-resurrect`: + +- Keep all tmux sessions (projects) running all the time.
+ If you want to work on an existing project, you should be able to just + \*switch* to an already open session using `prefix + s`.
+ This is different from `tmuxinator` where you'd usually run `mux new [project]` + in order to start working on something. + +- No need to kill sessions with `tmux kill-session` (unless you really don't + want to work on it ever).
+ It's the recurring theme by now: just keep all the sessions running all the + time. This is convenient and also cheap in terms of resources. + +- The only 2 situations when you need `tmux-resurrect`:
+ 1) Save tmux environment just before restarting/shutting down your + computer.
+ 2) Restore tmux env after you turn the computer on. + +### Other questions? + +Still have questions? Feel free to open an +[issue](ihttps://github.com/tmux-plugins/tmux-resurrect/issues). We'll try to +answer it and also update this doc. diff --git a/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_pane_contents.md b/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_pane_contents.md new file mode 100644 index 0000000..2dff59a --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_pane_contents.md @@ -0,0 +1,31 @@ +# Restoring pane contents + +This plugin enables saving and restoring tmux pane contents. + +This feature can be enabled by adding this line to `.tmux.conf`: + + set -g @resurrect-capture-pane-contents 'on' + +##### Known issue + +When using this feature, please check the value of `default-command` +tmux option. That can be done with `$ tmux show -g default-command`. + +The value should NOT contain `&&` or `||` operators. If it does, simplify the +option so those operators are removed. + +Example: + +- this will cause issues (notice the `&&` and `||` operators): + + set -g default-command "which reattach-to-user-namespace > /dev/null && reattach-to-user-namespace -l $SHELL || $SHELL -l" + +- this is ok: + + set -g default-command "reattach-to-user-namespace -l $SHELL" + +Related [bug](https://github.com/tmux-plugins/tmux-resurrect/issues/98). + +Alternatively, you can let +[tmux-sensible](https://github.com/tmux-plugins/tmux-sensible) +handle this option in a cross-platform way and you'll have no problems. diff --git a/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_programs.md b/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_programs.md new file mode 100644 index 0000000..995d0a7 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_programs.md @@ -0,0 +1,179 @@ +# Restoring programs + - [General instructions](#general-instructions) + - [Clarifications](#clarifications) + - [Working with NodeJS](#nodejs) + - [Restoring Mosh](#mosh) + +### General instructions +Only a conservative list of programs is restored by default:
+`vi vim nvim emacs man less more tail top htop irssi weechat mutt`. + +This can be configured with `@resurrect-processes` option in `.tmux.conf`. It +contains space-separated list of additional programs to restore. + +- Example restoring additional programs: + + set -g @resurrect-processes 'ssh psql mysql sqlite3' + +- Programs with arguments should be double quoted: + + set -g @resurrect-processes 'some_program "git log"' + +- Start with tilde to restore a program whose process contains target name: + + set -g @resurrect-processes 'irb pry "~rails server" "~rails console"' + +- Use `->` to specify a command to be used when restoring a program (useful if + the default restore command fails ): + + set -g @resurrect-processes 'some_program "grunt->grunt development"' + +- Don't restore any programs: + + set -g @resurrect-processes 'false' + +- Restore **all** programs (be careful with this!): + + set -g @resurrect-processes ':all:' + +### Clarifications + +> I don't understand tilde `~`, what is it and why is it used when restoring + programs? + +Let's say you use `rails server` command often. You want `tmux-resurrect` to +save and restore it automatically. You might try adding `rails server` to the +list of programs that will be restored: + + set -g @resurrect-processes '"rails server"' # will NOT work + +Upon save, `rails server` command will actually be saved as this command: +`/Users/user/.rbenv/versions/2.0.0-p481/bin/ruby script/rails server` +(if you wanna see how is any command saved, check it yourself in +`~/.tmux/resurrect/last` file). + +When programs are restored, the `rails server` command will NOT be restored +because it does not **strictly** match the long +`/Users/user/.rbenv/versions/2.0.0-p481/bin/ruby script/rails server` string. + +The tilde `~` at the start of the string relaxes process name matching. + + set -g @resurrect-processes '"~rails server"' # OK + +The above option says: "restore full process if `rails server` string is found +ANYWHERE in the process name". + +If you check long process string, there is in fact a `rails server` string at +the end, so now the process will be successfully restored. + +> What is arrow `->` and why is is used? + +(Please read the above clarification about tilde `~`). + +Continuing with our `rails server` example, when the process is finally restored +correctly it might not look pretty as you'll see the whole +`/Users/user/.rbenv/versions/2.0.0-p481/bin/ruby script/rails server` string in +the command line. + +Naturally, you'd rather want to see just `rails server` (what you initially +typed), but that information is now unfortunately lost. + +To aid this, you can use arrow `->`: (**note**: there is no space before and after `->`) + + set -g @resurrect-processes '"~rails server->rails server"' # OK + +This option says: "when this process is restored use `rails server` as the +command name". + +Full (long) process name is now ignored and you'll see just `rails server` in +the command line when the program is restored. + +> Now I understand the tilde and the arrow, but things still don't work for me + +Here's the general workflow for figuring this out: + +- Set up your whole tmux environment manually.
+ In our example case, we'd type `rails server` in a pane where we want it to + run. +- Save tmux env (it will get saved to `~/.tmux/resurrect/last`). +- Open `~/.tmux/resurrect/last` file and try to find full process string for + your program.
+ Unfortunately this is a little vague but it should be easy. A smart + thing to do for our example is to search for string `rails` in the `last` + file. +- Now that you know the full and the desired process string use tilde `~` and + arrow `->` in `.tmux.conf` to make things work. + +### Working with NodeJS +If you are working with NodeJS, you may get some troubles with configuring restoring programs. + +Particularly, some programs like `gulp`, `grunt` or `npm` are not saved with parameters so tmux-resurrect cannot restore it. This is actually **not tmux-resurrect's issue** but more likely, those programs' issues. For example if you run `gulp watch` or `npm start` and then try to look at `ps` or `pgrep`, you will only see `gulp` or `npm`. + +To deal with these issues, one solution is to use [yarn](https://yarnpkg.com/en/docs/install) which a package manager for NodeJS and an alternative for `npm`. It's nearly identical to `npm` and very easy to use. Therefore you don't have to do any migration, you can simply use it immediately. For example: +- `npm test` is equivalent to `yarn test`, +- `npm run watch:dev` is equivalent to `yarn watch:dev` +- more interestingly, `gulp watch:dev` is equivalent to `yarn gulp watch:dev` + +Before continuing, please ensure that you understand the [clarifications](#clarifications) section about `~` and `->` + +#### yarn +It's fairly straight forward if you have been using `yarn` already. + + set -g @resurrect-processes '"~yarn watch"' + set -g @resurrect-processes '"~yarn watch->yarn watch"' + + +#### npm +Instead of + + set -g @resurrect-processes '"~npm run watch"' # will NOT work + +we use + + set -g @resurrect-processes '"~yarn watch"' # OK + + +#### gulp +Instead of + + set -g @resurrect-processes '"~gulp test"' # will NOT work + +we use + + set -g @resurrect-processes '"~yarn gulp test"' # OK + + +#### nvm +If you use `nvm` in your project, here is how you could config tmux-resurrect: + + set -g @resurrect-processes '"~yarn gulp test->nvm use && gulp test"' + +#### Another problem +Let take a look at this example + + set -g @resurrect-processes '\ + "~yarn gulp test->gulp test" \ + "~yarn gulp test-it->gulp test-it" \ + ' +**This will not work properly**, only `gulp test` is run, although you can see the command `node /path/to/yarn gulp test-it` is added correctly in `.tmux/resurrect/last` file. + +The reason is when restoring program, the **command part after the dash `-` is ignored** so instead of command `gulp test-it`, the command `gulp test` which will be run. + +A work around, for this problem until it's fixed, is: +- the config should be like this: + + set -g @resurrect-processes '\ + "~yarn gulp test->gulp test" \ + "~yarn gulp \"test-it\"->gulp test-it" \ + +- and in `.tmux/resurrect/last`, we should add quote to `test-it` word + + ... node:node /path/to/yarn gulp "test-it" + + +### Restoring Mosh +Mosh spawns a `mosh-client` process, so we need to specify that as the process to be resurrected. + + set -g @resurrect-processes 'mosh-client' + +Additionally a mosh-client strategy is provided to handle extracting the original arguments and re-run Mosh. diff --git a/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_shell_history.md b/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_shell_history.md new file mode 100644 index 0000000..7c72c2c --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_shell_history.md @@ -0,0 +1,23 @@ +# Restoring shell history (deprecated, do not use) + +This feature is deprecated because it's very invasive. It will be removed in +the future with no replacement. To see problems it causes check +[this issue](https://github.com/tmux-plugins/tmux-resurrect/issues/288). + +**Supported shells**: `bash` and `zsh`. + +Enable feature with this option in `.tmux.conf`: + + set -g @resurrect-save-shell-history 'on' + +**Note**: the older `@resurrect-save-bash-history` is now an alias to +`@resurrect-save-shell-history`. + +Shell `history` for individual panes will now be saved and restored. Due to +technical limitations, this only works for panes which have no program running +in foreground when saving. `tmux-resurrect` will send history write command to +each such pane. + +To prevent these commands from being added to `bash` history +themselves, add `HISTCONTROL=ignoreboth` to your `.bashrc` +(this is set by default in Ubuntu). diff --git a/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_vim_and_neovim_sessions.md b/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_vim_and_neovim_sessions.md new file mode 100644 index 0000000..f92587f --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/docs/restoring_vim_and_neovim_sessions.md @@ -0,0 +1,15 @@ +# Restoring vim and neovim sessions + +- save vim/neovim sessions. I recommend + [tpope/vim-obsession](https://github.com/tpope/vim-obsession) (as almost every + plugin, it works for both vim and neovim). +- in `.tmux.conf`: + + # for vim + set -g @resurrect-strategy-vim 'session' + # for neovim + set -g @resurrect-strategy-nvim 'session' + +`tmux-resurrect` will now restore vim and neovim sessions if `Session.vim` file +is present. + diff --git a/_tmux/.tmux/plugins/tmux-resurrect/docs/save_dir.md b/_tmux/.tmux/plugins/tmux-resurrect/docs/save_dir.md new file mode 100644 index 0000000..bf724c6 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/docs/save_dir.md @@ -0,0 +1,15 @@ +# Resurrect save dir + +By default Tmux environment is saved to a file in `~/.tmux/resurrect` dir. +Change this with: + + set -g @resurrect-dir '/some/path' + +Using environment variables or shell interpolation in this option is not +allowed as the string is used literally. So the following won't do what is +expected: + + set -g @resurrect-dir '/path/$MY_VAR/$(some_executable)' + +Only the following variables and special chars are allowed: +`$HOME`, `$HOSTNAME`, and `~`. diff --git a/_tmux/.tmux/plugins/tmux-resurrect/resurrect.tmux b/_tmux/.tmux/plugins/tmux-resurrect/resurrect.tmux new file mode 100755 index 0000000..21fed7e --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/resurrect.tmux @@ -0,0 +1,40 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +source "$CURRENT_DIR/scripts/variables.sh" +source "$CURRENT_DIR/scripts/helpers.sh" + +set_save_bindings() { + local key_bindings=$(get_tmux_option "$save_option" "$default_save_key") + local key + for key in $key_bindings; do + tmux bind-key "$key" run-shell "$CURRENT_DIR/scripts/save.sh" + done +} + +set_restore_bindings() { + local key_bindings=$(get_tmux_option "$restore_option" "$default_restore_key") + local key + for key in $key_bindings; do + tmux bind-key "$key" run-shell "$CURRENT_DIR/scripts/restore.sh" + done +} + +set_default_strategies() { + tmux set-option -gq "${restore_process_strategy_option}irb" "default_strategy" + tmux set-option -gq "${restore_process_strategy_option}mosh-client" "default_strategy" +} + +set_script_path_options() { + tmux set-option -gq "$save_path_option" "$CURRENT_DIR/scripts/save.sh" + tmux set-option -gq "$restore_path_option" "$CURRENT_DIR/scripts/restore.sh" +} + +main() { + set_save_bindings + set_restore_bindings + set_default_strategies + set_script_path_options +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/gdb.sh b/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/gdb.sh new file mode 100755 index 0000000..2f0ab56 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/gdb.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +PANE_PID="$1" + +exit_safely_if_empty_ppid() { + if [ -z "$PANE_PID" ]; then + exit 0 + fi +} + +full_command() { + gdb -batch --eval "attach $PANE_PID" --eval "call write_history(\"/tmp/bash_history-${PANE_PID}.txt\")" --eval 'detach' --eval 'q' >/dev/null 2>&1 + \tail -1 "/tmp/bash_history-${PANE_PID}.txt" +} + +main() { + exit_safely_if_empty_ppid + full_command +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/linux_procfs.sh b/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/linux_procfs.sh new file mode 100755 index 0000000..ff8231f --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/linux_procfs.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +PANE_PID="$1" +COMMAND_PID=$(pgrep -P $PANE_PID) + +exit_safely_if_empty_ppid() { + if [ -z "$PANE_PID" ]; then + exit 0 + fi +} + +full_command() { + [[ -z "$COMMAND_PID" ]] && exit 0 + cat /proc/${COMMAND_PID}/cmdline | xargs -0 printf "%q " +} + +main() { + exit_safely_if_empty_ppid + full_command +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/pgrep.sh b/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/pgrep.sh new file mode 100755 index 0000000..15d98b3 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/pgrep.sh @@ -0,0 +1,22 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +PANE_PID="$1" + +exit_safely_if_empty_ppid() { + if [ -z "$PANE_PID" ]; then + exit 0 + fi +} + +full_command() { + \pgrep -lf -P "$PANE_PID" | + cut -d' ' -f2- +} + +main() { + exit_safely_if_empty_ppid + full_command +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/ps.sh b/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/ps.sh new file mode 100755 index 0000000..544426c --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/save_command_strategies/ps.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +PANE_PID="$1" + +exit_safely_if_empty_ppid() { + if [ -z "$PANE_PID" ]; then + exit 0 + fi +} + +full_command() { + ps -ao "ppid command" | + sed "s/^ *//" | + grep "^${PANE_PID}" | + cut -d' ' -f2- +} + +main() { + exit_safely_if_empty_ppid + full_command +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/strategies/irb_default_strategy.sh b/_tmux/.tmux/plugins/tmux-resurrect/strategies/irb_default_strategy.sh new file mode 100755 index 0000000..897f5bb --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/strategies/irb_default_strategy.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +# "irb default strategy" +# +# Example irb process with junk variables: +# irb RBENV_VERSION=1.9.3-p429 GREP_COLOR=34;47 TERM_PROGRAM=Apple_Terminal +# +# When executed, the above will fail. This strategy handles that. + +ORIGINAL_COMMAND="$1" +DIRECTORY="$2" + +original_command_wo_junk_vars() { + echo "$ORIGINAL_COMMAND" | + sed 's/RBENV_VERSION[^ ]*//' | + sed 's/GREP_COLOR[^ ]*//' | + sed 's/TERM_PROGRAM[^ ]*//' +} + +main() { + echo "$(original_command_wo_junk_vars)" +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/strategies/mosh-client_default_strategy.sh b/_tmux/.tmux/plugins/tmux-resurrect/strategies/mosh-client_default_strategy.sh new file mode 100755 index 0000000..4d2f06b --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/strategies/mosh-client_default_strategy.sh @@ -0,0 +1,25 @@ +#!/usr/bin/env bash + +# "mosh-client default strategy" +# +# Example mosh-client process: +# mosh-client -# charm tmux at | 198.199.104.142 60001 +# +# When executed, the above will fail. This strategy handles that. + +ORIGINAL_COMMAND="$1" +DIRECTORY="$2" + +mosh_command() { + local args="$ORIGINAL_COMMAND" + + args="${args#*-#}" + args="${args%|*}" + + echo "mosh $args" +} + +main() { + echo "$(mosh_command)" +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/strategies/nvim_session.sh b/_tmux/.tmux/plugins/tmux-resurrect/strategies/nvim_session.sh new file mode 100755 index 0000000..4987c68 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/strategies/nvim_session.sh @@ -0,0 +1,30 @@ +#!/usr/bin/env bash + +# "nvim session strategy" +# +# Same as vim strategy, see file 'vim_session.sh' + +ORIGINAL_COMMAND="$1" +DIRECTORY="$2" + +nvim_session_file_exists() { + [ -e "${DIRECTORY}/Session.vim" ] +} + +original_command_contains_session_flag() { + [[ "$ORIGINAL_COMMAND" =~ "-S" ]] +} + +main() { + if nvim_session_file_exists; then + echo "nvim -S" + elif original_command_contains_session_flag; then + # Session file does not exist, yet the original nvim command contains + # session flag `-S`. This will cause an error, so we're falling back to + # starting plain nvim. + echo "nvim" + else + echo "$ORIGINAL_COMMAND" + fi +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/strategies/vim_session.sh b/_tmux/.tmux/plugins/tmux-resurrect/strategies/vim_session.sh new file mode 100755 index 0000000..8121344 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/strategies/vim_session.sh @@ -0,0 +1,32 @@ +#!/usr/bin/env bash + +# "vim session strategy" +# +# Restores a vim session from 'Session.vim' file, if it exists. +# If 'Session.vim' does not exist, it falls back to invoking the original +# command (without the `-S` flag). + +ORIGINAL_COMMAND="$1" +DIRECTORY="$2" + +vim_session_file_exists() { + [ -e "${DIRECTORY}/Session.vim" ] +} + +original_command_contains_session_flag() { + [[ "$ORIGINAL_COMMAND" =~ "-S" ]] +} + +main() { + if vim_session_file_exists; then + echo "vim -S" + elif original_command_contains_session_flag; then + # Session file does not exist, yet the original vim command contains + # session flag `-S`. This will cause an error, so we're falling back to + # starting plain vim. + echo "vim" + else + echo "$ORIGINAL_COMMAND" + fi +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/tests/fixtures/restore_file.txt b/_tmux/.tmux/plugins/tmux-resurrect/tests/fixtures/restore_file.txt new file mode 100644 index 0000000..dcf5779 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/tests/fixtures/restore_file.txt @@ -0,0 +1,21 @@ +pane 0 0 :bash 1 :* 0 :/tmp 1 bash : +pane blue 0 :vim 0 : 0 :/tmp 1 vim :vim foo.txt +pane blue 1 :man 0 :- 0 :/tmp 0 bash : +pane blue 1 :man 0 :- 1 :/usr/share/man 1 man :man echo +pane blue 2 :bash 1 :* 0 :/tmp 1 bash : +pane red 0 :bash 0 : 0 :/tmp 1 bash : +pane red 1 :bash 0 :-Z 0 :/tmp 0 bash : +pane red 1 :bash 0 :-Z 1 :/tmp 0 bash : +pane red 1 :bash 0 :-Z 2 :/tmp 1 bash : +pane red 2 :bash 1 :* 0 :/tmp 0 bash : +pane red 2 :bash 1 :* 1 :/tmp 1 bash : +pane yellow 0 :bash 1 :* 0 :/tmp/bar 1 bash : +window 0 0 1 :* ce9e,200x49,0,0,1 +window blue 0 0 : ce9f,200x49,0,0,2 +window blue 1 0 :- 178b,200x49,0,0{100x49,0,0,3,99x49,101,0,4} +window blue 2 1 :* cea2,200x49,0,0,5 +window red 0 0 : cea3,200x49,0,0,6 +window red 1 0 :-Z 135b,200x49,0,0[200x24,0,0,7,200x24,0,25{100x24,0,25,8,99x24,101,25,9}] +window red 2 1 :* db81,200x49,0,0[200x24,0,0,10,200x24,0,25,11] +window yellow 0 1 :* 6781,200x49,0,0,12 +state yellow blue diff --git a/_tmux/.tmux/plugins/tmux-resurrect/tests/fixtures/save_file.txt b/_tmux/.tmux/plugins/tmux-resurrect/tests/fixtures/save_file.txt new file mode 100644 index 0000000..0301f92 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/tests/fixtures/save_file.txt @@ -0,0 +1,21 @@ +pane 0 0 :bash 1 :* 0 :/tmp 1 bash : +pane blue 0 :vim 0 :! 0 :/tmp 1 vim :vim foo.txt +pane blue 1 :man 0 :!- 0 :/tmp 0 bash : +pane blue 1 :man 0 :!- 1 :/usr/share/man 1 man :man echo +pane blue 2 :bash 1 :* 0 :/tmp 1 bash : +pane red 0 :bash 0 : 0 :/tmp 1 bash : +pane red 1 :bash 0 :-Z 0 :/tmp 0 bash : +pane red 1 :bash 0 :-Z 1 :/tmp 0 bash : +pane red 1 :bash 0 :-Z 2 :/tmp 1 bash : +pane red 2 :bash 1 :* 0 :/tmp 0 bash : +pane red 2 :bash 1 :* 1 :/tmp 1 bash : +pane yellow 0 :bash 1 :* 0 :/tmp/bar 1 bash : +window 0 0 1 :* ce9d,200x49,0,0,0 +window blue 0 0 :! cea4,200x49,0,0,7 +window blue 1 0 :!- 9797,200x49,0,0{100x49,0,0,8,99x49,101,0,9} +window blue 2 1 :* 677f,200x49,0,0,10 +window red 0 0 : ce9e,200x49,0,0,1 +window red 1 0 :-Z 52b7,200x49,0,0[200x24,0,0,2,200x24,0,25{100x24,0,25,3,99x24,101,25,4}] +window red 2 1 :* bd68,200x49,0,0[200x24,0,0,5,200x24,0,25,6] +window yellow 0 1 :* 6780,200x49,0,0,11 +state yellow blue diff --git a/_tmux/.tmux/plugins/tmux-resurrect/tests/helpers/resurrect_helpers.sh b/_tmux/.tmux/plugins/tmux-resurrect/tests/helpers/resurrect_helpers.sh new file mode 100644 index 0000000..268aca5 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/tests/helpers/resurrect_helpers.sh @@ -0,0 +1,11 @@ +# we want "fixed" dimensions no matter the size of real display +set_screen_dimensions_helper() { + stty cols 200 + stty rows 50 +} + +last_save_file_differs_helper() { + local original_file="$1" + diff "$original_file" "${HOME}/.tmux/resurrect/last" + [ $? -ne 0 ] +} diff --git a/_tmux/.tmux/plugins/tmux-resurrect/tests/test_resurrect_restore.sh b/_tmux/.tmux/plugins/tmux-resurrect/tests/test_resurrect_restore.sh new file mode 100755 index 0000000..9cf4644 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/tests/test_resurrect_restore.sh @@ -0,0 +1,33 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +source $CURRENT_DIR/helpers/helpers.sh +source $CURRENT_DIR/helpers/resurrect_helpers.sh + +setup_before_restore() { + # setup restore file + mkdir -p ~/.tmux/resurrect/ + cp tests/fixtures/restore_file.txt "${HOME}/.tmux/resurrect/restore_file.txt" + ln -sf restore_file.txt "${HOME}/.tmux/resurrect/last" + + # directory used in restored tmux session + mkdir -p /tmp/bar +} + +restore_tmux_environment_and_save_again() { + set_screen_dimensions_helper + $CURRENT_DIR/helpers/restore_and_save_tmux_test_environment.exp +} + +main() { + install_tmux_plugin_under_test_helper + setup_before_restore + restore_tmux_environment_and_save_again + + if last_save_file_differs_helper "tests/fixtures/restore_file.txt"; then + fail_helper "Saved file not correct after restore" + fi + exit_helper +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/tests/test_resurrect_save.sh b/_tmux/.tmux/plugins/tmux-resurrect/tests/test_resurrect_save.sh new file mode 100755 index 0000000..99fb925 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/tests/test_resurrect_save.sh @@ -0,0 +1,23 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +source $CURRENT_DIR/helpers/helpers.sh +source $CURRENT_DIR/helpers/resurrect_helpers.sh + +create_tmux_test_environment_and_save() { + set_screen_dimensions_helper + $CURRENT_DIR/helpers/create_and_save_tmux_test_environment.exp +} + +main() { + install_tmux_plugin_under_test_helper + mkdir -p /tmp/bar # setup required dirs + create_tmux_test_environment_and_save + + if last_save_file_differs_helper "tests/fixtures/save_file.txt"; then + fail_helper "Saved file not correct (initial save)" + fi + exit_helper +} +main diff --git a/_tmux/.tmux/plugins/tmux-resurrect/video/issue_vid.png b/_tmux/.tmux/plugins/tmux-resurrect/video/issue_vid.png new file mode 100644 index 0000000..8ea5ea2 Binary files /dev/null and b/_tmux/.tmux/plugins/tmux-resurrect/video/issue_vid.png differ diff --git a/_tmux/.tmux/plugins/tmux-resurrect/video/screencast_img.png b/_tmux/.tmux/plugins/tmux-resurrect/video/screencast_img.png new file mode 100644 index 0000000..f5f3d83 Binary files /dev/null and b/_tmux/.tmux/plugins/tmux-resurrect/video/screencast_img.png differ diff --git a/_tmux/.tmux/plugins/tmux-resurrect/video/script.md b/_tmux/.tmux/plugins/tmux-resurrect/video/script.md new file mode 100644 index 0000000..ef38824 --- /dev/null +++ b/_tmux/.tmux/plugins/tmux-resurrect/video/script.md @@ -0,0 +1,110 @@ +# Screencast script + +1. Intro +======== +Let's demo tmux resurrect plugin. + +Tmux resurrect enables persisting tmux sessions, so it can survive the dreaded +system restarts. + +The benefit is uninterrupted workflow with no configuration required. + +2. Working session +================== +Script +------ +Let me show you what I have in this tmux demo session. + +First of all, I have vim open and it has a couple files loaded. + +Then there's a tmux window with a couple splits in various directories across +the system. + +Next window contains tmux man page, + and then there's `htop` program. + +And this is just one of many projects I'm currently running. + +Actions +------- +- blank tmux window +- vim + - `ls` to show open files +- multiple pane windows (3) +- man tmux +- htop +- psql +- show a list of session + +3. Saving the environment +========================= +Script +------ +With vanilla tmux, when I restart the computer this whole environment will be +lost and I'll have to invest time to restore it. + +tmux resurrect gives you the ability to persist everything with +prefix plus alt-s. + +Now tmux environment is saved and I can safely shut down tmux with a +kill server command. + +Actions +------- +- prefix + M-s +- :kill-server + +4. Restoring the environment +============================ +Script +------ +At this point restoring everything back is easy. + +I'll fire up tmux again. Notice it's completely empty. + +Now, I'll press prefix plus alt-r and everything will restore. + +Let's see how things look now. +First of all, I'm back to the exact same window I was in when the environment +was saved. Second - you can see the `htop` program was restored. + +Going back there's tmux man page + a window with multiple panes with the exact same layout as before + and vim. + + +tmux resurrect takes special care of vim. By leveraging vim's sessions, it +preserves vim's split windows, open files, even the list of files edited before. + +Check out the project readme for more details about special treatment for vim. + +That was just one of the restored tmux sessions. If I open tmux session list you +can see all the other projects are restored as well. + + +When you see all these programs running you might be concerned that this plugin +started a lot of potentially destructive processes. + +For example, when you restore tmux you don't want to accidentally start backups, +resource intensive or sensitive programs. + +There's no need to be worried though. By default, this plugin starts only a +conservative list of programs like vim, less, tail, htop and similar. +This list of programs restored by default is in the project readme. Also, you +can easily add more programs to it. + +If you feel paranoid, there's an option that prevents restoring any program. + +Actions +------- +- tmux +- prefix + M-r + +- open previous windows +- in vim hit :ls + +- prefix + s for a list of panes + +5. Outro +======== +That's it for this demo. I hope you'll find tmux resurrect useful. diff --git a/_tmux/.tmux/plugins/tmuxline.vim/.gitignore b/_tmux/.tmux/plugins/tmuxline.vim/.gitignore new file mode 100644 index 0000000..14e380b --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/.gitignore @@ -0,0 +1,2 @@ +Session.vim +doc/tags diff --git a/_tmux/.tmux/plugins/tmuxline.vim/CONTRIBUTORS.md b/_tmux/.tmux/plugins/tmuxline.vim/CONTRIBUTORS.md new file mode 100644 index 0000000..359d4d4 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/CONTRIBUTORS.md @@ -0,0 +1,5 @@ +# Contributors + + * [Darren Cheng](https://github.com/darrenli) - jellybeans theme + * [Nick Ostrovsky](https://github.com/firedev) - minimal theme + * [H. Rosendahl](https://github.com/he-ro) - tmux options update diff --git a/_tmux/.tmux/plugins/tmuxline.vim/LICENSE b/_tmux/.tmux/plugins/tmuxline.vim/LICENSE new file mode 100644 index 0000000..1df70af --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/LICENSE @@ -0,0 +1,24 @@ +The MIT License (MIT) + +Copyright (c) 2013-2014 Evgeni Kolev + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + diff --git a/_tmux/.tmux/plugins/tmuxline.vim/README.md b/_tmux/.tmux/plugins/tmuxline.vim/README.md new file mode 100644 index 0000000..6379973 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/README.md @@ -0,0 +1,257 @@ +# tmuxline.vim + +Simple tmux statusline generator with support for powerline symbols and vim/airline/lightline statusline integration + +- colors from [vim-airline][7]/[lightline.vim][12] + +![img](https://f.cloud.github.com/assets/1532071/1556058/d2347eea-4ea7-11e3-9393-660b2e2c143a.png) + +- colors from vim's own [statusline][13] + +![img](https://cloud.githubusercontent.com/assets/1532071/3634460/5b2858f4-0f30-11e4-925c-bf555bb65806.png) + +## Features + +- use [vim][13]/[vim-airline][7]/[lightline.vim][12] colors, so tmux and vim share the same statusline colortheme +- preloaded with stock themes and presets, which can be combined anyway you want +- configure tmux statusline using a simple hash, in case stock presets don't meet your needs +- create a snapshot .conf file which can be sourced by tmux, no need to open vim to set your tmux statusline + +## Quickstart + +#### use vim's statusline colors + +Use one of the `vim_statusline_*` themes (and optionally set in vimrc `let g:tmuxline_powerline_separators = 0`): + +``` +:Tmuxline vim_statusline_1 +" or +:Tmuxline vim_statusline_2 +" or +:Tmuxline vim_statusline_3 +``` + +![img](https://cloud.githubusercontent.com/assets/1532071/3787457/dc6ef76c-1a19-11e4-8d77-964e7db87337.png) + +#### use vim-airline colors + +Just start vim inside of tmux. airline's colors will be applied to tmux's statusline + +![img](https://f.cloud.github.com/assets/1532071/1556059/d24a5c42-4ea7-11e3-9965-c13418d889a1.png) + +Alternatively, you can set it manually using `airline_*` themes: +``` +:Tmuxline airline +" or +:Tmuxline airline_insert +" or +:Tmuxline airline_visual +``` + +If you set airline theme manually, make sure the [airline-tmuxline][11] extension is disabled, so it doesn't overwrite the theme: + +`let g:airline#extensions#tmuxline#enabled = 0` + +#### use lightline.vim colors + +Use one of the `lightline_*` themes: +``` +:Tmuxline lightline +" or +:Tmuxline lightline_insert +" or +:Tmuxline lightline_visual +``` + +![img](https://f.cloud.github.com/assets/1532071/2058566/ec64bf70-8b77-11e3-883f-82b41a83f6ac.png) + +## Usage + +Set a a colortheme and a preset, both arguments are optional +``` +:Tmuxline [theme] [preset] +``` + +After running :Tmuxline, create a snapshot file which can be sourced by tmux.conf on startup +``` +:TmuxlineSnapshot [file] +``` + +Source the created snapshot in tmux.conf +``` +# in tmux.conf +source-file [file] + +# alternatively, check file exists before sourcing it in tmux.conf +if-shell "test -f [file]" "source [file]" +``` + +Note that `:Tmuxline` and `:TmuxlineSnapshot` are available only when vim is inside a tmux session. + +## Configuration + +### Stock preset + +Set `g:tmuxline_preset` to a stock preset and run `:Tmuxline` + +``` +let g:tmuxline_preset = 'nightly_fox' +" or +let g:tmuxline_preset = 'full' +" or +let g:tmuxline_preset = 'tmux' +" other presets available in autoload/tmuxline/presets/* +``` + +### Custom preset + +Contents of the statusline are configured with a simple hash. +Left section is configured with `a, b, c`, right with `x, y, z`. `cwin` and `win` affect the current (active) window and the in-active windows respectively. +``` +let g:tmuxline_preset = { + \'a' : '#S', + \'b' : '#W', + \'c' : '#H', + \'win' : '#I #W', + \'cwin' : '#I #W', + \'x' : '%a', + \'y' : '#W %R', + \'z' : '#H'} +``` + +![img](https://f.cloud.github.com/assets/1532071/1556060/d80f24a0-4ea7-11e3-97c2-0e5fd39dbf2b.png) + + +tmux will replace #X and %X. Excerpts from tmux man page: +``` +#H Hostname of local host +#h Hostname of local host without the domain name +#F Current window flag +#I Current window index +#S Session name +#W Current window name +#(shell-command) First line of the command's output + +string will be passed through strftime(3) before being used. +``` + +If the values of the hash `g:tmuxline_preset` hold an array, a powerline separator will be placed. +``` +let g:tmuxline_preset = { + \'a' : '#S', + \'win' : ['#I', '#W'], + \'cwin' : ['#I', '#W', '#F'], + \'y' : ['%R', '%a', '%Y'], + \'z' : '#H'} +``` + +![img](https://f.cloud.github.com/assets/1532071/1556061/d81ab112-4ea7-11e3-9be7-46e41cc47cef.png) + +tmux allows using any command in the statusline. +``` +let g:tmuxline_preset = { + \'a' : '#S', + \'c' : ['#(whoami)', '#(uptime | cut -d " " -f 1,2,3)'], + \'win' : ['#I', '#W'], + \'cwin' : ['#I', '#W', '#F'], + \'x' : '#(date)', + \'y' : ['%R', '%a', '%Y'], + \'z' : '#H'} +``` + +![img](https://f.cloud.github.com/assets/1532071/1556062/d82660ca-4ea7-11e3-9df3-4b084a992c0c.png) + +### Separators + +Use `let g:tmuxline_powerline_separators = 0` to disable using powerline symbols + +To fine-tune the separators, use `g:tmuxline_separators`: +``` +let g:tmuxline_separators = { + \ 'left' : '', + \ 'left_alt': '>', + \ 'right' : '', + \ 'right_alt' : '<', + \ 'space' : ' '} +``` + +### Theme + +Note that [vim-airline][2] has a [tmuxline extension][11] which by default sets airline's color theme onto tmuxline. +If you don't want airline colors in tmuxline, set `let g:airline#extensions#tmuxline#enabled = 0` in vimrc. + +Modifying `g:tmuxline_theme` (details below) makes sense only if the airline-tmuxline is not enabled. + +Use `g:tmuxline_theme` to configure the theme. `g:tmuxline_theme` can hold either a string (stock theme) or a hash (custom theme). + +``` +let g:tmuxline_theme = 'iceberg' +" or +let g:tmuxline_theme = 'zenburn' +" or +let g:tmuxline_theme = 'jellybeans' +" other themes available in autoload/tmuxline/themes/* +``` + +Alternatively, `g:tmuxline_theme` can be used to fine tune a custom theme: + +``` +let g:tmuxline_theme = { + \ 'a' : [ 236, 103 ], + \ 'b' : [ 253, 239 ], + \ 'c' : [ 244, 236 ], + \ 'x' : [ 244, 236 ], + \ 'y' : [ 253, 239 ], + \ 'z' : [ 236, 103 ], + \ 'win' : [ 103, 236 ], + \ 'cwin' : [ 236, 103 ], + \ 'bg' : [ 244, 236 ], + \ } +" values represent: [ FG, BG, ATTR ] +" FG ang BG are color codes +" ATTR (optional) is a comma-delimited string of one or more of bold, dim, underscore, etc. For details refer to the STYLE section in the tmux man page +``` + +## Installation + +The plugin's files follow the standard layout for vim plugins. + +- [Pathogen][8] `git clone https://github.com/edkolev/tmuxline.vim ~/.vim/bundle/tmuxline.vim` +- [Vundle][9] `Bundle 'edkolev/tmuxline.vim'` +- [NeoBundle][10] `NeoBundle 'edkolev/tmuxline.vim'` +- [Vim-Plug][14] `Plug 'edkolev/tmuxline.vim'` + +## Inspired by + +- Paul Rouget's [desktop setup][1] +- Bailey Ling's [vim-airline][2] + +## Rationale + +Vimscript wasn't my first choice of language for this plugin. Arguably, bash would have been better suited for this task. I chose vimscript because: +- its data scructures (arrays, hashes) are better than their bash counterparts (easier to write, to maintain). So maintaining your tmux statusline as a vim hash would be easier +- vim has (better) package managers + +Somewhat-similar plugins: +- [powerline][3] is a great project. Still, my [Raspberry Pi][5] chokes while executing python every [2 seconds][6] (I haven't tried powerline's daemon mode). I also find it a bit hard to personalize +- [tmux-powerline][4] doesn't focus on easy customization but on adding extra information (segments) in tmux (gmail, weather, earthquake warnings, etc) + +## License + +MIT License. Copyright (c) 2013-2014 Evgeni Kolev. + +[1]: http://paulrouget.com/e/myconf +[2]: https://github.com/bling/vim-airline +[3]: https://github.com/Lokaltog/powerline +[4]: https://github.com/erikw/tmux-powerline +[5]: http://www.raspberrypi.org/ +[6]: https://github.com/Lokaltog/powerline/blob/82842e015cda89fb48b1256d34c53f964e2fa151/powerline/bindings/tmux/powerline.conf#L4 +[7]: https://github.com/bling/vim-airline +[8]: https://github.com/tpope/vim-pathogen +[9]: https://github.com/gmarik/vundle +[10]: https://github.com/Shougo/neobundle.vim +[11]: https://github.com/bling/vim-airline#tmuxline +[12]: https://github.com/itchyny/lightline.vim +[13]: http://vimdoc.sourceforge.net/htmldoc/options.html#'statusline' +[14]: https://github.com/junegunn/vim-plug + diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline.vim new file mode 100644 index 0000000..4e51957 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline.vim @@ -0,0 +1,245 @@ +" The MIT License (MIT) +" +" Copyright (c) 2013-2014 Evgeni Kolev + +let s:default_theme = 'powerline' +let s:default_preset = 'powerline' +let s:default_status_justify = 'centre' + +let s:powerline_separators = { + \ 'left' : '', + \ 'left_alt': '', + \ 'right' : '', + \ 'right_alt' : '', + \ 'space' : ' '} + +let s:simple_separators = { + \ 'left' : '', + \ 'left_alt': '|', + \ 'right' : '', + \ 'right_alt' : '|', + \ 'space' : ' '} + +let s:snapshot = [] + +fun! tmuxline#get_separators() + let use_powerline_separators = get(g:, 'tmuxline_powerline_separators', 1) + let separators = use_powerline_separators ? s:powerline_separators : s:simple_separators + + return extend(separators, get(g:, 'tmuxline_separators', {})) +endfun + +" wrapper around four builders, tmux settings +fun! tmuxline#new() + let bar = {} + let bar.left = tmuxline#builder#new() + let bar.right = tmuxline#builder#new() + let bar.win = tmuxline#builder#new() + let bar.cwin = tmuxline#builder#new() + let bar.options = {} + let bar.win_options = {} + return bar +endfun + +fun! tmuxline#set_statusline(...) abort + let theme = get(a:, 1, get(g:, 'tmuxline_theme', s:default_theme)) + let preset = get(a:, 2, get(g:, 'tmuxline_preset', s:default_preset)) + + try + call tmuxline#set_statusline_theme_and_preset(theme, preset) + catch /^tmuxline:/ + echohl ErrorMsg | echomsg v:exception | echohl None + endtry +endfun + +fun! tmuxline#set_statusline_simple(...) abort + let colors = tmuxline#util#get_colors_from_vim_statusline() + + let variant = empty(a:000) ? '1' : a:1 + + if (variant == 1) + let [fg, bg, attr] = colors.statusline_nc + let [curr_fg, curr_bg, curr_attr] = colors.statusline + elseif (variant == 2) + let [fg, bg, attr] = colors.statusline + let [curr_fg, curr_bg, curr_attr] = colors.statusline_nc + elseif (variant == 3) + let fg = colors.statusline[0] + let bg = colors.statusline[1] + let attr = '' + let curr_fg = colors.statusline[0] + let curr_bg = colors.statusline[1] + let curr_attr = 'reverse' + elseif (variant == 4) + let [fg, bg, attr] = colors.statusline_nc + let [curr_fg, curr_bg, curr_attr] = colors.statusline_nc + else + echohl ErrorMsg | echomsg "tmuxline: invalid variant" | echohl None + endif + + let attr = len(attr) ? ',' . attr : attr + let curr_attr = len(curr_attr) ? ',' . curr_attr : curr_attr + + let line_settings = [ + \ 'set -g status-style fg=colour' . fg . ',bg=colour' . bg . attr, + \ 'set -g window-status-current-style fg=colour' . curr_fg . ',bg=colour' . curr_bg . curr_attr] + + try + call tmuxline#apply(line_settings) + catch /^tmuxline:/ + echohl ErrorMsg | echomsg v:exception | echohl None + endtry +endfun + +fun! tmuxline#set_statusline_theme_and_preset(theme, preset) + let line = tmuxline#load_line(a:preset) + let colors = tmuxline#load_colors(a:theme) + let separators = tmuxline#get_separators() + + let line_settings = tmuxline#get_line_settings(line, colors, separators) + + call tmuxline#apply(line_settings) +endfun + +fun! tmuxline#load_colors(source) abort + if type(a:source) == type("") + let colors = tmuxline#util#load_colors_from_theme(a:source) + elseif type(a:source) == type({}) + let colors = tmuxline#util#load_colors_from_hash(a:source) + else + throw "Invalid type of g:tmuxline_preset" + endif + return colors +endfun + +fun! tmuxline#load_line(source) abort + if type(a:source) == type("") + let builder = tmuxline#util#load_line_from_preset(a:source) + elseif type(a:source) == type({}) + let builder = tmuxline#util#create_line_from_hash(a:source) + else + throw "Invalid type of g:tmuxline_preset" + endif + return builder +endfun + +fun! tmuxline#apply(line_settings) abort + let temp_file = tempname() + try + call writefile(a:line_settings, temp_file) + call system("tmux source " . tmuxline#util#wrap_in_quotes(temp_file)) + finally + call delete(temp_file) + endtry + + let s:snapshot = a:line_settings +endfun + +fun! tmuxline#snapshot(file, overwrite) abort + let file = fnamemodify(a:file, ":p") + let dir = fnamemodify(file, ':h') + + if (len(s:snapshot) == 0) + echohl ErrorMsg | echomsg ":Tmuxline should be executed before :TmuxlineSnapshot" | echohl None + return + endif + + if empty(file) + throw "Bad file name: \"" . file . "\"" + elseif (filewritable(dir) != 2) + throw "Cannot write to directory \"" . dir . "\"" + elseif (glob(file) || filereadable(file)) && !a:overwrite + echohl ErrorMsg | echomsg "File exists (add ! to override)" | echohl None + return + endif + + let lines = [] + let lines += [ '# This tmux statusbar config was created by tmuxline.vim'] + let lines += [ '# on ' . strftime("%a, %d %b %Y") ] + let lines += [ '' ] + let lines += s:snapshot + + call writefile(lines, file) +endfun + +fun! tmuxline#get_line_settings(line, theme, separators) abort + let statusline_config = tmuxline#get_statusline_config(a:line, a:theme, a:separators) + let general_config = tmuxline#get_global_config(a:line, a:theme) + return general_config + statusline_config +endfun + +fun! tmuxline#get_statusline_config(line, theme, separators) + let left = a:line.left.build(a:theme, a:separators) + let right = a:line.right.build(a:theme, a:separators) + let win = a:line.win.build(a:theme, a:separators) + let cwin = a:line.cwin.build(a:theme, a:separators) + + return [ + \ 'set -g status-left ' . tmuxline#util#wrap_in_quotes(left), + \ 'set -g status-right ' . tmuxline#util#wrap_in_quotes(right), + \ 'setw -g window-status-format ' . tmuxline#util#wrap_in_quotes(win), + \ 'setw -g window-status-current-format ' . tmuxline#util#wrap_in_quotes(cwin)] +endfun + +fun! tmuxline#get_global_config(line, theme) + let bg = tmuxline#util#normalize_color(a:theme.bg[1]) + let message_bg = tmuxline#util#normalize_color(a:theme.cwin[1]) + let message_fg = tmuxline#util#normalize_color(a:theme.cwin[0]) + let pane_border = has_key(a:theme, 'pane',) ? tmuxline#util#normalize_color(a:theme.pane[0]) : tmuxline#util#normalize_color(a:theme.b[1]) + let pane_active_border = has_key(a:theme, 'cpane',) ? tmuxline#util#normalize_color(a:theme.cpane[0]) : tmuxline#util#normalize_color(a:theme.a[1]) + let status_justify = get(g:, 'tmuxline_status_justify', s:default_status_justify) + + let window = tmuxline#util#get_color_definition_from_theme('win', a:theme) + let window_fg = window[0] + let window_bg = window[1] + let window_attr = len(window[2]) ? window[2] : 'none' + + let window_activity = tmuxline#util#get_color_definition_from_theme('win.activity', a:theme) + if !has_key(a:theme, 'win.activity') | + let window_activity[2] = 'underscore' + endif + let window_activity_fg = window_activity[0] + let window_activity_bg = window_activity[1] + let window_activity_attr = len(window_activity[2]) ? window_activity[2] : 'none' + + let misc_options = { + \ 'status-style' : printf('none,bg=%s', bg), + \ 'message-style' : printf('fg=%s,bg=%s', message_fg, message_bg), + \ 'message-command-style' : printf('fg=%s,bg=%s', message_fg, message_bg), + \ 'pane-border-style' : printf('fg=%s', pane_border), + \ 'pane-active-border-style' : printf('fg=%s', pane_active_border), + \ 'status-justify' : status_justify, + \ 'status-left-length' : 100, + \ 'status-right-length' : 100, + \ 'status' : 'on', + \ 'status-right-style' : 'none', + \ 'status-left-style' : 'none'} + let win_options = { + \ 'window-status-style' : printf('%s,fg=%s,bg=%s', window_attr, window_fg, window_bg), + \ 'window-status-activity-style': printf('%s,fg=%s,bg=%s', window_activity_attr, window_activity_fg, window_activity_bg), + \ 'window-status-separator' : ''} + + call extend(misc_options, a:line.options) + call extend(win_options, a:line.win_options) + + let global_config = [] + for [tmux_option, value] in items(misc_options) + let global_config += [ 'set -g ' . tmux_option . ' ' . tmuxline#util#wrap_in_quotes(value) ] + endfor + for [tmux_option, value] in items(win_options) + let global_config += [ 'setw -g ' . tmux_option . ' ' . tmuxline#util#wrap_in_quotes(value) ] + endfor + + return global_config +endfun + +fun! tmuxline#set_theme(theme) abort + let preset = get(g:, 'tmuxline_preset', s:default_preset) + + let line = tmuxline#load_line(preset) + let separators = tmuxline#get_separators() + let line_settings = tmuxline#get_line_settings(line, a:theme, separators) + + call tmuxline#apply(line_settings) +endfun + diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/api.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/api.vim new file mode 100644 index 0000000..607b3b6 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/api.vim @@ -0,0 +1,15 @@ +" The MIT License (MIT) +" +" Copyright (c) 2013-2014 Evgeni Kolev + +fun! tmuxline#api#set_theme(theme) + return tmuxline#set_theme(a:theme) +endfun + +fun! tmuxline#api#create_theme_from_airline(mode_palette) + return tmuxline#util#create_theme_from_airline(a:mode_palette) +endfun + +fun! tmuxline#api#snapshot(file) + return tmuxline#snapshot(a:file, 1) +endfun diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/builder.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/builder.vim new file mode 100644 index 0000000..bae65f7 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/builder.vim @@ -0,0 +1,84 @@ +" The MIT License (MIT) +" +" Copyright (c) 2013-2014 Evgeni Kolev + +let s:builder = {} + +let s:TEXT = 1 +let s:LEFT_ALT_SEP = 2 +let s:RIGHT_ALT_SEP = 3 +let s:LEFT_SEP = 4 +let s:RIGHT_SEP = 5 + +let s:SEP_ATTRIBUTES = 'nobold,nounderscore,noitalics' + +fun! s:builder.add(style, text) + call add(self._contents, [s:TEXT ,a:style, a:text]) +endfun + +fun! s:builder.add_left_alt_sep() + call add(self._contents, [s:LEFT_ALT_SEP, '', '']) +endfun + +fun! s:builder.add_left_sep() + call add(self._contents, [s:LEFT_SEP, '', '']) +endfun + +fun! s:builder.add_right_alt_sep() + call add(self._contents, [s:RIGHT_ALT_SEP, '', '']) +endfun + +fun! s:builder.add_right_sep() + call add(self._contents, [s:RIGHT_SEP, '', '']) +endfun + +fun! s:builder.build(theme, separators) abort + let line = '' + let pending_separator = '' + let last_style = 'bg' + let space = a:separators.space + for [type, style, text] in self._contents + if pending_separator + let line .= s:make_separator(last_style, style, pending_separator, a:separators, a:theme) + let pending_separator = '' + endif + if type == s:TEXT + let preceeding_space = matchend(line, ' $') > 0 ? '' : space + if last_style == style + let line .= preceeding_space . text . space + elseif len(text) > 0 + let color = tmuxline#util#get_color_from_theme(style, a:theme) + let line .= color . preceeding_space . text . space + endif + elseif type == s:LEFT_ALT_SEP + let line .= a:separators.left_alt + elseif type == s:RIGHT_ALT_SEP + let line .= a:separators.right_alt + elseif type == s:RIGHT_SEP || type == s:LEFT_SEP + let pending_separator = type + endif + + let last_style = len(style) ? style : last_style + endfor + + if pending_separator + let line .= s:make_separator(last_style, 'bg', pending_separator, a:separators, a:theme) + endif + return line +endfun + +fun! s:make_separator(from_style, to_style, separator_type, separators, theme) abort + let from_color = tmuxline#util#get_color_definition_from_theme(a:from_style, a:theme) + let to_color = tmuxline#util#get_color_definition_from_theme(a:to_style, a:theme) + let [fg, bg] = a:separator_type == s:LEFT_SEP ? [ from_color[1], to_color[1] ] : [ to_color[1], from_color[1] ] + let separator = a:separator_type == s:LEFT_SEP ? a:separators.left : a:separators.right + return tmuxline#util#tmux_color_attr(fg, bg, s:SEP_ATTRIBUTES) . separator +endfun + +fun! tmuxline#builder#new() + let builder = copy(s:builder) + let builder._contents = [] + return builder +endfun + +" vim: et ts=4 sts=4 sw=4 diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/command_completion.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/command_completion.vim new file mode 100644 index 0000000..b217eaa --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/command_completion.vim @@ -0,0 +1,30 @@ +" The MIT License (MIT) +" +" Copyright (c) 2013-2014 Evgeni Kolev + +function! s:complete_themes(A,L,P) + let files = split(globpath(&rtp, 'autoload/tmuxline/themes/' . a:A . '*'), "\n") + return map(files, 'fnamemodify(v:val, ":t:r")') +endfunction + +function! s:complete_presets(A,L,P) + let files = split(globpath(&rtp, 'autoload/tmuxline/presets/' . a:A . '*'), "\n") + return map(files, 'fnamemodify(v:val, ":t:r")') +endfunction + +function! tmuxline#command_completion#complete_themes_and_presets(A,L,P) + let pre = a:L[0 : a:P-1] + + let theme = matchstr(pre, '\S*\s\+\zs\(\S\+\)\ze\s') + if theme ==# '' + return s:complete_themes(a:A, a:L, a:P) + endif + + let preset = matchstr(pre, '\S*\s\+\S\+\s\+\zs\(\S\+\)\ze\s') + if preset ==# '' + return s:complete_presets(a:A, a:L, a:P) + endif + + return [] +endfunction + diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/crosshair.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/crosshair.vim new file mode 100644 index 0000000..26f59da --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/crosshair.vim @@ -0,0 +1,28 @@ +fun! tmuxline#presets#crosshair#get() + let bar = tmuxline#new() + + call bar.left.add('a', '#S') + call bar.left.add_left_sep() + call bar.left.add('c', '%H:%M') + + call bar.right.add('x', '%d %b') + call bar.right.add_right_sep() + call bar.right.add('z', '#h') + + call bar.win.add('win', '#I | #W') + + call bar.cwin.add_left_sep() + call bar.cwin.add('cwin', '#I') + call bar.cwin.add_left_alt_sep() + call bar.cwin.add('cwin', '#W') + call bar.cwin.add_right_alt_sep() + call bar.cwin.add('cwin', '#P') + call bar.cwin.add_right_sep() + + let bar.options['status-justify'] = 'centre' + let bar.win_options['window-status-activity-style'] = 'none' + let bar.win_options['window-status-separator'] = ' ' + + return bar +endfun + diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/full.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/full.vim new file mode 100644 index 0000000..4b84a75 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/full.vim @@ -0,0 +1,11 @@ +fun! tmuxline#presets#full#get() + return tmuxline#util#create_line_from_hash({ + \ 'a': '#S', + \ 'b': '#F', + \ 'c': '#W', + \ 'win': ['#I', '#W'], + \ 'cwin': ['#I', '#W'], + \ 'x': '%a', + \ 'y': ['%b %d', '%R'], + \ 'z': '#H'}) +endfun diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/minimal.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/minimal.vim new file mode 100644 index 0000000..d6a368d --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/minimal.vim @@ -0,0 +1,16 @@ +fun! tmuxline#presets#minimal#get() + + " tmux defaults: + " status-right %R + " status-left #S + " windows #I #W + + return tmuxline#util#create_line_from_hash({ + \ 'a': '#S', + \ 'win': '#I #W', + \ 'cwin': '#I #W', + \ 'z': '%R', + \ 'options': { + \'status-justify': 'left'} + \}) +endfun diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/nightly_fox.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/nightly_fox.vim new file mode 100644 index 0000000..bb7e7d9 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/nightly_fox.vim @@ -0,0 +1,18 @@ +" inspired by http://paulrouget.com/e/myconf/ +fun! tmuxline#presets#nightly_fox#get() + let bar = tmuxline#new() + + call bar.right.add('z', '%H:%M') + + call bar.win.add('win.dim', '#I') + call bar.win.add('win', '#W') + + call bar.cwin.add_left_sep() + call bar.cwin.add('cwin', '#W') + call bar.cwin.add_left_sep() + + let bar.options['status-justify'] = 'left' + let bar.win_options['window-status-activity-style'] = 'none' + + return bar +endfun diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/powerline.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/powerline.vim new file mode 100644 index 0000000..28a9317 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/powerline.vim @@ -0,0 +1,30 @@ +fun! tmuxline#presets#powerline#get() + let bar = tmuxline#new() + + call bar.left.add('a', '#S') + call bar.left.add_left_sep() + + call bar.right.add_right_sep() + call bar.right.add('y', '%Y-%m-%d') + call bar.right.add_right_alt_sep() + call bar.right.add('y', '%H:%M') + call bar.right.add_right_sep() + + call bar.right.add('z', '#h') + + call bar.win.add('win.dim', '#I') + call bar.win.add_left_alt_sep() + call bar.win.add('win', '#W') + + call bar.cwin.add_left_sep() + call bar.cwin.add('cwin.dim', '#I') + call bar.cwin.add_left_alt_sep() + call bar.cwin.add('cwin', '#W') + call bar.cwin.add_left_sep() + + let bar.options['status-justify'] = 'left' + let bar.win_options['window-status-activity-style'] = 'none' + + return bar +endfun + diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/righteous.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/righteous.vim new file mode 100644 index 0000000..8bdb136 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/righteous.vim @@ -0,0 +1,10 @@ +fun! tmuxline#presets#righteous#get() + return tmuxline#util#create_line_from_hash({ + \'a' : '#S', + \'b' : ['#I:#P','#F'], + \'c' : ['#H'], + \'win' : ['#I','#W'], + \'cwin' : ['#I','#W'], + \'y' : '%H:%M %d-%b-%y', + \'options' : {'status-justify' : 'right'}}) +endfun diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/tmux.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/tmux.vim new file mode 100644 index 0000000..490d558 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/presets/tmux.vim @@ -0,0 +1,16 @@ +fun! tmuxline#presets#tmux#get() + + " tmux defaults: + " status-right "#22T" %H:%M %d-%b-%y + " status-left [#S] + " windows #I:#W#F + + return tmuxline#util#create_line_from_hash({ + \ 'a': '[#S]', + \ 'win': '#I:#W#F', + \ 'cwin': '#I:#W#F', + \ 'z': '"#22T" %H:%M %d-%b-%y', + \ 'options': { + \'status-justify': 'left'} + \}) +endfun diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/airline.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/airline.vim new file mode 100644 index 0000000..386c583 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/airline.vim @@ -0,0 +1,13 @@ + +fun! tmuxline#themes#airline#get() abort + if !has_key(g:, 'airline_theme') + throw "tmuxline: Can't load theme from airline, g:airline_theme isn't defined. Is airline loaded?" + endif + if !has_key(g:, 'airline#themes#' . g:airline_theme . '#palette') + throw "tmuxline: Can't load theme from airline, 'g:airline#themes#" . g:airline_theme . "#palette' isn't defined. Is airline loaded?" + endif + + let mode = 'normal' + let mode_palette = g:airline#themes#{g:airline_theme}#palette[mode] + return tmuxline#util#create_theme_from_airline(mode_palette) +endfun diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/airline_insert.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/airline_insert.vim new file mode 100644 index 0000000..a8ac02a --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/airline_insert.vim @@ -0,0 +1,13 @@ + +fun! tmuxline#themes#airline_insert#get() abort + if !has_key(g:, 'airline_theme') + throw "tmuxline: Can't load theme from airline, g:airline_theme isn't defined. Is airline loaded?" + endif + if !has_key(g:, 'airline#themes#' . g:airline_theme . '#palette') + throw "tmuxline: Can't load theme from airline, 'g:airline#themes#" . g:airline_theme . "#palette' isn't defined. Is airline loaded?" + endif + + let mode = 'insert' + let mode_palette = g:airline#themes#{g:airline_theme}#palette[mode] + return tmuxline#util#create_theme_from_airline(mode_palette) +endfun diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/airline_visual.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/airline_visual.vim new file mode 100644 index 0000000..20726af --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/airline_visual.vim @@ -0,0 +1,13 @@ + +fun! tmuxline#themes#airline_visual#get() abort + if !has_key(g:, 'airline_theme') + throw "tmuxline: Can't load theme from airline, g:airline_theme isn't defined. Is airline loaded?" + endif + if !has_key(g:, 'airline#themes#' . g:airline_theme . '#palette') + throw "tmuxline: Can't load theme from airline, 'g:airline#themes#" . g:airline_theme . "#palette' isn't defined. Is airline loaded?" + endif + + let mode = 'visual' + let mode_palette = g:airline#themes#{g:airline_theme}#palette[mode] + return tmuxline#util#create_theme_from_airline(mode_palette) +endfun diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/iceberg.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/iceberg.vim new file mode 100644 index 0000000..4b999e2 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/iceberg.vim @@ -0,0 +1,14 @@ + +function! tmuxline#themes#iceberg#get() + return { + \ 'a' : [ '59', '74' ], + \ 'b' : [ '153', '59'], + \ 'c' : [ '74', '236'], + \ 'x' : [ '74', '236'], + \ 'y' : [ '153', '59'], + \ 'z' : [ '59', '74' ], + \ 'bg' : [ '74', '236'], + \ 'win' : [ '74', '236'], + \ 'win.activity' : [ '255', '236'], + \ 'cwin' : [ '153', '59']} +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/jellybeans.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/jellybeans.vim new file mode 100644 index 0000000..7526e23 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/jellybeans.vim @@ -0,0 +1,16 @@ +" +" For use with the lightline.vim jellybeans statusline theme. +" +function! tmuxline#themes#jellybeans#get() + return { +\ 'bg' : [ 244, 236 ], +\ 'a' : [ 236, 103 ], +\ 'b' : [ 253, 239 ], +\ 'c' : [ 244, 236 ], +\ 'win' : [ 103, 236 ], +\ 'cwin' : [ 236, 103 ], +\ 'x' : [ 244, 236 ], +\ 'y' : [ 253, 239 ], +\ 'z' : [ 236, 103 ] +\ } +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/lightline.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/lightline.vim new file mode 100644 index 0000000..2fa94d0 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/lightline.vim @@ -0,0 +1,10 @@ + +function! tmuxline#themes#lightline#get() abort + if !exists('*lightline#palette') + throw "tmuxline: Can't load theme from lightline, function lightline#palette() doesn't exist. Is latest lightline loaded?" + endif + + let palette = lightline#palette() + let mode = 'normal' + return tmuxline#util#create_theme_from_lightline(palette[mode]) +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/lightline_insert.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/lightline_insert.vim new file mode 100644 index 0000000..867b499 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/lightline_insert.vim @@ -0,0 +1,10 @@ +function! tmuxline#themes#lightline_insert#get() abort + if !exists('*lightline#palette') + throw "tmuxline: Can't load theme from lightline, function lightline#palette() doesn't exist. Is latest lightline loaded?" + endif + + let palette = lightline#palette() + let pallete_for_insert = extend( deepcopy(palette.normal), palette.insert ) + + return tmuxline#util#create_theme_from_lightline(pallete_for_insert) +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/lightline_visual.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/lightline_visual.vim new file mode 100644 index 0000000..bceb069 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/lightline_visual.vim @@ -0,0 +1,11 @@ + +function! tmuxline#themes#lightline_visual#get() abort + if !exists('*lightline#palette') + throw "tmuxline: Can't load theme from lightline, function lightline#palette() doesn't exist. Is latest lightline loaded?" + endif + + let palette = lightline#palette() + let palette_for_visual = extend( deepcopy(palette.normal), palette.visual ) + + return tmuxline#util#create_theme_from_lightline(palette_for_visual) +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/nightly_fox.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/nightly_fox.vim new file mode 100644 index 0000000..58bece2 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/nightly_fox.vim @@ -0,0 +1,17 @@ + +" inspired by http://paulrouget.com/e/myconf/ +function! tmuxline#themes#nightly_fox#get() + return { + \ 'a' : [ 198, 16 ], + \ 'b' : [ 208, 16 ], + \ 'c' : [ 208, 16 ], + \ 'x.dim' : [ 243, 16 ], + \ 'x' : [ 208, 16 ], + \ 'y.dim' : [ 243, 16 ], + \ 'y' : [ 208, 16 ], + \ 'z' : [ 198, 16 ], + \ 'bg' : [ 208, 16], + \ 'win' : [ 231, 16 ], + \ 'win.dim' : [ 243, 16 ], + \ 'cwin' : [ 16, 231, 'bold']} +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/powerline.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/powerline.vim new file mode 100644 index 0000000..be26ccc --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/powerline.vim @@ -0,0 +1,15 @@ + +function! tmuxline#themes#powerline#get() + return { + \ 'a' : [ '16', '254', 'bold' ], + \ 'b' : [ '237', '240' ], + \ 'c' : [ '247', '236'], + \ 'x' : [ '250', '232' ], + \ 'y' : [ '247', '236'], + \ 'z' : [ '235', '252' ], + \ 'bg' : [ '247', '234'], + \ 'win' : [ '250', '234' ], + \ 'win.dim' : [ '244', '234' ], + \ 'cwin' : [ '231', '31', 'bold' ], + \ 'cwin.dim' : [ '117', '31' ]} +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_powerline.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_powerline.vim new file mode 100644 index 0000000..5f9037f --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_powerline.vim @@ -0,0 +1,17 @@ + +function! tmuxline#themes#vim_powerline#get() + + return { + \ 'a': [ 22, 148, 'bold' ], + \ 'b': [ 247 , 236], + \ 'c': [ 247, 236], + \ 'x': [ 247, 236], + \ 'y': [ 190, 240], + \ 'z': [ 235, 252 ], + \ 'bg': [ 247, 233], + \ 'win': [ 250, 233 ], + \ 'win.activity': [ 255, 233, 'bold' ], + \ 'win.dim': [ 250, 233, 'dim' ], + \ 'cwin': [ 22, 148 ], + \ 'cwin.dim': [ 22, 148, 'dim']} +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_statusline_1.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_statusline_1.vim new file mode 100644 index 0000000..010902d --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_statusline_1.vim @@ -0,0 +1,16 @@ + +function! tmuxline#themes#vim_statusline_1#get() abort + let colors = tmuxline#util#get_colors_from_vim_statusline() + return { + \ 'a' : colors.statusline_nc, + \ 'b' : colors.statusline_nc, + \ 'c' : colors.statusline_nc, + \ 'x' : colors.statusline_nc, + \ 'y' : colors.statusline_nc, + \ 'z' : colors.statusline_nc, + \ 'bg' : colors.statusline_nc, + \ 'win' : colors.statusline_nc, + \ 'cwin' : colors.statusline, + \ 'pane' : [ colors.statusline_nc[1] ], + \ 'cpane': [ colors.statusline[1] ]} +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_statusline_2.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_statusline_2.vim new file mode 100644 index 0000000..9d44784 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_statusline_2.vim @@ -0,0 +1,16 @@ + +function! tmuxline#themes#vim_statusline_2#get() abort + let colors = tmuxline#util#get_colors_from_vim_statusline() + return { + \ 'a' : colors.statusline, + \ 'b' : colors.statusline, + \ 'c' : colors.statusline, + \ 'x' : colors.statusline, + \ 'y' : colors.statusline, + \ 'z' : colors.statusline, + \ 'bg' : colors.statusline, + \ 'win' : colors.statusline, + \ 'cwin' : colors.statusline_nc, + \ 'pane' : [ colors.statusline_nc[1] ], + \ 'cpane': [ colors.statusline[1] ]} +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_statusline_3.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_statusline_3.vim new file mode 100644 index 0000000..5206369 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/vim_statusline_3.vim @@ -0,0 +1,16 @@ + +function! tmuxline#themes#vim_statusline_3#get() abort + let colors = tmuxline#util#get_colors_from_vim_statusline() + return { + \ 'a' : colors.reversed_statusline , + \ 'b' : colors.statusline , + \ 'c' : colors.statusline_nc , + \ 'x' : colors.statusline_nc , + \ 'y' : colors.statusline , + \ 'z' : colors.reversed_statusline , + \ 'bg' : colors.statusline_nc , + \ 'win' : colors.statusline_nc , + \ 'cwin' : colors.statusline , + \ 'pane' : colors.reversed_statusline_nc , + \ 'cpane': colors.reversed_statusline } +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/zenburn.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/zenburn.vim new file mode 100644 index 0000000..446216a --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/themes/zenburn.vim @@ -0,0 +1,13 @@ + +function! tmuxline#themes#zenburn#get() + return { + \'a' : [ 237, 109 ], + \'b' : [ 109, 236 ], + \'bg' : [ 240, 237 ], + \'c' : [ 240, 237 ], + \'win' : [ 109, 237 ], + \'cwin' : [ 237, 109 ], + \'x' : [ 240, 237 ], + \'y' : [ 109, 236 ], + \'z' : [ 237, 109 ]} +endfunc diff --git a/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/util.vim b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/util.vim new file mode 100644 index 0000000..417637e --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/autoload/tmuxline/util.vim @@ -0,0 +1,220 @@ +" The MIT License (MIT) +" +" Copyright (c) 2013-2014 Evgeni Kolev + +let s:DEFAULT_COLOR = 'default' +let s:DEFAULT_COLOR_AND_ATTRIBUTES = '#[default]' +let s:FG = 0 +let s:BG = 1 +let s:ATTR = 2 + +fun! tmuxline#util#tmux_color_attr(fg, bg, attr) + let fg = tmuxline#util#normalize_color(a:fg) + let bg = tmuxline#util#normalize_color(a:bg) + let color = 'fg=' . fg + let color .= ',bg=' . bg + let color .= len( a:attr ) ? ',' : '' + let color .= a:attr + return '#[' . color . ']' +endfun + +fun! tmuxline#util#normalize_color(color) + " prepend 'colour' to numbers + return a:color =~ '^\d\+$' ? "colour" . a:color : a:color +endfun + +fun! tmuxline#util#normalize_color_definition(color_definition) + let fg = a:color_definition[s:FG] + let bg = a:color_definition[s:BG] + let attr = get(a:color_definition, s:ATTR, '') + + return [ tmuxline#util#normalize_color(fg), tmuxline#util#normalize_color(bg), attr ] +endfun + +fun! tmuxline#util#wrap_in_quotes(text) + return '"' . escape(a:text, '"') . '"' +endfun + +fun! tmuxline#util#get_color_definition_from_theme(color_name, theme) + if has_key(a:theme, a:color_name) + let color_definition = a:theme[a:color_name] + else + let downgraded_color_name = substitute(a:color_name, '\..*', '', '') + if !has_key(a:theme, downgraded_color_name) + throw "tmuxline: Color definition '" . a:color_name . "' not found in theme" + else + let color_definition = a:theme[downgraded_color_name] + endif + endif + + return tmuxline#util#normalize_color_definition(color_definition) +endfun + +fun! tmuxline#util#get_color_from_theme(color_name, theme) abort + if a:color_name ==# s:DEFAULT_COLOR + return s:DEFAULT_COLOR_AND_ATTRIBUTES + endif + + let color_definition = tmuxline#util#get_color_definition_from_theme(a:color_name, a:theme) + let [fg, bg, attr] = color_definition[s:FG : s:ATTR] + + return tmuxline#util#tmux_color_attr(fg, bg, attr) +endfun + +fun! tmuxline#util#load_colors_from_theme(theme_name) abort + try + let colors = tmuxline#themes#{a:theme_name}#get() + catch /^Vim(let):E117: Unknown function: tmuxline#themes#.*#get/ + throw "tmuxline: Theme cannot be found '" . a:theme_name . "'" + endtry + return colors +endfun + +fun! tmuxline#util#load_colors_from_hash(hash) abort + for required_color_name in ['a', 'b', 'c', 'x', 'y', 'z', 'win', 'cwin', 'bg'] + if !has_key(a:hash, required_color_name) + throw "tmuxline: Theme must define color for '" . required_color_name . "'" + endif + endfor + return deepcopy(a:hash) +endfun + +fun! tmuxline#util#load_line_from_preset(preset_name) abort + try + let line = tmuxline#presets#{a:preset_name}#get() + catch /^Vim(let):E117: Unknown function: tmuxline#presets#.*#get/ + throw "tmuxline: Preset cannot be found '" . a:preset_name . "'" + endtry + return line +endfun + +fun! tmuxline#util#create_line_from_hash(hash) abort + let hash = deepcopy(a:hash) + + let bar = tmuxline#new() + let bar.options = get(hash, 'options', {}) + let bar.win_options = get(hash, 'win_options', {}) + let is_win_list_right = get(bar.options, 'status-justify', '') ==# 'right' + let win_sep_type = is_win_list_right ? 'right' : 'left' + + for key in filter(['a','b','c', 'x', 'y', 'z', 'win', 'cwin'], 'has_key(hash, v:val)') + let value = hash[key] + let hash[key] = type(value) == type([]) ? value : [value] + call map(hash[key], 'escape(v:val, "\"")') + unlet value + endfor + + for key in filter(['a','b','c'], 'has_key(hash, v:val)') + let parts_code = map(copy(hash[key]), '"call bar.left.add(\"" . key . "\", \"" . v:val . "\")"') + exec join(parts_code, '| call bar.left.add_left_alt_sep() |') + call bar.left.add_left_sep() + endfor + + for key in filter(['x','y','z'], 'has_key(hash, v:val)') + let parts_code = map(copy(hash[key]), '"call bar.right.add(\"" . key . "\", \"" . v:val . "\")"') + call bar.right.add_right_sep() + exec join(parts_code, '| call bar.right.add_right_alt_sep() |') + endfor + + for key in filter(['win'], 'has_key(hash, v:val)') + let parts_code = map(copy(hash[key]), '"call bar.win.add(\"" . s:DEFAULT_COLOR . "\", \"" . v:val . "\")"') + exec 'call bar.win.add_' . win_sep_type . '_sep() | call bar.win.add(key, "")' + exec join(parts_code, '| call bar.win.add_' . win_sep_type . '_alt_sep() |') + exec 'call bar.win.add(key, "") | call bar.win.add_' . win_sep_type . '_sep()' + endfor + + for key in filter(['cwin'], 'has_key(hash, v:val)') + let parts_code = map(copy(hash[key]), '"call bar.cwin.add(\"" . key . "\", \"" . v:val . "\")"') + exec 'call bar.cwin.add_' . win_sep_type . '_sep()' + exec join(parts_code, '| call bar.cwin.add_' . win_sep_type . '_alt_sep() |') + exec 'call bar.cwin.add_' . win_sep_type . '_sep()' + endfor + + return bar +endfun + +fun! tmuxline#util#get_colors_from_vim_statusline() abort + let stl_fg = synIDattr(hlID('StatusLine') , 'fg') + let stl_bg = synIDattr(hlID('StatusLine') , 'bg') + let stl_reverse = synIDattr(hlID('StatusLine') , 'reverse') + + let stl_nc_fg = synIDattr(hlID('StatusLineNC'), 'fg') + let stl_nc_bg = synIDattr(hlID('StatusLineNC'), 'bg') + let stl_nc_reverse = synIDattr(hlID('StatusLineNC'), 'reverse') + + let stl_attr = synIDattr(hlID('StatusLine') , 'bold') ? 'bold' : '' + let stl_nc_attr = synIDattr(hlID('StatusLineNC'), 'bold') ? 'bold' : '' + + if stl_fg == -1 || stl_bg == -1 || stl_nc_fg == -1 || stl_nc_bg == -1 + throw "tmuxline: Can't load theme, vim's colorscheme doesn't define StatusLine/StatusLineNC highlight groups" + endif + + if stl_reverse + let [ stl_fg, stl_bg ] = [ stl_bg, stl_fg ] + endif + if stl_nc_reverse + let [ stl_nc_fg, stl_nc_bg ] = [ stl_nc_bg, stl_nc_fg ] + endif + + return { + \'statusline' : [ stl_fg, stl_bg, stl_attr ], + \'statusline_nc' : [ stl_nc_fg, stl_nc_bg, stl_nc_attr ], + \'reversed_statusline' : [ stl_bg, stl_fg, stl_attr ], + \'reversed_statusline_nc' : [ stl_nc_bg, stl_nc_fg, stl_nc_attr ]} +endfun + +fun! tmuxline#util#create_theme_from_lightline(mode_palette) + let theme = { + \'a' : a:mode_palette.left[s:FG][2:4], + \'b' : a:mode_palette.left[s:BG][2:4], + \'c' : a:mode_palette.middle[s:FG][2:4], + \'x' : a:mode_palette.middle[s:FG][2:4], + \'y' : a:mode_palette.right[s:BG][2:4], + \'z' : a:mode_palette.right[s:FG][2:4], + \'bg' : a:mode_palette.middle[s:FG][2:4], + \'cwin' : a:mode_palette.left[s:BG][2:4], + \'win' : a:mode_palette.middle[s:FG][2:4]} + call tmuxline#util#try_guess_activity_color( theme ) + return theme +endfun + +fun! tmuxline#util#create_theme_from_airline(mode_palette) + if exists("+termguicolors") && &termguicolors + let theme = { + \'a' : [a:mode_palette.airline_a[0], a:mode_palette.airline_a[1], a:mode_palette.airline_a[4]], + \'b' : [a:mode_palette.airline_b[0], a:mode_palette.airline_b[1], a:mode_palette.airline_b[4]], + \'c' : [a:mode_palette.airline_c[0], a:mode_palette.airline_c[1], a:mode_palette.airline_c[4]], + \'x' : [a:mode_palette.airline_x[0], a:mode_palette.airline_x[1], a:mode_palette.airline_x[4]], + \'y' : [a:mode_palette.airline_y[0], a:mode_palette.airline_y[1], a:mode_palette.airline_y[4]], + \'z' : [a:mode_palette.airline_z[0], a:mode_palette.airline_z[1], a:mode_palette.airline_z[4]], + \'bg' : [a:mode_palette.airline_c[0], a:mode_palette.airline_c[1], a:mode_palette.airline_c[4]], + \'cwin' : [a:mode_palette.airline_b[0], a:mode_palette.airline_b[1], a:mode_palette.airline_b[4]], + \'win' : [a:mode_palette.airline_c[0], a:mode_palette.airline_c[1], a:mode_palette.airline_c[4]]} + else + let theme = { + \'a' : a:mode_palette.airline_a[2:4], + \'b' : a:mode_palette.airline_b[2:4], + \'c' : a:mode_palette.airline_c[2:4], + \'x' : a:mode_palette.airline_x[2:4], + \'y' : a:mode_palette.airline_y[2:4], + \'z' : a:mode_palette.airline_z[2:4], + \'bg' : a:mode_palette.airline_c[2:4], + \'cwin' : a:mode_palette.airline_b[2:4], + \'win' : a:mode_palette.airline_c[2:4]} + endif + call tmuxline#util#try_guess_activity_color( theme ) + return theme +endfun + +" use background in 'a' section for windows with activity alert +" but use the color only if it's different from the other windows and the background +fun! tmuxline#util#try_guess_activity_color(theme) + let bg = a:theme.bg[s:BG] + let a_section_bg = a:theme.a[s:BG] + let win_fg = a:theme.win[s:FG] + if a_section_bg != bg && a_section_bg != win_fg + let a:theme['win.activity'] = [ a_section_bg, bg, 'none' ] + endif + + return a:theme +endfun diff --git a/_tmux/.tmux/plugins/tmuxline.vim/doc/tmuxline.txt b/_tmux/.tmux/plugins/tmuxline.vim/doc/tmuxline.txt new file mode 100644 index 0000000..d3a6645 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/doc/tmuxline.txt @@ -0,0 +1,116 @@ +*tmuxline.txt* tmux statusline generator +*tmuxline* + _ _ ~ + _ | |(_) ~ + _| |_ ____ _ _ _ _| | _ ____ _____ ~ + (_ _) \| | | ( \ / ) || | _ \| ___ | ~ + | |_| | | | |_| |) X (| || | | | | ____| ~ + \__)_|_|_|____/(_/ \_)\_)_|_| |_|_____) ~ + + Simple tmux statusline generator ~ + with support for powerline symbols ~ + and airline integration ~ + +Author: Evgeni Kolev +License: The MIT License (MIT) +Repo: http://github.com/edkolev/tmuxline.vim + +============================================================================== +COMMANDS *tmuxline-commands* + +Commands will be available if vim is inside tmux and tmux is in PATH + +:Tmuxline [theme] [preset] *:Tmuxline* + Set theme and preset. Both are optional, defaulting to g:tmuxline_theme + and g:tmuxline_preset + +:TmuxlineSnapshot[!] [file] *:TmuxlineSnapshot* + Create a file holding tmux statusline configuration. The file can be sourced + by your tmux, typically in your tmux.conf. The command must be executed + after |tmuxline| has set tmux's statusline, i.e. after executing + |:Tmuxline|. The file will not be overwritten unless bang [!] is given. + +============================================================================== +CONFIGURATION *tmuxline-configuration* + +* enable/disable usage of powerline symbols for separators (default on) > + let g:tmuxline_powerline_separators = 0 +< +* configure the preset used in the statusline. Can be a "string" holding the + name of the preset, or a hash {} holding fine-tuned configuration. The hash + can hold keys 'a,b,c' to configure the left part of the statusline, 'x,y,z' + to configure the right part, and 'win,cwin' to configure the contents of the + inactive and active window(s). tmux options and be configured using a hash + in 'options', window options can be specified with 'win_options' > + + " stock preset + let g:tmuxline_preset = 'nightly_fox' + + " custom preset with left-justified window list + let g:tmuxline_preset = { + \'a' : '#S', + \'b' : '#W', + \'c' : '#H', + \'win' : '#I #W', + \'cwin' : '#I #W', + \'x' : '%a', + \'y' : '#W %R', + \'z' : '#H', + \'options' : {'status-justify' : 'left'}} + + " custom preset with shell commands + let g:tmuxline_preset = { + \'a' : '#S', + \'c' : ['#(whoami)', '#(uptime | cut -d " " -f 1,2,3)'], + \'win' : ['#I', '#W'], + \'cwin' : ['#I', '#W', '#F'], + \'x' : '#(date)', + \'y' : ['%R', '%a', '%Y'], + \'z' : '#H'} +< +* configure which stock theme should be used by |:Tmuxline| > + let g:tmuxline_preset = 'nightly_fox' +< +* fine-tune the separators > + let g:tmuxline_separators = { + \ 'left' : '', + \ 'left_alt': '>', + \ 'right' : '', + \ 'right_alt' : '<', + \ 'space' : ' '} +< +* configure the alignment of the tmux window list; maps to the tmux command + 'set -g status-justify'. Values are 'left', 'centre', or 'right' + Default is 'centre' > + let g:tmuxline_status_justify = 'left' +< +============================================================================== +API *tmuxline-api* + +* set theme > + tmuxline#api#set_theme({ + \ 'a': ['237', '109', 'bold'], + \ 'b': ['109', '236', ''], + \ 'bg': ['240', '237', ''], + \ 'c': ['240', '237', ''], + \ 'cwin': ['109', '236', ''], + \ 'win': ['240', '237', ''], + \ 'x': ['240', '237', ''], + \ 'y': ['109', '236', ''], + \ 'z': ['237', '109', '']}) +< +* create a snapshot file of the last set statusline, overwriting the file if + it exists > + tmuxline#api#snapshot(path) +< +* create a tmuxline theme from airline's pallette for a mode > + tmuxline#api#create_theme_from_airline(mode_palette) +< +============================================================================== +LICENSE *tmuxline-license* + +The MIT License (MIT) + +Copyright (c) 2013-2014 Evgeni Kolev + +vim:tw=78:ts=8:ft=help:norl: diff --git a/_tmux/.tmux/plugins/tmuxline.vim/plugin/tmuxline.vim b/_tmux/.tmux/plugins/tmuxline.vim/plugin/tmuxline.vim new file mode 100644 index 0000000..8d86dc3 --- /dev/null +++ b/_tmux/.tmux/plugins/tmuxline.vim/plugin/tmuxline.vim @@ -0,0 +1,12 @@ +" The MIT License (MIT) +" +" Copyright (c) 2013-2014 Evgeni Kolev + +if !strlen($TMUX) || !executable('tmux') + command! -nargs=* Tmuxline echoerr ":Tmuxline should be executed in a tmux sesssion" + finish +endif + +command! -nargs=* -bar -complete=customlist,tmuxline#command_completion#complete_themes_and_presets Tmuxline call tmuxline#set_statusline() +command! -nargs=1 -bang -complete=file -bar TmuxlineSnapshot call tmuxline#snapshot(, strlen("")) +command! -nargs=? TmuxlineSimple call tmuxline#set_statusline_simple() diff --git a/_tmux/.tmux/plugins/tpm/.gitattributes b/_tmux/.tmux/plugins/tpm/.gitattributes new file mode 100644 index 0000000..80772e4 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/.gitattributes @@ -0,0 +1,9 @@ +# Force text files to have unix eols, so Windows/Cygwin does not break them +*.* eol=lf + +# These files are unfortunately not recognized as text files so +# explicitly listing them here +tpm eol=lf +bin/* eol=lf +bindings/* eol=lf +tests/* eol=lf diff --git a/_tmux/.tmux/plugins/tpm/.gitignore b/_tmux/.tmux/plugins/tpm/.gitignore new file mode 100644 index 0000000..8a94156 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/.gitignore @@ -0,0 +1,4 @@ +**/.vagrant/ +run_tests +tests/run_tests_in_isolation +tests/helpers/helpers.sh diff --git a/_tmux/.tmux/plugins/tpm/.gitmodules b/_tmux/.tmux/plugins/tpm/.gitmodules new file mode 100644 index 0000000..5e44e3c --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/.gitmodules @@ -0,0 +1,3 @@ +[submodule "lib/tmux-test"] + path = lib/tmux-test + url = https://github.com/tmux-plugins/tmux-test.git diff --git a/_tmux/.tmux/plugins/tpm/.travis.yml b/_tmux/.tmux/plugins/tpm/.travis.yml new file mode 100644 index 0000000..ac45d8b --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/.travis.yml @@ -0,0 +1,19 @@ +# generic packages and tmux +before_install: + - sudo apt-get update + - sudo apt-get install -y git-core expect + - sudo apt-get install -y python-software-properties software-properties-common + - sudo apt-get install -y libevent-dev libncurses-dev + - git clone https://github.com/tmux/tmux.git + - cd tmux + - git checkout 2.0 + - sh autogen.sh + - ./configure && make && sudo make install + +install: + - git fetch --unshallow --recurse-submodules || git fetch --recurse-submodules + # manual `git clone` required for testing `tmux-test` plugin itself + - git clone https://github.com/tmux-plugins/tmux-test lib/tmux-test; true + - lib/tmux-test/setup + +script: ./tests/run_tests_in_isolation diff --git a/_tmux/.tmux/plugins/tpm/CHANGELOG.md b/_tmux/.tmux/plugins/tpm/CHANGELOG.md new file mode 100644 index 0000000..394758d --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/CHANGELOG.md @@ -0,0 +1,83 @@ +# Changelog + +### master +- upgrade to new version of `tmux-test` +- bug: when using `emacs` copy mode, Enter does not quit screen after tpm + installation/update. Fix by making `Escape` the key for emacs mode. +- add a doc with troubleshooting instructions +- add `.gitattributes` file that forces linefeed characters (classic `\n`) as + line endings - helps with misconfigured git on windows/cygwin +- readme update: announce Cygwin support +- un-deprecate old plugin definition syntax: `set -g @tpm_plugins` + +### v3.0.0, 2015-08-03 +- refactor `shared_set_tpm_path_constant` function +- move all instructions to `docs/` dir +- add `bin/install_plugins` cli executable script +- improved test runner function +- switch to using [tmux-test](https://github.com/tmux-plugins/tmux-test) + framework +- add `bin/update_plugins` cli executable script +- refactor test `expect` scripts, make them simpler and ensure they properly + assert expectations +- refactor code that sets 'TMUX_PLUGIN_MANAGER_PATH' global env var +- stop using global variable for 'tpm path' +- support defining plugins via `set -g @plugin` in sourced files as well + +### v2.0.0, 2015-07-07 +- enable overriding default key bindings +- start using `C-c` to clear screen +- add uninstall/clean procedure and keybinding (prefix+alt+u) (@chilicuil) +- add new `set @plugin 'repo'` plugin definition syntax (@chilicuil) +- revert back to using `-g` flag in new plugin definition syntax +- permit leading whitespace with new plugin definition syntax (thanks @chilicuil) +- make sure `TMUX_PLUGIN_MANAGER_PATH` always has trailng slash +- ensure old/deprecated plugin syntax `set -g @tpm_plugins` works alongside new + `set -g @plugin` syntax + +### v1.2.2, 2015-02-08 +- set GIT_TERMINAL_PROMPT=0 when doing `git clone`, `pull` or `submodule update` + to ensure git does not prompt for username/password in any case + +### v1.2.1, 2014-11-21 +- change the way plugin name is expanded. It now uses the http username + and password by default, like this: `https://git::@github.com/`. This prevents + username and password prompt (and subsequently tmux install hanging) with old + git versions. Fixes #7. + +### v1.2.0, 2014-11-20 +- refactor tests so they can be used on travis +- add travis.yml, add travis badge to the readme + +### v1.1.0, 2014-11-19 +- if the plugin is not downloaded do not source it +- remove `PLUGINS.md`, an obsolete list of plugins +- update readme with instructions about uninstalling plugins +- tilde char and `$HOME` in `TMUX_SHARED_MANAGER_PATH` couldn't be used because + they are just plain strings. Fixing the problem by manually expanding them. +- bugfix: fragile `*.tmux` file globbing (@majutsushi) + +### v1.0.0, 2014-08-05 +- update readme because of github organization change to + [tmux-plugins](https://github.com/tmux-plugins) +- update tests to pass +- update README to suggest different first plugin +- update list of plugins in the README +- remove README 'about' section +- move key binding to the main file. Delete `key_binding.sh`. +- rename `display_message` -> `echo_message` +- installing plugins installs just new plugins. Already installed plugins aren't + updated. +- add 'update plugin' binding and functionality +- add test for updating a plugin + +### v0.0.2, 2014-07-17 +- run all *.tmux plugin files as executables +- fix all redirects to /dev/null +- fix bug: TPM shared path is created before sync (cloning plugins from github + is done) +- add test suite running in Vagrant +- add Tmux version check. `TPM` won't run if Tmux version is less than 1.9. + +### v0.0.1, 2014-05-21 +- get TPM up and running diff --git a/_tmux/.tmux/plugins/tpm/HOW_TO_PLUGIN.md b/_tmux/.tmux/plugins/tpm/HOW_TO_PLUGIN.md new file mode 100644 index 0000000..9901619 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/HOW_TO_PLUGIN.md @@ -0,0 +1,2 @@ +Instructions moved to +[docs/how_to_create_plugin.md](docs/how_to_create_plugin.md). diff --git a/_tmux/.tmux/plugins/tpm/LICENSE.md b/_tmux/.tmux/plugins/tpm/LICENSE.md new file mode 100644 index 0000000..1222865 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/LICENSE.md @@ -0,0 +1,20 @@ +MIT license +Copyright (C) 2014 Bruno Sutic + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/_tmux/.tmux/plugins/tpm/README.md b/_tmux/.tmux/plugins/tpm/README.md new file mode 100644 index 0000000..9fb8232 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/README.md @@ -0,0 +1,113 @@ +# Tmux Plugin Manager + +[![Build Status](https://travis-ci.org/tmux-plugins/tpm.svg?branch=master)](https://travis-ci.org/tmux-plugins/tpm) + +Installs and loads `tmux` plugins. + +Tested and working on Linux, OSX, and Cygwin. + +### Installation + +Requirements: `tmux` version 1.9 (or higher), `git`, `bash`. + +Clone TPM: + +```bash +$ git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm +``` + +Put this at the bottom of `~/.tmux.conf` (`$XDG_CONFIG_HOME/tmux/tmux.conf` +works too): + +```bash +# List of plugins +set -g @plugin 'tmux-plugins/tpm' +set -g @plugin 'tmux-plugins/tmux-sensible' + +# Other examples: +# set -g @plugin 'github_username/plugin_name' +# set -g @plugin 'git@github.com/user/plugin' +# set -g @plugin 'git@bitbucket.com/user/plugin' + +# Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) +run -b '~/.tmux/plugins/tpm/tpm' +``` + +Reload TMUX environment so TPM is sourced: + +```bash +# type this in terminal if tmux is already running +$ tmux source ~/.tmux.conf +``` + +That's it! + +### Installing plugins + +1. Add new plugin to `~/.tmux.conf` with `set -g @plugin '...'` +2. Press `prefix` + I (capital i, as in **I**nstall) to fetch the plugin. + +You're good to go! The plugin was cloned to `~/.tmux/plugins/` dir and sourced. + +### Uninstalling plugins + +1. Remove (or comment out) plugin from the list. +2. Press `prefix` + alt + u (lowercase u as in **u**ninstall) to remove the plugin. + +All the plugins are installed to `~/.tmux/plugins/` so alternatively you can +find plugin directory there and remove it. + +### Key bindings + +`prefix` + I +- Installs new plugins from GitHub or any other git repository +- Refreshes TMUX environment + +`prefix` + U +- updates plugin(s) + +`prefix` + alt + u +- remove/uninstall plugins not on the plugin list + +### More plugins + +For more plugins, check [here](https://github.com/tmux-plugins). + +### Docs + +- [Help, tpm not working](docs/tpm_not_working.md) - problem solutions + +More advanced features and instructions, regular users probably do not need +this: + +- [How to create a plugin](docs/how_to_create_plugin.md). It's easy. +- [Managing plugins via the command line](docs/managing_plugins_via_cmd_line.md) +- [Changing plugins install dir](docs/changing_plugins_install_dir.md) +- [Automatic TPM installation on a new machine](docs/automatic_tpm_installation.md) + +### Tests + +Tests for this project run on [Travis CI](https://travis-ci.org/tmux-plugins/tpm). + +When run locally, [vagrant](https://www.vagrantup.com/) is required. +Run tests with: + +```bash +# within project directory +$ ./run_tests +``` + +### Other goodies + +- [tmux-copycat](https://github.com/tmux-plugins/tmux-copycat) - a plugin for + regex searches in tmux and fast match selection +- [tmux-yank](https://github.com/tmux-plugins/tmux-yank) - enables copying + highlighted text to system clipboard +- [tmux-open](https://github.com/tmux-plugins/tmux-open) - a plugin for quickly + opening highlighted file or a url +- [tmux-continuum](https://github.com/tmux-plugins/tmux-continuum) - automatic + restoring and continuous saving of tmux env + +### License + +[MIT](LICENSE.md) diff --git a/_tmux/.tmux/plugins/tpm/bindings/clean_plugins b/_tmux/.tmux/plugins/tpm/bindings/clean_plugins new file mode 100755 index 0000000..9a0d5d7 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/bindings/clean_plugins @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +# Tmux key-binding script. +# Scripts intended to be used via the command line are in `bin/` directory. + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +SCRIPTS_DIR="$CURRENT_DIR/../scripts" +HELPERS_DIR="$SCRIPTS_DIR/helpers" + +source "$HELPERS_DIR/tmux_echo_functions.sh" +source "$HELPERS_DIR/tmux_utils.sh" + +main() { + reload_tmux_environment + "$SCRIPTS_DIR/clean_plugins.sh" --tmux-echo >/dev/null 2>&1 + reload_tmux_environment + end_message +} +main diff --git a/_tmux/.tmux/plugins/tpm/bindings/install_plugins b/_tmux/.tmux/plugins/tpm/bindings/install_plugins new file mode 100755 index 0000000..3ade3c4 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/bindings/install_plugins @@ -0,0 +1,19 @@ +#!/usr/bin/env bash + +# Tmux key-binding script. +# Scripts intended to be used via the command line are in `bin/` directory. + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +SCRIPTS_DIR="$CURRENT_DIR/../scripts" +HELPERS_DIR="$SCRIPTS_DIR/helpers" + +source "$HELPERS_DIR/tmux_echo_functions.sh" +source "$HELPERS_DIR/tmux_utils.sh" + +main() { + reload_tmux_environment + "$SCRIPTS_DIR/install_plugins.sh" --tmux-echo >/dev/null 2>&1 + reload_tmux_environment + end_message +} +main diff --git a/_tmux/.tmux/plugins/tpm/bindings/update_plugins b/_tmux/.tmux/plugins/tpm/bindings/update_plugins new file mode 100755 index 0000000..28cc281 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/bindings/update_plugins @@ -0,0 +1,49 @@ +#!/usr/bin/env bash + +# Tmux key-binding script. +# Scripts intended to be used via the command line are in `bin/` directory. + +# This script: +# - shows a list of installed plugins +# - starts a prompt to enter the name of the plugin that will be updated + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +SCRIPTS_DIR="$CURRENT_DIR/../scripts" +HELPERS_DIR="$SCRIPTS_DIR/helpers" + +source "$HELPERS_DIR/plugin_functions.sh" +source "$HELPERS_DIR/tmux_echo_functions.sh" +source "$HELPERS_DIR/tmux_utils.sh" + +display_plugin_update_list() { + local plugins="$(tpm_plugins_list_helper)" + tmux_echo "Installed plugins:" + tmux_echo "" + + for plugin in $plugins; do + # displaying only installed plugins + if plugin_already_installed "$plugin"; then + local plugin_name="$(plugin_name_helper "$plugin")" + tmux_echo " $plugin_name" + fi + done + + tmux_echo "" + tmux_echo "Type plugin name to update it." + tmux_echo "" + tmux_echo "- \"all\" - updates all plugins" + tmux_echo "- ENTER - cancels" +} + +update_plugin_prompt() { + tmux command-prompt -p 'plugin update:' " \ + send-keys C-c; \ + run-shell '$SCRIPTS_DIR/update_plugin_prompt_handler.sh %1'" +} + +main() { + reload_tmux_environment + display_plugin_update_list + update_plugin_prompt +} +main diff --git a/_tmux/.tmux/plugins/tpm/docs/automatic_tpm_installation.md b/_tmux/.tmux/plugins/tpm/docs/automatic_tpm_installation.md new file mode 100644 index 0000000..630573f --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/docs/automatic_tpm_installation.md @@ -0,0 +1,12 @@ +# Automatic tpm installation + +One of the first things we do on a new machine is cloning our dotfiles. Not everything comes with them though, so for example `tpm` most likely won't be installed. + +If you want to install `tpm` and plugins automatically when tmux is started, put the following snippet in `.tmux.conf` before the final `run '~/.tmux/plugins/tpm/tpm'`: + +``` +if "test ! -d ~/.tmux/plugins/tpm" \ + "run 'git clone https://github.com/tmux-plugins/tpm ~/.tmux/plugins/tpm && ~/.tmux/plugins/tpm/bin/install_plugins'" +``` + +This useful tip was submitted by @acr4 and narfman0. diff --git a/_tmux/.tmux/plugins/tpm/docs/changing_plugins_install_dir.md b/_tmux/.tmux/plugins/tpm/docs/changing_plugins_install_dir.md new file mode 100644 index 0000000..93af675 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/docs/changing_plugins_install_dir.md @@ -0,0 +1,14 @@ +# Changing plugins install dir + +By default, TPM installs plugins to `~/.tmux/plugins/`. + +You can change the install path by putting this in `.tmux.conf`: + + set-environment -g TMUX_PLUGIN_MANAGER_PATH '/some/other/path/' + +Tmux plugin manager initialization in `.tmux.conf` should also be updated: + + # initializes TMUX plugin manager in a new path + run /some/other/path/tpm/tpm + +Please make sure that the `run` line is at the very bottom of `.tmux.conf`. diff --git a/_tmux/.tmux/plugins/tpm/docs/how_to_create_plugin.md b/_tmux/.tmux/plugins/tpm/docs/how_to_create_plugin.md new file mode 100644 index 0000000..b1a68f9 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/docs/how_to_create_plugin.md @@ -0,0 +1,108 @@ +# How to create Tmux plugins + +Creating a new plugin is easy. + +For demonstration purposes we'll create a simple plugin that lists all +installed TPM plugins. Yes, a plugin that lists plugins :) We'll bind that to +`prefix + T`. + +The source code for this example plugin can be found +[here](https://github.com/tmux-plugins/tmux-example-plugin). + +### 1. create a new git project + +TPM depends on git for downloading and updating plugins. + +To create a new git project: + + $ mkdir tmux_my_plugin + $ cd tmux_my_plugin + $ git init + +### 2. create a `*.tmux` plugin run file + +When it sources a plugin, TPM executes all `*.tmux` files in your plugins' +directory. That's how plugins are run. + +Create a plugin run file in plugin directory: + + $ touch my_plugin.tmux + $ chmod u+x my_plugin.tmux + +You can have more than one `*.tmux` file, and all will get executed. However, usually +you'll need just one. + +### 3. create a plugin key binding + +We want the behavior of the plugin to trigger when a user hits `prefix + T`. + +Key `T` is chosen because: + - it's "kind of" a mnemonic for `TPM` + - the key is not used by Tmux natively. Tmux man page, KEY BINDINGS section + contains a list of all the bindings Tmux uses. There's plenty of unused keys + and we don't want to override any of Tmux default key bindings. + +Open the plugin run file in your favorite text editor: + + $ vim my_plugin.tmux + # or + $ subl my_plugin.tmux + +Put the following content in the file: + + #!/usr/bin/env bash + + CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + tmux bind-key T run-shell "$CURRENT_DIR/scripts/tmux_list_plugins.sh" + +As you can see, plugin run file is a simple bash script that sets up the binding. + +When pressed, `prefix + T` will execute another shell script: +`tmux_list_plugins.sh`. That script should be in `scripts/` directory - +relative to the plugin run file. + + +### 4. listing plugins + +Now that we have the binding, let's create a script that's invoked with +`prefix + T`. + + $ mkdir scripts + $ touch scripts/tmux_list_plugins.sh + $ chmod u+x scripts/tmux_list_plugins.sh + +And here's the script content: + + #!/usr/bin/env bash + + # fetching the directory where plugins are installed + plugin_path="$(tmux show-env -g TMUX_PLUGIN_MANAGER_PATH | cut -f2 -d=)" + + # listing installed plugins + ls -1 "$plugin_path" + +### 5. try it out + +To see if this works, execute the plugin run file: + + $ ./my_plugin.tmux + +That should set up the key binding. Now hit `prefix + T` and see if it works. + +### 6. publish the plugin + +When everything is ready, push the plugin to an online git repository, +preferably Github. + +Other users can install your plugin by just adding plugin git URL to the +`@plugin` list in their `.tmux.conf`. + +If the plugin is on Github, your users will be able to use the shorthand of +`github_username/repository`. + +### Conclusion + +Hopefully, that was easy. As you can see, it's mostly shell scripting. + +You can use other scripting languages (ruby, python etc) but plain old shell +is preferred because of portability. diff --git a/_tmux/.tmux/plugins/tpm/docs/managing_plugins_via_cmd_line.md b/_tmux/.tmux/plugins/tpm/docs/managing_plugins_via_cmd_line.md new file mode 100644 index 0000000..7aefd7d --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/docs/managing_plugins_via_cmd_line.md @@ -0,0 +1,36 @@ +# Managing plugins via the command line + +Aside from tmux key bindings, TPM provides shell interface for managing plugins +via scripts located in [bin/](../bin/) directory. + +Tmux does not need to be started in order to run scripts (but it's okay if it +is). If you [changed tpm install dir](../docs/changing_plugins_install_dir.md) +in `.tmux.conf` that should work fine too. + +Prerequisites: + +- tmux installed on the system (doh) +- `.tmux.conf` set up for TPM + +### Installing plugins + +As usual, plugins need to be specified in `.tmux.conf`. Run the following +command to install plugins: + + ~/.tmux/plugins/tpm/bin/install_plugins + +### Updating plugins + +To update all installed plugins: + + ~/.tmux/plugins/tpm/bin/update_plugins all + +or update a single plugin: + + ~/.tmux/plugins/tpm/bin/update_plugins tmux-sensible + +### Removing plugins + +To remove plugins not on the plugin list: + + ~/.tmux/plugins/tpm/bin/clean_plugins diff --git a/_tmux/.tmux/plugins/tpm/docs/tpm_not_working.md b/_tmux/.tmux/plugins/tpm/docs/tpm_not_working.md new file mode 100644 index 0000000..bfa14ac --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/docs/tpm_not_working.md @@ -0,0 +1,96 @@ +# Help, tpm not working! + +Here's the list of issues users had with `tpm`: + +
+ +> Nothing works. `tpm` key bindings `prefix + I`, `prefix + U` not even + defined. + +Related [issue #22](https://github.com/tmux-plugins/tpm/issues/22) + +- Do you have required `tmux` version to run `tpm`?
+ Check `tmux` version with `$ tmux -V` command and make sure it's higher or + equal to the required version for `tpm` as stated in the readme. + +- ZSH tmux plugin might be causing issues.
+ If you have it installed, try disabling it and see if `tpm` works then. + +
+ +> Help, I'm using custom config file with `tmux -f /path/to/my_tmux.conf` +to start Tmux and for some reason plugins aren't loaded!? + +Related [issue #57](https://github.com/tmux-plugins/tpm/issues/57) + +`tpm` has a known issue when using custom config file with `-f` option. +The solution is to use alternative plugin definition syntax. Here are the steps +to make it work: + +1. remove all `set -g @plugin` lines from tmux config file +2. in the config file define the plugins in the following way: + + # List of plugins + set -g @tpm_plugins ' \ + tmux-plugins/tpm \ + tmux-plugins/tmux-sensible \ + tmux-plugins/tmux-resurrect \ + ' + + # Initialize TMUX plugin manager (keep this line at the very bottom of tmux.conf) + run '~/.tmux/plugins/tpm/tpm' + +3. Reload TMUX environment so TPM is sourced: `$ tmux source /path/to/my_tmux.conf` + +The plugins should now be working. + +
+ +> Weird sequence of characters show up when installing or updating plugins + +Related: [issue #25](https://github.com/tmux-plugins/tpm/issues/25) + +- This could be caused by [tmuxline.vim](https://github.com/edkolev/tmuxline.vim) + plugin. Uninstall it and see if things work. + +
+ +> "failed to connect to server" error when sourcing .tmux.conf + +Related: [issue #48](https://github.com/tmux-plugins/tpm/issues/48) + +- Make sure `tmux source ~/.tmux.conf` command is ran from inside `tmux`. + +
+ +> tpm not working: '~/.tmux/plugins/tpm/tpm' returned 2 (Windows / Cygwin) + +Related: [issue #81](https://github.com/tmux-plugins/tpm/issues/81) + +This issue is most likely caused by Windows line endings. For example, if you +have git's `core.autocrlf` option set to `true`, git will automatically convert +all the files to Windows line endings which might cause a problem. + +The solution is to convert all line ending to Unix newline characters. This +command handles that for all files under `.tmux/` dir (skips `.git` +subdirectories): + +```bash +find ~/.tmux -type d -name '.git*' -prune -o -type f -print0 | xargs -0 dos2unix +``` + +
+ +> '~/.tmux/plugins/tpm/tpm' returned 127 (on macOS, w/ tmux installed using brew) + +Related: [issue #67](https://github.com/tmux-plugins/tpm/issues/67) + +This problem is because tmux's `run-shell` command runs a shell which doesn't read from user configs, thus tmux installed in `/usr/local/bin` will not be found. + +The solution is to insert the following line: + +``` +set-environment -g PATH "/usr/local/bin:/bin:/usr/bin" +``` + +before any `run-shell`/`run` commands in `~/.tmux.conf`. diff --git a/_tmux/.tmux/plugins/tpm/tests/expect_failed_plugin_download b/_tmux/.tmux/plugins/tpm/tests/expect_failed_plugin_download new file mode 100755 index 0000000..b970477 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/expect_failed_plugin_download @@ -0,0 +1,36 @@ +#!/usr/bin/env expect + +# disables script output +log_user 0 + +spawn tmux + +# Waiting for tmux to attach. If this is not done, next command, `send` will +# not work properly. +sleep 1 + +# this is tmux prefix + I +send "I" + +# cloning might take a while +set timeout 20 + +expect_after { + timeout { exit 1 } +} + +expect { + "Installing \"non-existing-plugin\"" +} + +expect { + "\"non-existing-plugin\" download fail" +} + +expect { + "Done, press ENTER to continue" { + exit 0 + } +} + +exit 1 diff --git a/_tmux/.tmux/plugins/tpm/tests/expect_successful_clean_plugins b/_tmux/.tmux/plugins/tpm/tests/expect_successful_clean_plugins new file mode 100755 index 0000000..987c49d --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/expect_successful_clean_plugins @@ -0,0 +1,35 @@ +#!/usr/bin/env expect + +# disables script output +log_user 0 + +spawn tmux + +# Waiting for tmux to attach. If this is not done, next command, `send` will +# not work properly. +sleep 1 + +# this is tmux prefix + alt + u +send "u" + +set timeout 5 + +expect_after { + timeout { exit 1 } +} + +expect { + "Removing \"tmux-example-plugin\"" +} + +expect { + "\"tmux-example-plugin\" clean success" +} + +expect { + "Done, press ENTER to continue." { + exit 0 + } +} + +exit 1 diff --git a/_tmux/.tmux/plugins/tpm/tests/expect_successful_multiple_plugins_download b/_tmux/.tmux/plugins/tpm/tests/expect_successful_multiple_plugins_download new file mode 100755 index 0000000..cc87a26 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/expect_successful_multiple_plugins_download @@ -0,0 +1,44 @@ +#!/usr/bin/env expect + +# disables script output +log_user 0 + +spawn tmux + +# Waiting for tmux to attach. If this is not done, next command, `send` will +# not work properly. +sleep 1 + +# this is tmux prefix + I +send "I" + +# cloning might take a while +set timeout 15 + +expect_after { + timeout { exit 1 } +} + +expect { + "Installing \"tmux-example-plugin\"" +} + +expect { + "\"tmux-example-plugin\" download success" +} + +expect { + "Installing \"tmux-copycat\"" +} + +expect { + "\"tmux-copycat\" download success" +} + +expect { + "Done, press ENTER to continue." { + exit 0 + } +} + +exit 1 diff --git a/_tmux/.tmux/plugins/tpm/tests/expect_successful_plugin_download b/_tmux/.tmux/plugins/tpm/tests/expect_successful_plugin_download new file mode 100755 index 0000000..388f05d --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/expect_successful_plugin_download @@ -0,0 +1,50 @@ +#!/usr/bin/env expect + +# disables script output +log_user 0 + +spawn tmux + +# Waiting for tmux to attach. If this is not done, next command, `send` will +# not work properly. +sleep 1 + +# this is tmux prefix + I +send "I" + +# cloning might take a while +set timeout 15 + +expect_after { + timeout { exit 1 } +} + +expect { + "Installing \"tmux-example-plugin\"" +} + +expect { + "\"tmux-example-plugin\" download success" +} + +expect { + "Done, press ENTER to continue" { + send " " + } +} + +sleep 1 +# this is tmux prefix + I +send "I" + +expect { + "Already installed \"tmux-example-plugin\"" +} + +expect { + "Done, press ENTER to continue" { + exit 0 + } +} + +exit 1 diff --git a/_tmux/.tmux/plugins/tpm/tests/expect_successful_update_of_a_single_plugin b/_tmux/.tmux/plugins/tpm/tests/expect_successful_update_of_a_single_plugin new file mode 100755 index 0000000..bcd64fe --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/expect_successful_update_of_a_single_plugin @@ -0,0 +1,55 @@ +#!/usr/bin/env expect + +# disables script output +log_user 0 + +spawn tmux + +# Waiting for tmux to attach. If this is not done, next command, `send` will +# not work properly. +sleep 1 + +# this is tmux prefix + U +send "U" + +set timeout 15 + +expect_after { + timeout { exit 1 } +} + +expect { + "Installed plugins" +} + +expect { + "tmux-example-plugin" +} + +expect { + "\"all\" - updates all plugins" +} + +expect { + "ENTER - cancels" +} + +# wait for tmux to display prompt before sending characters +sleep 1 +send "tmux-example-plugin\r" + +expect { + "Updating \"tmux-example-plugin\"" +} + +expect { + "\"tmux-example-plugin\" update success" +} + +expect { + "Done, press ENTER to continue." { + exit 0 + } +} + +exit 1 diff --git a/_tmux/.tmux/plugins/tpm/tests/expect_successful_update_of_all_plugins b/_tmux/.tmux/plugins/tpm/tests/expect_successful_update_of_all_plugins new file mode 100755 index 0000000..4f3a4a3 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/expect_successful_update_of_all_plugins @@ -0,0 +1,59 @@ +#!/usr/bin/env expect + +# disables script output +log_user 0 + +spawn tmux + +# Waiting for tmux to attach. If this is not done, next command, `send` will +# not work properly. +sleep 1 + +# this is tmux prefix + U +send "U" + +set timeout 5 + +expect_after { + timeout { exit 1 } +} + +expect { + "Installed plugins" +} + +expect { + "tmux-example-plugin" +} + +expect { + "\"all\" - updates all plugins" +} + +expect { + "ENTER - cancels" +} + +# wait for tmux to display prompt before sending characters +sleep 1 +send "all\r" + +expect { + "Updating all plugins!" +} + +expect { + "Updating \"tmux-example-plugin\"" +} + +expect { + "\"tmux-example-plugin\" update success" +} + +expect { + "Done, press ENTER to continue." { + exit 0 + } +} + +exit 1 diff --git a/_tmux/.tmux/plugins/tpm/tests/helpers/tpm.sh b/_tmux/.tmux/plugins/tpm/tests/helpers/tpm.sh new file mode 100644 index 0000000..1594afb --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/helpers/tpm.sh @@ -0,0 +1,13 @@ +check_dir_exists_helper() { + [ -d "$1" ] +} + +# runs the scripts and asserts it has the correct output and exit code +script_run_helper() { + local script="$1" + local expected_output="$2" + local expected_exit_code="${3:-0}" + $script 2>&1 | + grep "$expected_output" >/dev/null 2>&1 && # grep -q flag quits the script early + [ "${PIPESTATUS[0]}" -eq "$expected_exit_code" ] +} diff --git a/_tmux/.tmux/plugins/tpm/tests/test_plugin_clean.sh b/_tmux/.tmux/plugins/tpm/tests/test_plugin_clean.sh new file mode 100755 index 0000000..d36c468 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/test_plugin_clean.sh @@ -0,0 +1,67 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +TPM_DIR="$PWD" +PLUGINS_DIR="$HOME/.tmux/plugins" + +source "$CURRENT_DIR/helpers/helpers.sh" +source "$CURRENT_DIR/helpers/tpm.sh" + +manually_install_the_plugin() { + rm -rf "$PLUGINS_DIR" + mkdir -p "$PLUGINS_DIR" + cd "$PLUGINS_DIR" + git clone --quiet https://github.com/tmux-plugins/tmux-example-plugin +} + +# TMUX KEY-BINDING TESTS + +test_plugin_uninstallation_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + run-shell "$TPM_DIR/tpm" + HERE + + manually_install_the_plugin + + "$CURRENT_DIR/expect_successful_clean_plugins" || + fail_helper "[key-binding] clean fails" + + teardown_helper +} + +# SCRIPT TESTS + +test_plugin_uninstallation_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + run-shell "$TPM_DIR/tpm" + HERE + + manually_install_the_plugin + + script_run_helper "$TPM_DIR/bin/clean_plugins" '"tmux-example-plugin" clean success' || + fail_helper "[script] plugin cleaning fails" + + teardown_helper +} + +test_unsuccessful_plugin_uninstallation_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + run-shell "$TPM_DIR/tpm" + HERE + + manually_install_the_plugin + chmod 000 "$PLUGINS_DIR/tmux-example-plugin" # disable directory deletion + + local expected_exit_code=1 + script_run_helper "$TPM_DIR/bin/clean_plugins" '"tmux-example-plugin" clean fail' "$expected_exit_code" || + fail_helper "[script] unsuccessful plugin cleaning doesn't fail" + + chmod 755 "$PLUGINS_DIR/tmux-example-plugin" # enable directory deletion + + teardown_helper +} + +run_tests diff --git a/_tmux/.tmux/plugins/tpm/tests/test_plugin_installation.sh b/_tmux/.tmux/plugins/tpm/tests/test_plugin_installation.sh new file mode 100755 index 0000000..94fb674 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/test_plugin_installation.sh @@ -0,0 +1,284 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PLUGINS_DIR="$HOME/.tmux/plugins" +TPM_DIR="$PWD" + +CUSTOM_PLUGINS_DIR="$HOME/foo/plugins" +ADDITIONAL_CONFIG_FILE_1="$HOME/.tmux/additional_config_file_1" +ADDITIONAL_CONFIG_FILE_2="$HOME/.tmux/additional_config_file_2" + +source "$CURRENT_DIR/helpers/helpers.sh" +source "$CURRENT_DIR/helpers/tpm.sh" + +# TMUX KEY-BINDING TESTS + +test_plugin_installation_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @plugin "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + "$CURRENT_DIR/expect_successful_plugin_download" || + fail_helper "[key-binding] plugin installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[key-binding] plugin download fails" + + teardown_helper +} + +test_plugin_installation_via_tmux_key_binding_set_option() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set-option -g @plugin "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + "$CURRENT_DIR/expect_successful_plugin_download" || + fail_helper "[key-binding][set-option] plugin installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[key-binding][set-option] plugin download fails" + + teardown_helper +} + +test_plugin_installation_custom_dir_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set-environment -g TMUX_PLUGIN_MANAGER_PATH '$CUSTOM_PLUGINS_DIR' + + set -g @plugin "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + "$CURRENT_DIR/expect_successful_plugin_download" || + fail_helper "[key-binding][custom dir] plugin installation fails" + + check_dir_exists_helper "$CUSTOM_PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[key-binding][custom dir] plugin download fails" + + teardown_helper + rm -rf "$CUSTOM_PLUGINS_DIR" +} + +test_non_existing_plugin_installation_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @plugin "tmux-plugins/non-existing-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + "$CURRENT_DIR/expect_failed_plugin_download" || + fail_helper "[key-binding] non existing plugin installation doesn't fail" + + teardown_helper +} + +test_multiple_plugins_installation_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @plugin "tmux-plugins/tmux-example-plugin" + \ \ set -g @plugin 'tmux-plugins/tmux-copycat' + run-shell "$TPM_DIR/tpm" + HERE + + "$CURRENT_DIR/expect_successful_multiple_plugins_download" || + fail_helper "[key-binding] multiple plugins installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[key-binding] plugin download fails (tmux-example-plugin)" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" || + fail_helper "[key-binding] plugin download fails (tmux-copycat)" + + teardown_helper +} + +test_plugins_installation_from_sourced_file_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + source '$ADDITIONAL_CONFIG_FILE_1' + set -g @plugin 'tmux-plugins/tmux-example-plugin' + run-shell "$TPM_DIR/tpm" + HERE + + mkdir ~/.tmux + echo "set -g @plugin 'tmux-plugins/tmux-copycat'" > "$ADDITIONAL_CONFIG_FILE_1" + + "$CURRENT_DIR/expect_successful_multiple_plugins_download" || + fail_helper "[key-binding][sourced file] plugins installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[key-binding][sourced file] plugin download fails (tmux-example-plugin)" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" || + fail_helper "[key-binding][sourced file] plugin download fails (tmux-copycat)" + + teardown_helper +} + +test_plugins_installation_from_multiple_sourced_files_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + \ \ source '$ADDITIONAL_CONFIG_FILE_1' + source-file '$ADDITIONAL_CONFIG_FILE_2' + run-shell "$TPM_DIR/tpm" + HERE + + mkdir ~/.tmux + echo "set -g @plugin 'tmux-plugins/tmux-example-plugin'" > "$ADDITIONAL_CONFIG_FILE_1" + echo " set -g @plugin 'tmux-plugins/tmux-copycat'" > "$ADDITIONAL_CONFIG_FILE_2" + + "$CURRENT_DIR/expect_successful_multiple_plugins_download" || + fail_helper "[key-binding][multiple sourced files] plugins installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[key-binding][multiple sourced files] plugin download fails (tmux-example-plugin)" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" || + fail_helper "[key-binding][multiple sourced files] plugin download fails (tmux-copycat)" + + teardown_helper +} + +# SCRIPT TESTS + +test_plugin_installation_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @plugin "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' || + fail_helper "[script] plugin installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[script] plugin download fails" + + script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-example-plugin"' || + fail_helper "[script] plugin already installed message fail" + + teardown_helper +} + +test_plugin_installation_custom_dir_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set-environment -g TMUX_PLUGIN_MANAGER_PATH '$CUSTOM_PLUGINS_DIR' + + set -g @plugin "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' || + fail_helper "[script][custom dir] plugin installation fails" + + check_dir_exists_helper "$CUSTOM_PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[script][custom dir] plugin download fails" + + script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-example-plugin"' || + fail_helper "[script][custom dir] plugin already installed message fail" + + teardown_helper + rm -rf "$CUSTOM_PLUGINS_DIR" +} + +test_non_existing_plugin_installation_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @plugin "tmux-plugins/non-existing-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + local expected_exit_code=1 + script_run_helper "$TPM_DIR/bin/install_plugins" '"non-existing-plugin" download fail' "$expected_exit_code" || + fail_helper "[script] non existing plugin installation doesn't fail" + + teardown_helper +} + +test_multiple_plugins_installation_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @plugin "tmux-plugins/tmux-example-plugin" + \ \ set -g @plugin 'tmux-plugins/tmux-copycat' + run-shell "$TPM_DIR/tpm" + HERE + + script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' || + fail_helper "[script] multiple plugins installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[script] plugin download fails (tmux-example-plugin)" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" || + fail_helper "[script] plugin download fails (tmux-copycat)" + + script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-copycat"' || + fail_helper "[script] multiple plugins already installed message fail" + + teardown_helper +} + +test_plugins_installation_from_sourced_file_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + source '$ADDITIONAL_CONFIG_FILE_1' + set -g @plugin 'tmux-plugins/tmux-example-plugin' + run-shell "$TPM_DIR/tpm" + HERE + + mkdir ~/.tmux + echo "set -g @plugin 'tmux-plugins/tmux-copycat'" > "$ADDITIONAL_CONFIG_FILE_1" + + script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-copycat" download success' || + fail_helper "[script][sourced file] plugins installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[script][sourced file] plugin download fails (tmux-example-plugin)" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" || + fail_helper "[script][sourced file] plugin download fails (tmux-copycat)" + + script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-copycat"' || + fail_helper "[script][sourced file] plugins already installed message fail" + + teardown_helper +} + +test_plugins_installation_from_multiple_sourced_files_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + \ \ source '$ADDITIONAL_CONFIG_FILE_1' + source-file '$ADDITIONAL_CONFIG_FILE_2' + set -g @plugin 'tmux-plugins/tmux-example-plugin' + run-shell "$TPM_DIR/tpm" + HERE + + mkdir ~/.tmux + echo " set -g @plugin 'tmux-plugins/tmux-copycat'" > "$ADDITIONAL_CONFIG_FILE_1" + echo "set -g @plugin 'tmux-plugins/tmux-sensible'" > "$ADDITIONAL_CONFIG_FILE_2" + + script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-sensible" download success' || + fail_helper "[script][multiple sourced files] plugins installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[script][multiple sourced files] plugin download fails (tmux-example-plugin)" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" || + fail_helper "[script][multiple sourced files] plugin download fails (tmux-copycat)" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-sensible/" || + fail_helper "[script][multiple sourced files] plugin download fails (tmux-sensible)" + + script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-sensible"' || + fail_helper "[script][multiple sourced files] plugins already installed message fail" + + teardown_helper +} + +run_tests diff --git a/_tmux/.tmux/plugins/tpm/tests/test_plugin_installation_legacy.sh b/_tmux/.tmux/plugins/tpm/tests/test_plugin_installation_legacy.sh new file mode 100755 index 0000000..b1d0cf6 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/test_plugin_installation_legacy.sh @@ -0,0 +1,100 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +PLUGINS_DIR="$HOME/.tmux/plugins" +TPM_DIR="$PWD" + +source "$CURRENT_DIR/helpers/helpers.sh" +source "$CURRENT_DIR/helpers/tpm.sh" + +# TMUX KEY-BINDING TESTS + +test_plugin_installation_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @tpm_plugins "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + # opens tmux and test it with `expect` + $CURRENT_DIR/expect_successful_plugin_download || + fail_helper "[key-binding] plugin installation fails" + + # check plugin dir exists after download + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[key-binding] plugin download fails" + + teardown_helper +} + +test_legacy_and_new_syntax_for_plugin_installation_work_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @tpm_plugins " \ + tmux-plugins/tmux-example-plugin \ + " + set -g @plugin 'tmux-plugins/tmux-copycat' + run-shell "$TPM_DIR/tpm" + HERE + + # opens tmux and test it with `expect` + "$CURRENT_DIR"/expect_successful_multiple_plugins_download || + fail_helper "[key-binding] multiple plugins installation fails" + + # check plugin dir exists after download + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[key-binding] plugin download fails (tmux-example-plugin)" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" || + fail_helper "[key-binding] plugin download fails (tmux-copycat)" + + teardown_helper +} + +# SCRIPT TESTS + +test_plugin_installation_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @tpm_plugins "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' || + fail_helper "[script] plugin installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[script] plugin download fails" + + script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-example-plugin"' || + fail_helper "[script] plugin already installed message fail" + + teardown_helper +} + +test_legacy_and_new_syntax_for_plugin_installation_work_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @tpm_plugins " \ + tmux-plugins/tmux-example-plugin \ + " + set -g @plugin 'tmux-plugins/tmux-copycat' + run-shell "$TPM_DIR/tpm" + HERE + + script_run_helper "$TPM_DIR/bin/install_plugins" '"tmux-example-plugin" download success' || + fail_helper "[script] multiple plugin installation fails" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-example-plugin/" || + fail_helper "[script] plugin download fails (tmux-example-plugin)" + + check_dir_exists_helper "$PLUGINS_DIR/tmux-copycat/" || + fail_helper "[script] plugin download fails (tmux-copycat)" + + script_run_helper "$TPM_DIR/bin/install_plugins" 'Already installed "tmux-copycat"' || + fail_helper "[script] multiple plugins already installed message fail" + + teardown_helper +} + +run_tests diff --git a/_tmux/.tmux/plugins/tpm/tests/test_plugin_sourcing.sh b/_tmux/.tmux/plugins/tpm/tests/test_plugin_sourcing.sh new file mode 100755 index 0000000..c06f1fe --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/test_plugin_sourcing.sh @@ -0,0 +1,78 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +TPM_DIR="$PWD" +PLUGINS_DIR="$HOME/.tmux/plugins" + +CUSTOM_PLUGINS_DIR="$HOME/foo/plugins" + +source "$CURRENT_DIR/helpers/helpers.sh" +source "$CURRENT_DIR/helpers/tpm.sh" + +check_binding_defined() { + local binding="$1" + tmux list-keys | grep -q "$binding" +} + +create_test_plugin_helper() { + local plugin_path="$PLUGINS_DIR/tmux_test_plugin/" + rm -rf "$plugin_path" + mkdir -p "$plugin_path" + + while read line; do + echo "$line" >> "$plugin_path/test_plugin.tmux" + done + chmod +x "$plugin_path/test_plugin.tmux" +} + +check_tpm_path() { + local correct_tpm_path="$1" + local tpm_path="$(tmux start-server\; show-environment -g TMUX_PLUGIN_MANAGER_PATH | cut -f2 -d=)" + [ "$correct_tpm_path" == "$tpm_path" ] +} + +test_plugin_sourcing() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @plugin "doesnt_matter/tmux_test_plugin" + run-shell "$TPM_DIR/tpm" + HERE + + # manually creates a local tmux plugin + create_test_plugin_helper <<- HERE + tmux bind-key R run-shell foo_command + HERE + + tmux new-session -d # tmux starts detached + check_binding_defined "R run-shell foo_command" || + fail_helper "Plugin sourcing fails" + + teardown_helper +} + +test_default_tpm_path() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + run-shell "$TPM_DIR/tpm" + HERE + + check_tpm_path "${PLUGINS_DIR}/" || + fail_helper "Default TPM path not correct" + + teardown_helper +} + +test_custom_tpm_path() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set-environment -g TMUX_PLUGIN_MANAGER_PATH '$CUSTOM_PLUGINS_DIR' + run-shell "$TPM_DIR/tpm" + HERE + + check_tpm_path "$CUSTOM_PLUGINS_DIR" || + fail_helper "Custom TPM path not correct" + + teardown_helper +} + +run_tests diff --git a/_tmux/.tmux/plugins/tpm/tests/test_plugin_update.sh b/_tmux/.tmux/plugins/tpm/tests/test_plugin_update.sh new file mode 100755 index 0000000..4924d16 --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tests/test_plugin_update.sh @@ -0,0 +1,60 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +TPM_DIR="$PWD" +PLUGINS_DIR="$HOME/.tmux/plugins" + +source "$CURRENT_DIR/helpers/helpers.sh" +source "$CURRENT_DIR/helpers/tpm.sh" + +manually_install_the_plugin() { + mkdir -p "$PLUGINS_DIR" + cd "$PLUGINS_DIR" + git clone --quiet https://github.com/tmux-plugins/tmux-example-plugin +} + +# TMUX KEY-BINDING TESTS + +test_plugin_update_via_tmux_key_binding() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @plugin "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + manually_install_the_plugin + + "$CURRENT_DIR/expect_successful_update_of_all_plugins" || + fail_helper "[key-binding] 'update all plugins' fails" + + "$CURRENT_DIR/expect_successful_update_of_a_single_plugin" || + fail_helper "[key-binding] 'update single plugin' fails" + + teardown_helper +} + +# SCRIPT TESTS + +test_plugin_update_via_script() { + set_tmux_conf_helper <<- HERE + set -g mode-keys vi + set -g @plugin "tmux-plugins/tmux-example-plugin" + run-shell "$TPM_DIR/tpm" + HERE + + manually_install_the_plugin + + local expected_exit_code=1 + script_run_helper "$TPM_DIR/bin/update_plugins" 'usage' "$expected_exit_code" || + fail_helper "[script] running update plugins without args should fail" + + script_run_helper "$TPM_DIR/bin/update_plugins tmux-example-plugin" '"tmux-example-plugin" update success' || + fail_helper "[script] plugin update fails" + + script_run_helper "$TPM_DIR/bin/update_plugins all" '"tmux-example-plugin" update success' || + fail_helper "[script] update all plugins fails" + + teardown_helper +} + +run_tests diff --git a/_tmux/.tmux/plugins/tpm/tpm b/_tmux/.tmux/plugins/tpm/tpm new file mode 100755 index 0000000..570d58b --- /dev/null +++ b/_tmux/.tmux/plugins/tpm/tpm @@ -0,0 +1,72 @@ +#!/usr/bin/env bash + +CURRENT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" +BINDINGS_DIR="$CURRENT_DIR/bindings" +SCRIPTS_DIR="$CURRENT_DIR/scripts" + +source "$SCRIPTS_DIR/variables.sh" + +get_tmux_option() { + local option="$1" + local default_value="$2" + local option_value="$(tmux show-option -gqv "$option")" + if [ -z "$option_value" ]; then + echo "$default_value" + else + echo "$option_value" + fi +} + +tpm_path_set() { + tmux show-environment -g "$DEFAULT_TPM_ENV_VAR_NAME" >/dev/null 2>&1 +} + +set_default_tpm_path() { + tmux set-environment -g "$DEFAULT_TPM_ENV_VAR_NAME" "$DEFAULT_TPM_PATH" +} + +# Ensures TMUX_PLUGIN_MANAGER_PATH global env variable is set. +# +# Put this in `.tmux.conf` to override the default: +# `set-environment -g TMUX_PLUGIN_MANAGER_PATH "/some/other/path/"` +set_tpm_path() { + if ! tpm_path_set; then + set_default_tpm_path + fi +} + +# 1. Fetches plugin names from `@plugin` variables +# 2. Creates full plugin path +# 3. Sources all *.tmux files from each of the plugin directories +# - no errors raised if directory does not exist +# Files are sourced as tmux config files, not as shell scripts! +source_plugins() { + "$SCRIPTS_DIR/source_plugins.sh" >/dev/null 2>&1 +} + +# prefix + I - downloads TPM plugins and reloads TMUX environment +# prefix + U - updates a plugin (or all of them) and reloads TMUX environment +# prefix + alt + u - remove unused TPM plugins and reloads TMUX environment +set_tpm_key_bindings() { + local install_key="$(get_tmux_option "$install_key_option" "$default_install_key")" + tmux bind-key "$install_key" run-shell "$BINDINGS_DIR/install_plugins" + + local update_key="$(get_tmux_option "$update_key_option" "$default_update_key")" + tmux bind-key "$update_key" run-shell "$BINDINGS_DIR/update_plugins" + + local clean_key="$(get_tmux_option "$clean_key_option" "$default_clean_key")" + tmux bind-key "$clean_key" run-shell "$BINDINGS_DIR/clean_plugins" +} + +supported_tmux_version_ok() { + "$SCRIPTS_DIR/check_tmux_version.sh" "$SUPPORTED_TMUX_VERSION" +} + +main() { + if supported_tmux_version_ok; then + set_tpm_path + set_tpm_key_bindings + source_plugins + fi +} +main diff --git a/tmux/tmux.sh b/_tmux/tmux.sh similarity index 100% rename from tmux/tmux.sh rename to _tmux/tmux.sh diff --git a/_vim/.config/coc/commands b/_vim/.config/coc/commands new file mode 100644 index 0000000..02250e5 --- /dev/null +++ b/_vim/.config/coc/commands @@ -0,0 +1 @@ +prettier.formatFile \ No newline at end of file diff --git a/_vim/.config/coc/extensions/db.json b/_vim/.config/coc/extensions/db.json new file mode 100644 index 0000000..83511f0 --- /dev/null +++ b/_vim/.config/coc/extensions/db.json @@ -0,0 +1,3 @@ +{ + "lastUpdate": 1591147287154 +} \ No newline at end of file diff --git a/_vim/.config/coc/extensions/package.json b/_vim/.config/coc/extensions/package.json new file mode 100644 index 0000000..f522b7a --- /dev/null +++ b/_vim/.config/coc/extensions/package.json @@ -0,0 +1,29 @@ +{ + "dependencies": { + "coc-actions": ">=1.4.0", + "coc-css": ">=1.2.3", + "coc-dictionary": ">=1.2.2", + "coc-emoji": ">=1.2.3", + "coc-eslint": ">=1.2.7", + "coc-flow": ">=0.1.3", + "coc-go": ">=0.7.0", + "coc-highlight": ">=1.2.5", + "coc-html": ">=1.2.4", + "coc-json": ">=1.2.6", + "coc-lists": ">=1.3.8", + "coc-markdownlint": ">=1.4.0", + "coc-marketplace": ">=1.7.0", + "coc-prettier": ">=1.1.12", + "coc-python": ">=1.2.12", + "coc-sh": ">=0.4.0", + "coc-snippets": ">=2.1.26", + "coc-stylelint": ">=1.1.0", + "coc-stylelintplus": ">=1.0.4", + "coc-svg": ">=0.0.13", + "coc-syntax": ">=1.2.4", + "coc-tag": ">=1.2.4", + "coc-tsserver": ">=1.5.1", + "coc-utils": ">=0.0.13", + "coc-yaml": ">=1.0.4" + } +} \ No newline at end of file diff --git a/_vim/.config/coc/memos.json b/_vim/.config/coc/memos.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/_vim/.config/coc/memos.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/_vim/.config/coc/mru b/_vim/.config/coc/mru new file mode 100644 index 0000000..2662f15 --- /dev/null +++ b/_vim/.config/coc/mru @@ -0,0 +1,6 @@ +/Users/ujinyoung/dotfiles/.gitmodules +/Users/ujinyoung/.gitconfig +/Users/ujinyoung/dotfiles/.gitmoduels +/Users/ujinyoung/dotfiles/.gitconfig +/Users/ujinyoung/.gdbinit +/Users/ujinyoung/.gdb_history \ No newline at end of file diff --git a/_vim/.config/nvim/init.vim b/_vim/.config/nvim/init.vim new file mode 100644 index 0000000..87117cb --- /dev/null +++ b/_vim/.config/nvim/init.vim @@ -0,0 +1,3 @@ +set runtimepath+=~/.vim runtimepath+=~/.vim/after +let &packpath=&runtimepath +source ~/.vimrc diff --git a/_vim/.vim/autoload/plug.vim b/_vim/.vim/autoload/plug.vim new file mode 100644 index 0000000..bc02f03 --- /dev/null +++ b/_vim/.vim/autoload/plug.vim @@ -0,0 +1,2664 @@ +" vim-plug: Vim plugin manager +" ============================ +" +" Download plug.vim and put it in ~/.vim/autoload +" +" curl -fLo ~/.vim/autoload/plug.vim --create-dirs \ +" https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim +" +" Edit your .vimrc +" +" call plug#begin('~/.vim/plugged') +" +" " Make sure you use single quotes +" +" " Shorthand notation; fetches https://github.com/junegunn/vim-easy-align +" Plug 'junegunn/vim-easy-align' +" +" " Any valid git URL is allowed +" Plug 'https://github.com/junegunn/vim-github-dashboard.git' +" +" " Multiple Plug commands can be written in a single line using | separators +" Plug 'SirVer/ultisnips' | Plug 'honza/vim-snippets' +" +" " On-demand loading +" Plug 'scrooloose/nerdtree', { 'on': 'NERDTreeToggle' } +" Plug 'tpope/vim-fireplace', { 'for': 'clojure' } +" +" " Using a non-master branch +" Plug 'rdnetto/YCM-Generator', { 'branch': 'stable' } +" +" " Using a tagged release; wildcard allowed (requires git 1.9.2 or above) +" Plug 'fatih/vim-go', { 'tag': '*' } +" +" " Plugin options +" Plug 'nsf/gocode', { 'tag': 'v.20150303', 'rtp': 'vim' } +" +" " Plugin outside ~/.vim/plugged with post-update hook +" Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } +" +" " Unmanaged plugin (manually installed and updated) +" Plug '~/my-prototype-plugin' +" +" " Initialize plugin system +" call plug#end() +" +" Then reload .vimrc and :PlugInstall to install plugins. +" +" Plug options: +" +"| Option | Description | +"| ----------------------- | ------------------------------------------------ | +"| `branch`/`tag`/`commit` | Branch/tag/commit of the repository to use | +"| `rtp` | Subdirectory that contains Vim plugin | +"| `dir` | Custom directory for the plugin | +"| `as` | Use different name for the plugin | +"| `do` | Post-update hook (string or funcref) | +"| `on` | On-demand loading: Commands or ``-mappings | +"| `for` | On-demand loading: File types | +"| `frozen` | Do not update unless explicitly specified | +" +" More information: https://github.com/junegunn/vim-plug +" +" +" Copyright (c) 2017 Junegunn Choi +" +" MIT License +" +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be +" included in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +" LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +if exists('g:loaded_plug') + finish +endif +let g:loaded_plug = 1 + +let s:cpo_save = &cpo +set cpo&vim + +let s:plug_src = 'https://github.com/junegunn/vim-plug.git' +let s:plug_tab = get(s:, 'plug_tab', -1) +let s:plug_buf = get(s:, 'plug_buf', -1) +let s:mac_gui = has('gui_macvim') && has('gui_running') +let s:is_win = has('win32') +let s:nvim = has('nvim-0.2') || (has('nvim') && exists('*jobwait') && !s:is_win) +let s:vim8 = has('patch-8.0.0039') && exists('*job_start') +if s:is_win && &shellslash + set noshellslash + let s:me = resolve(expand(':p')) + set shellslash +else + let s:me = resolve(expand(':p')) +endif +let s:base_spec = { 'branch': 'master', 'frozen': 0 } +let s:TYPE = { +\ 'string': type(''), +\ 'list': type([]), +\ 'dict': type({}), +\ 'funcref': type(function('call')) +\ } +let s:loaded = get(s:, 'loaded', {}) +let s:triggers = get(s:, 'triggers', {}) + +if s:is_win + function! s:plug_call(fn, ...) + let shellslash = &shellslash + try + set noshellslash + return call(a:fn, a:000) + finally + let &shellslash = shellslash + endtry + endfunction +else + function! s:plug_call(fn, ...) + return call(a:fn, a:000) + endfunction +endif + +function! s:plug_getcwd() + return s:plug_call('getcwd') +endfunction + +function! s:plug_fnamemodify(fname, mods) + return s:plug_call('fnamemodify', a:fname, a:mods) +endfunction + +function! s:plug_expand(fmt) + return s:plug_call('expand', a:fmt, 1) +endfunction + +function! s:plug_tempname() + return s:plug_call('tempname') +endfunction + +function! plug#begin(...) + if a:0 > 0 + let s:plug_home_org = a:1 + let home = s:path(s:plug_fnamemodify(s:plug_expand(a:1), ':p')) + elseif exists('g:plug_home') + let home = s:path(g:plug_home) + elseif !empty(&rtp) + let home = s:path(split(&rtp, ',')[0]) . '/plugged' + else + return s:err('Unable to determine plug home. Try calling plug#begin() with a path argument.') + endif + if s:plug_fnamemodify(home, ':t') ==# 'plugin' && s:plug_fnamemodify(home, ':h') ==# s:first_rtp + return s:err('Invalid plug home. '.home.' is a standard Vim runtime path and is not allowed.') + endif + + let g:plug_home = home + let g:plugs = {} + let g:plugs_order = [] + let s:triggers = {} + + call s:define_commands() + return 1 +endfunction + +function! s:define_commands() + command! -nargs=+ -bar Plug call plug#() + if !executable('git') + return s:err('`git` executable not found. Most commands will not be available. To suppress this message, prepend `silent!` to `call plug#begin(...)`.') + endif + if has('win32') + \ && &shellslash + \ && (&shell =~# 'cmd\.exe' || &shell =~# 'powershell\.exe') + return s:err('vim-plug does not support shell, ' . &shell . ', when shellslash is set.') + endif + if !has('nvim') + \ && (has('win32') || has('win32unix')) + \ && !has('multi_byte') + return s:err('Vim needs +multi_byte feature on Windows to run shell commands. Enable +iconv for best results.') + endif + command! -nargs=* -bar -bang -complete=customlist,s:names PlugInstall call s:install(0, []) + command! -nargs=* -bar -bang -complete=customlist,s:names PlugUpdate call s:update(0, []) + command! -nargs=0 -bar -bang PlugClean call s:clean(0) + command! -nargs=0 -bar PlugUpgrade if s:upgrade() | execute 'source' s:esc(s:me) | endif + command! -nargs=0 -bar PlugStatus call s:status() + command! -nargs=0 -bar PlugDiff call s:diff() + command! -nargs=? -bar -bang -complete=file PlugSnapshot call s:snapshot(0, ) +endfunction + +function! s:to_a(v) + return type(a:v) == s:TYPE.list ? a:v : [a:v] +endfunction + +function! s:to_s(v) + return type(a:v) == s:TYPE.string ? a:v : join(a:v, "\n") . "\n" +endfunction + +function! s:glob(from, pattern) + return s:lines(globpath(a:from, a:pattern)) +endfunction + +function! s:source(from, ...) + let found = 0 + for pattern in a:000 + for vim in s:glob(a:from, pattern) + execute 'source' s:esc(vim) + let found = 1 + endfor + endfor + return found +endfunction + +function! s:assoc(dict, key, val) + let a:dict[a:key] = add(get(a:dict, a:key, []), a:val) +endfunction + +function! s:ask(message, ...) + call inputsave() + echohl WarningMsg + let answer = input(a:message.(a:0 ? ' (y/N/a) ' : ' (y/N) ')) + echohl None + call inputrestore() + echo "\r" + return (a:0 && answer =~? '^a') ? 2 : (answer =~? '^y') ? 1 : 0 +endfunction + +function! s:ask_no_interrupt(...) + try + return call('s:ask', a:000) + catch + return 0 + endtry +endfunction + +function! s:lazy(plug, opt) + return has_key(a:plug, a:opt) && + \ (empty(s:to_a(a:plug[a:opt])) || + \ !isdirectory(a:plug.dir) || + \ len(s:glob(s:rtp(a:plug), 'plugin')) || + \ len(s:glob(s:rtp(a:plug), 'after/plugin'))) +endfunction + +function! plug#end() + if !exists('g:plugs') + return s:err('plug#end() called without calling plug#begin() first') + endif + + if exists('#PlugLOD') + augroup PlugLOD + autocmd! + augroup END + augroup! PlugLOD + endif + let lod = { 'ft': {}, 'map': {}, 'cmd': {} } + + if exists('g:did_load_filetypes') + filetype off + endif + for name in g:plugs_order + if !has_key(g:plugs, name) + continue + endif + let plug = g:plugs[name] + if get(s:loaded, name, 0) || !s:lazy(plug, 'on') && !s:lazy(plug, 'for') + let s:loaded[name] = 1 + continue + endif + + if has_key(plug, 'on') + let s:triggers[name] = { 'map': [], 'cmd': [] } + for cmd in s:to_a(plug.on) + if cmd =~? '^.\+' + if empty(mapcheck(cmd)) && empty(mapcheck(cmd, 'i')) + call s:assoc(lod.map, cmd, name) + endif + call add(s:triggers[name].map, cmd) + elseif cmd =~# '^[A-Z]' + let cmd = substitute(cmd, '!*$', '', '') + if exists(':'.cmd) != 2 + call s:assoc(lod.cmd, cmd, name) + endif + call add(s:triggers[name].cmd, cmd) + else + call s:err('Invalid `on` option: '.cmd. + \ '. Should start with an uppercase letter or ``.') + endif + endfor + endif + + if has_key(plug, 'for') + let types = s:to_a(plug.for) + if !empty(types) + augroup filetypedetect + call s:source(s:rtp(plug), 'ftdetect/**/*.vim', 'after/ftdetect/**/*.vim') + augroup END + endif + for type in types + call s:assoc(lod.ft, type, name) + endfor + endif + endfor + + for [cmd, names] in items(lod.cmd) + execute printf( + \ 'command! -nargs=* -range -bang -complete=file %s call s:lod_cmd(%s, "", , , , %s)', + \ cmd, string(cmd), string(names)) + endfor + + for [map, names] in items(lod.map) + for [mode, map_prefix, key_prefix] in + \ [['i', '', ''], ['n', '', ''], ['v', '', 'gv'], ['o', '', '']] + execute printf( + \ '%snoremap %s %s:call lod_map(%s, %s, %s, "%s")', + \ mode, map, map_prefix, string(map), string(names), mode != 'i', key_prefix) + endfor + endfor + + for [ft, names] in items(lod.ft) + augroup PlugLOD + execute printf('autocmd FileType %s call lod_ft(%s, %s)', + \ ft, string(ft), string(names)) + augroup END + endfor + + call s:reorg_rtp() + filetype plugin indent on + if has('vim_starting') + if has('syntax') && !exists('g:syntax_on') + syntax enable + end + else + call s:reload_plugins() + endif +endfunction + +function! s:loaded_names() + return filter(copy(g:plugs_order), 'get(s:loaded, v:val, 0)') +endfunction + +function! s:load_plugin(spec) + call s:source(s:rtp(a:spec), 'plugin/**/*.vim', 'after/plugin/**/*.vim') +endfunction + +function! s:reload_plugins() + for name in s:loaded_names() + call s:load_plugin(g:plugs[name]) + endfor +endfunction + +function! s:trim(str) + return substitute(a:str, '[\/]\+$', '', '') +endfunction + +function! s:version_requirement(val, min) + for idx in range(0, len(a:min) - 1) + let v = get(a:val, idx, 0) + if v < a:min[idx] | return 0 + elseif v > a:min[idx] | return 1 + endif + endfor + return 1 +endfunction + +function! s:git_version_requirement(...) + if !exists('s:git_version') + let s:git_version = map(split(split(s:system(['git', '--version']))[2], '\.'), 'str2nr(v:val)') + endif + return s:version_requirement(s:git_version, a:000) +endfunction + +function! s:progress_opt(base) + return a:base && !s:is_win && + \ s:git_version_requirement(1, 7, 1) ? '--progress' : '' +endfunction + +function! s:rtp(spec) + return s:path(a:spec.dir . get(a:spec, 'rtp', '')) +endfunction + +if s:is_win + function! s:path(path) + return s:trim(substitute(a:path, '/', '\', 'g')) + endfunction + + function! s:dirpath(path) + return s:path(a:path) . '\' + endfunction + + function! s:is_local_plug(repo) + return a:repo =~? '^[a-z]:\|^[%~]' + endfunction + + " Copied from fzf + function! s:wrap_cmds(cmds) + let cmds = [ + \ '@echo off', + \ 'setlocal enabledelayedexpansion'] + \ + (type(a:cmds) == type([]) ? a:cmds : [a:cmds]) + \ + ['endlocal'] + if has('iconv') + if !exists('s:codepage') + let s:codepage = libcallnr('kernel32.dll', 'GetACP', 0) + endif + return map(cmds, printf('iconv(v:val."\r", "%s", "cp%d")', &encoding, s:codepage)) + endif + return map(cmds, 'v:val."\r"') + endfunction + + function! s:batchfile(cmd) + let batchfile = s:plug_tempname().'.bat' + call writefile(s:wrap_cmds(a:cmd), batchfile) + let cmd = plug#shellescape(batchfile, {'shell': &shell, 'script': 0}) + if &shell =~# 'powershell\.exe' + let cmd = '& ' . cmd + endif + return [batchfile, cmd] + endfunction +else + function! s:path(path) + return s:trim(a:path) + endfunction + + function! s:dirpath(path) + return substitute(a:path, '[/\\]*$', '/', '') + endfunction + + function! s:is_local_plug(repo) + return a:repo[0] =~ '[/$~]' + endfunction +endif + +function! s:err(msg) + echohl ErrorMsg + echom '[vim-plug] '.a:msg + echohl None +endfunction + +function! s:warn(cmd, msg) + echohl WarningMsg + execute a:cmd 'a:msg' + echohl None +endfunction + +function! s:esc(path) + return escape(a:path, ' ') +endfunction + +function! s:escrtp(path) + return escape(a:path, ' ,') +endfunction + +function! s:remove_rtp() + for name in s:loaded_names() + let rtp = s:rtp(g:plugs[name]) + execute 'set rtp-='.s:escrtp(rtp) + let after = globpath(rtp, 'after') + if isdirectory(after) + execute 'set rtp-='.s:escrtp(after) + endif + endfor +endfunction + +function! s:reorg_rtp() + if !empty(s:first_rtp) + execute 'set rtp-='.s:first_rtp + execute 'set rtp-='.s:last_rtp + endif + + " &rtp is modified from outside + if exists('s:prtp') && s:prtp !=# &rtp + call s:remove_rtp() + unlet! s:middle + endif + + let s:middle = get(s:, 'middle', &rtp) + let rtps = map(s:loaded_names(), 's:rtp(g:plugs[v:val])') + let afters = filter(map(copy(rtps), 'globpath(v:val, "after")'), '!empty(v:val)') + let rtp = join(map(rtps, 'escape(v:val, ",")'), ',') + \ . ','.s:middle.',' + \ . join(map(afters, 'escape(v:val, ",")'), ',') + let &rtp = substitute(substitute(rtp, ',,*', ',', 'g'), '^,\|,$', '', 'g') + let s:prtp = &rtp + + if !empty(s:first_rtp) + execute 'set rtp^='.s:first_rtp + execute 'set rtp+='.s:last_rtp + endif +endfunction + +function! s:doautocmd(...) + if exists('#'.join(a:000, '#')) + execute 'doautocmd' ((v:version > 703 || has('patch442')) ? '' : '') join(a:000) + endif +endfunction + +function! s:dobufread(names) + for name in a:names + let path = s:rtp(g:plugs[name]) + for dir in ['ftdetect', 'ftplugin', 'after/ftdetect', 'after/ftplugin'] + if len(finddir(dir, path)) + if exists('#BufRead') + doautocmd BufRead + endif + return + endif + endfor + endfor +endfunction + +function! plug#load(...) + if a:0 == 0 + return s:err('Argument missing: plugin name(s) required') + endif + if !exists('g:plugs') + return s:err('plug#begin was not called') + endif + let names = a:0 == 1 && type(a:1) == s:TYPE.list ? a:1 : a:000 + let unknowns = filter(copy(names), '!has_key(g:plugs, v:val)') + if !empty(unknowns) + let s = len(unknowns) > 1 ? 's' : '' + return s:err(printf('Unknown plugin%s: %s', s, join(unknowns, ', '))) + end + let unloaded = filter(copy(names), '!get(s:loaded, v:val, 0)') + if !empty(unloaded) + for name in unloaded + call s:lod([name], ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + endfor + call s:dobufread(unloaded) + return 1 + end + return 0 +endfunction + +function! s:remove_triggers(name) + if !has_key(s:triggers, a:name) + return + endif + for cmd in s:triggers[a:name].cmd + execute 'silent! delc' cmd + endfor + for map in s:triggers[a:name].map + execute 'silent! unmap' map + execute 'silent! iunmap' map + endfor + call remove(s:triggers, a:name) +endfunction + +function! s:lod(names, types, ...) + for name in a:names + call s:remove_triggers(name) + let s:loaded[name] = 1 + endfor + call s:reorg_rtp() + + for name in a:names + let rtp = s:rtp(g:plugs[name]) + for dir in a:types + call s:source(rtp, dir.'/**/*.vim') + endfor + if a:0 + if !s:source(rtp, a:1) && !empty(s:glob(rtp, a:2)) + execute 'runtime' a:1 + endif + call s:source(rtp, a:2) + endif + call s:doautocmd('User', name) + endfor +endfunction + +function! s:lod_ft(pat, names) + let syn = 'syntax/'.a:pat.'.vim' + call s:lod(a:names, ['plugin', 'after/plugin'], syn, 'after/'.syn) + execute 'autocmd! PlugLOD FileType' a:pat + call s:doautocmd('filetypeplugin', 'FileType') + call s:doautocmd('filetypeindent', 'FileType') +endfunction + +function! s:lod_cmd(cmd, bang, l1, l2, args, names) + call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) + execute printf('%s%s%s %s', (a:l1 == a:l2 ? '' : (a:l1.','.a:l2)), a:cmd, a:bang, a:args) +endfunction + +function! s:lod_map(map, names, with_prefix, prefix) + call s:lod(a:names, ['ftdetect', 'after/ftdetect', 'plugin', 'after/plugin']) + call s:dobufread(a:names) + let extra = '' + while 1 + let c = getchar(0) + if c == 0 + break + endif + let extra .= nr2char(c) + endwhile + + if a:with_prefix + let prefix = v:count ? v:count : '' + let prefix .= '"'.v:register.a:prefix + if mode(1) == 'no' + if v:operator == 'c' + let prefix = "\" . prefix + endif + let prefix .= v:operator + endif + call feedkeys(prefix, 'n') + endif + call feedkeys(substitute(a:map, '^', "\", '') . extra) +endfunction + +function! plug#(repo, ...) + if a:0 > 1 + return s:err('Invalid number of arguments (1..2)') + endif + + try + let repo = s:trim(a:repo) + let opts = a:0 == 1 ? s:parse_options(a:1) : s:base_spec + let name = get(opts, 'as', s:plug_fnamemodify(repo, ':t:s?\.git$??')) + let spec = extend(s:infer_properties(name, repo), opts) + if !has_key(g:plugs, name) + call add(g:plugs_order, name) + endif + let g:plugs[name] = spec + let s:loaded[name] = get(s:loaded, name, 0) + catch + return s:err(v:exception) + endtry +endfunction + +function! s:parse_options(arg) + let opts = copy(s:base_spec) + let type = type(a:arg) + if type == s:TYPE.string + let opts.tag = a:arg + elseif type == s:TYPE.dict + call extend(opts, a:arg) + if has_key(opts, 'dir') + let opts.dir = s:dirpath(s:plug_expand(opts.dir)) + endif + else + throw 'Invalid argument type (expected: string or dictionary)' + endif + return opts +endfunction + +function! s:infer_properties(name, repo) + let repo = a:repo + if s:is_local_plug(repo) + return { 'dir': s:dirpath(s:plug_expand(repo)) } + else + if repo =~ ':' + let uri = repo + else + if repo !~ '/' + throw printf('Invalid argument: %s (implicit `vim-scripts'' expansion is deprecated)', repo) + endif + let fmt = get(g:, 'plug_url_format', 'https://git::@github.com/%s.git') + let uri = printf(fmt, repo) + endif + return { 'dir': s:dirpath(g:plug_home.'/'.a:name), 'uri': uri } + endif +endfunction + +function! s:install(force, names) + call s:update_impl(0, a:force, a:names) +endfunction + +function! s:update(force, names) + call s:update_impl(1, a:force, a:names) +endfunction + +function! plug#helptags() + if !exists('g:plugs') + return s:err('plug#begin was not called') + endif + for spec in values(g:plugs) + let docd = join([s:rtp(spec), 'doc'], '/') + if isdirectory(docd) + silent! execute 'helptags' s:esc(docd) + endif + endfor + return 1 +endfunction + +function! s:syntax() + syntax clear + syntax region plug1 start=/\%1l/ end=/\%2l/ contains=plugNumber + syntax region plug2 start=/\%2l/ end=/\%3l/ contains=plugBracket,plugX + syn match plugNumber /[0-9]\+[0-9.]*/ contained + syn match plugBracket /[[\]]/ contained + syn match plugX /x/ contained + syn match plugDash /^-/ + syn match plugPlus /^+/ + syn match plugStar /^*/ + syn match plugMessage /\(^- \)\@<=.*/ + syn match plugName /\(^- \)\@<=[^ ]*:/ + syn match plugSha /\%(: \)\@<=[0-9a-f]\{4,}$/ + syn match plugTag /(tag: [^)]\+)/ + syn match plugInstall /\(^+ \)\@<=[^:]*/ + syn match plugUpdate /\(^* \)\@<=[^:]*/ + syn match plugCommit /^ \X*[0-9a-f]\{7,9} .*/ contains=plugRelDate,plugEdge,plugTag + syn match plugEdge /^ \X\+$/ + syn match plugEdge /^ \X*/ contained nextgroup=plugSha + syn match plugSha /[0-9a-f]\{7,9}/ contained + syn match plugRelDate /([^)]*)$/ contained + syn match plugNotLoaded /(not loaded)$/ + syn match plugError /^x.*/ + syn region plugDeleted start=/^\~ .*/ end=/^\ze\S/ + syn match plugH2 /^.*:\n-\+$/ + syn keyword Function PlugInstall PlugStatus PlugUpdate PlugClean + hi def link plug1 Title + hi def link plug2 Repeat + hi def link plugH2 Type + hi def link plugX Exception + hi def link plugBracket Structure + hi def link plugNumber Number + + hi def link plugDash Special + hi def link plugPlus Constant + hi def link plugStar Boolean + + hi def link plugMessage Function + hi def link plugName Label + hi def link plugInstall Function + hi def link plugUpdate Type + + hi def link plugError Error + hi def link plugDeleted Ignore + hi def link plugRelDate Comment + hi def link plugEdge PreProc + hi def link plugSha Identifier + hi def link plugTag Constant + + hi def link plugNotLoaded Comment +endfunction + +function! s:lpad(str, len) + return a:str . repeat(' ', a:len - len(a:str)) +endfunction + +function! s:lines(msg) + return split(a:msg, "[\r\n]") +endfunction + +function! s:lastline(msg) + return get(s:lines(a:msg), -1, '') +endfunction + +function! s:new_window() + execute get(g:, 'plug_window', 'vertical topleft new') +endfunction + +function! s:plug_window_exists() + let buflist = tabpagebuflist(s:plug_tab) + return !empty(buflist) && index(buflist, s:plug_buf) >= 0 +endfunction + +function! s:switch_in() + if !s:plug_window_exists() + return 0 + endif + + if winbufnr(0) != s:plug_buf + let s:pos = [tabpagenr(), winnr(), winsaveview()] + execute 'normal!' s:plug_tab.'gt' + let winnr = bufwinnr(s:plug_buf) + execute winnr.'wincmd w' + call add(s:pos, winsaveview()) + else + let s:pos = [winsaveview()] + endif + + setlocal modifiable + return 1 +endfunction + +function! s:switch_out(...) + call winrestview(s:pos[-1]) + setlocal nomodifiable + if a:0 > 0 + execute a:1 + endif + + if len(s:pos) > 1 + execute 'normal!' s:pos[0].'gt' + execute s:pos[1] 'wincmd w' + call winrestview(s:pos[2]) + endif +endfunction + +function! s:finish_bindings() + nnoremap R :call retry() + nnoremap D :PlugDiff + nnoremap S :PlugStatus + nnoremap U :call status_update() + xnoremap U :call status_update() + nnoremap ]] :silent! call section('') + nnoremap [[ :silent! call section('b') +endfunction + +function! s:prepare(...) + if empty(s:plug_getcwd()) + throw 'Invalid current working directory. Cannot proceed.' + endif + + for evar in ['$GIT_DIR', '$GIT_WORK_TREE'] + if exists(evar) + throw evar.' detected. Cannot proceed.' + endif + endfor + + call s:job_abort() + if s:switch_in() + if b:plug_preview == 1 + pc + endif + enew + else + call s:new_window() + endif + + nnoremap q :if b:plug_preview==1pcendifbd + if a:0 == 0 + call s:finish_bindings() + endif + let b:plug_preview = -1 + let s:plug_tab = tabpagenr() + let s:plug_buf = winbufnr(0) + call s:assign_name() + + for k in ['', 'L', 'o', 'X', 'd', 'dd'] + execute 'silent! unmap ' k + endfor + setlocal buftype=nofile bufhidden=wipe nobuflisted nolist noswapfile nowrap cursorline modifiable nospell + if exists('+colorcolumn') + setlocal colorcolumn= + endif + setf vim-plug + if exists('g:syntax_on') + call s:syntax() + endif +endfunction + +function! s:assign_name() + " Assign buffer name + let prefix = '[Plugins]' + let name = prefix + let idx = 2 + while bufexists(name) + let name = printf('%s (%s)', prefix, idx) + let idx = idx + 1 + endwhile + silent! execute 'f' fnameescape(name) +endfunction + +function! s:chsh(swap) + let prev = [&shell, &shellcmdflag, &shellredir] + if !s:is_win + set shell=sh + endif + if a:swap + if &shell =~# 'powershell\.exe' || &shell =~# 'pwsh$' + let &shellredir = '2>&1 | Out-File -Encoding UTF8 %s' + elseif &shell =~# 'sh' || &shell =~# 'cmd\.exe' + set shellredir=>%s\ 2>&1 + endif + endif + return prev +endfunction + +function! s:bang(cmd, ...) + let batchfile = '' + try + let [sh, shellcmdflag, shrd] = s:chsh(a:0) + " FIXME: Escaping is incomplete. We could use shellescape with eval, + " but it won't work on Windows. + let cmd = a:0 ? s:with_cd(a:cmd, a:1) : a:cmd + if s:is_win + let [batchfile, cmd] = s:batchfile(cmd) + endif + let g:_plug_bang = (s:is_win && has('gui_running') ? 'silent ' : '').'!'.escape(cmd, '#!%') + execute "normal! :execute g:_plug_bang\\" + finally + unlet g:_plug_bang + let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] + if s:is_win && filereadable(batchfile) + call delete(batchfile) + endif + endtry + return v:shell_error ? 'Exit status: ' . v:shell_error : '' +endfunction + +function! s:regress_bar() + let bar = substitute(getline(2)[1:-2], '.*\zs=', 'x', '') + call s:progress_bar(2, bar, len(bar)) +endfunction + +function! s:is_updated(dir) + return !empty(s:system_chomp(['git', 'log', '--pretty=format:%h', 'HEAD...HEAD@{1}'], a:dir)) +endfunction + +function! s:do(pull, force, todo) + for [name, spec] in items(a:todo) + if !isdirectory(spec.dir) + continue + endif + let installed = has_key(s:update.new, name) + let updated = installed ? 0 : + \ (a:pull && index(s:update.errors, name) < 0 && s:is_updated(spec.dir)) + if a:force || installed || updated + execute 'cd' s:esc(spec.dir) + call append(3, '- Post-update hook for '. name .' ... ') + let error = '' + let type = type(spec.do) + if type == s:TYPE.string + if spec.do[0] == ':' + if !get(s:loaded, name, 0) + let s:loaded[name] = 1 + call s:reorg_rtp() + endif + call s:load_plugin(spec) + try + execute spec.do[1:] + catch + let error = v:exception + endtry + if !s:plug_window_exists() + cd - + throw 'Warning: vim-plug was terminated by the post-update hook of '.name + endif + else + let error = s:bang(spec.do) + endif + elseif type == s:TYPE.funcref + try + let status = installed ? 'installed' : (updated ? 'updated' : 'unchanged') + call spec.do({ 'name': name, 'status': status, 'force': a:force }) + catch + let error = v:exception + endtry + else + let error = 'Invalid hook type' + endif + call s:switch_in() + call setline(4, empty(error) ? (getline(4) . 'OK') + \ : ('x' . getline(4)[1:] . error)) + if !empty(error) + call add(s:update.errors, name) + call s:regress_bar() + endif + cd - + endif + endfor +endfunction + +function! s:hash_match(a, b) + return stridx(a:a, a:b) == 0 || stridx(a:b, a:a) == 0 +endfunction + +function! s:checkout(spec) + let sha = a:spec.commit + let output = s:system(['git', 'rev-parse', 'HEAD'], a:spec.dir) + if !v:shell_error && !s:hash_match(sha, s:lines(output)[0]) + let output = s:system( + \ 'git fetch --depth 999999 && git checkout '.plug#shellescape(sha).' --', a:spec.dir) + endif + return output +endfunction + +function! s:finish(pull) + let new_frozen = len(filter(keys(s:update.new), 'g:plugs[v:val].frozen')) + if new_frozen + let s = new_frozen > 1 ? 's' : '' + call append(3, printf('- Installed %d frozen plugin%s', new_frozen, s)) + endif + call append(3, '- Finishing ... ') | 4 + redraw + call plug#helptags() + call plug#end() + call setline(4, getline(4) . 'Done!') + redraw + let msgs = [] + if !empty(s:update.errors) + call add(msgs, "Press 'R' to retry.") + endif + if a:pull && len(s:update.new) < len(filter(getline(5, '$'), + \ "v:val =~ '^- ' && v:val !~# 'Already up.to.date'")) + call add(msgs, "Press 'D' to see the updated changes.") + endif + echo join(msgs, ' ') + call s:finish_bindings() +endfunction + +function! s:retry() + if empty(s:update.errors) + return + endif + echo + call s:update_impl(s:update.pull, s:update.force, + \ extend(copy(s:update.errors), [s:update.threads])) +endfunction + +function! s:is_managed(name) + return has_key(g:plugs[a:name], 'uri') +endfunction + +function! s:names(...) + return sort(filter(keys(g:plugs), 'stridx(v:val, a:1) == 0 && s:is_managed(v:val)')) +endfunction + +function! s:check_ruby() + silent! ruby require 'thread'; VIM::command("let g:plug_ruby = '#{RUBY_VERSION}'") + if !exists('g:plug_ruby') + redraw! + return s:warn('echom', 'Warning: Ruby interface is broken') + endif + let ruby_version = split(g:plug_ruby, '\.') + unlet g:plug_ruby + return s:version_requirement(ruby_version, [1, 8, 7]) +endfunction + +function! s:update_impl(pull, force, args) abort + let sync = index(a:args, '--sync') >= 0 || has('vim_starting') + let args = filter(copy(a:args), 'v:val != "--sync"') + let threads = (len(args) > 0 && args[-1] =~ '^[1-9][0-9]*$') ? + \ remove(args, -1) : get(g:, 'plug_threads', 16) + + let managed = filter(copy(g:plugs), 's:is_managed(v:key)') + let todo = empty(args) ? filter(managed, '!v:val.frozen || !isdirectory(v:val.dir)') : + \ filter(managed, 'index(args, v:key) >= 0') + + if empty(todo) + return s:warn('echo', 'No plugin to '. (a:pull ? 'update' : 'install')) + endif + + if !s:is_win && s:git_version_requirement(2, 3) + let s:git_terminal_prompt = exists('$GIT_TERMINAL_PROMPT') ? $GIT_TERMINAL_PROMPT : '' + let $GIT_TERMINAL_PROMPT = 0 + for plug in values(todo) + let plug.uri = substitute(plug.uri, + \ '^https://git::@github\.com', 'https://github.com', '') + endfor + endif + + if !isdirectory(g:plug_home) + try + call mkdir(g:plug_home, 'p') + catch + return s:err(printf('Invalid plug directory: %s. '. + \ 'Try to call plug#begin with a valid directory', g:plug_home)) + endtry + endif + + if has('nvim') && !exists('*jobwait') && threads > 1 + call s:warn('echom', '[vim-plug] Update Neovim for parallel installer') + endif + + let use_job = s:nvim || s:vim8 + let python = (has('python') || has('python3')) && !use_job + let ruby = has('ruby') && !use_job && (v:version >= 703 || v:version == 702 && has('patch374')) && !(s:is_win && has('gui_running')) && threads > 1 && s:check_ruby() + + let s:update = { + \ 'start': reltime(), + \ 'all': todo, + \ 'todo': copy(todo), + \ 'errors': [], + \ 'pull': a:pull, + \ 'force': a:force, + \ 'new': {}, + \ 'threads': (python || ruby || use_job) ? min([len(todo), threads]) : 1, + \ 'bar': '', + \ 'fin': 0 + \ } + + call s:prepare(1) + call append(0, ['', '']) + normal! 2G + silent! redraw + + let s:clone_opt = [] + if get(g:, 'plug_shallow', 1) + call extend(s:clone_opt, ['--depth', '1']) + if s:git_version_requirement(1, 7, 10) + call add(s:clone_opt, '--no-single-branch') + endif + endif + + if has('win32unix') || has('wsl') + call extend(s:clone_opt, ['-c', 'core.eol=lf', '-c', 'core.autocrlf=input']) + endif + + let s:submodule_opt = s:git_version_requirement(2, 8) ? ' --jobs='.threads : '' + + " Python version requirement (>= 2.7) + if python && !has('python3') && !ruby && !use_job && s:update.threads > 1 + redir => pyv + silent python import platform; print platform.python_version() + redir END + let python = s:version_requirement( + \ map(split(split(pyv)[0], '\.'), 'str2nr(v:val)'), [2, 6]) + endif + + if (python || ruby) && s:update.threads > 1 + try + let imd = &imd + if s:mac_gui + set noimd + endif + if ruby + call s:update_ruby() + else + call s:update_python() + endif + catch + let lines = getline(4, '$') + let printed = {} + silent! 4,$d _ + for line in lines + let name = s:extract_name(line, '.', '') + if empty(name) || !has_key(printed, name) + call append('$', line) + if !empty(name) + let printed[name] = 1 + if line[0] == 'x' && index(s:update.errors, name) < 0 + call add(s:update.errors, name) + end + endif + endif + endfor + finally + let &imd = imd + call s:update_finish() + endtry + else + call s:update_vim() + while use_job && sync + sleep 100m + if s:update.fin + break + endif + endwhile + endif +endfunction + +function! s:log4(name, msg) + call setline(4, printf('- %s (%s)', a:msg, a:name)) + redraw +endfunction + +function! s:update_finish() + if exists('s:git_terminal_prompt') + let $GIT_TERMINAL_PROMPT = s:git_terminal_prompt + endif + if s:switch_in() + call append(3, '- Updating ...') | 4 + for [name, spec] in items(filter(copy(s:update.all), 'index(s:update.errors, v:key) < 0 && (s:update.force || s:update.pull || has_key(s:update.new, v:key))')) + let [pos, _] = s:logpos(name) + if !pos + continue + endif + if has_key(spec, 'commit') + call s:log4(name, 'Checking out '.spec.commit) + let out = s:checkout(spec) + elseif has_key(spec, 'tag') + let tag = spec.tag + if tag =~ '\*' + let tags = s:lines(s:system('git tag --list '.plug#shellescape(tag).' --sort -version:refname 2>&1', spec.dir)) + if !v:shell_error && !empty(tags) + let tag = tags[0] + call s:log4(name, printf('Latest tag for %s -> %s', spec.tag, tag)) + call append(3, '') + endif + endif + call s:log4(name, 'Checking out '.tag) + let out = s:system('git checkout -q '.plug#shellescape(tag).' -- 2>&1', spec.dir) + else + let branch = get(spec, 'branch', 'master') + call s:log4(name, 'Merging origin/'.s:esc(branch)) + let out = s:system('git checkout -q '.plug#shellescape(branch).' -- 2>&1' + \. (has_key(s:update.new, name) ? '' : ('&& git merge --ff-only '.plug#shellescape('origin/'.branch).' 2>&1')), spec.dir) + endif + if !v:shell_error && filereadable(spec.dir.'/.gitmodules') && + \ (s:update.force || has_key(s:update.new, name) || s:is_updated(spec.dir)) + call s:log4(name, 'Updating submodules. This may take a while.') + let out .= s:bang('git submodule update --init --recursive'.s:submodule_opt.' 2>&1', spec.dir) + endif + let msg = s:format_message(v:shell_error ? 'x': '-', name, out) + if v:shell_error + call add(s:update.errors, name) + call s:regress_bar() + silent execute pos 'd _' + call append(4, msg) | 4 + elseif !empty(out) + call setline(pos, msg[0]) + endif + redraw + endfor + silent 4 d _ + try + call s:do(s:update.pull, s:update.force, filter(copy(s:update.all), 'index(s:update.errors, v:key) < 0 && has_key(v:val, "do")')) + catch + call s:warn('echom', v:exception) + call s:warn('echo', '') + return + endtry + call s:finish(s:update.pull) + call setline(1, 'Updated. Elapsed time: ' . split(reltimestr(reltime(s:update.start)))[0] . ' sec.') + call s:switch_out('normal! gg') + endif +endfunction + +function! s:job_abort() + if (!s:nvim && !s:vim8) || !exists('s:jobs') + return + endif + + for [name, j] in items(s:jobs) + if s:nvim + silent! call jobstop(j.jobid) + elseif s:vim8 + silent! call job_stop(j.jobid) + endif + if j.new + call s:rm_rf(g:plugs[name].dir) + endif + endfor + let s:jobs = {} +endfunction + +function! s:last_non_empty_line(lines) + let len = len(a:lines) + for idx in range(len) + let line = a:lines[len-idx-1] + if !empty(line) + return line + endif + endfor + return '' +endfunction + +function! s:job_out_cb(self, data) abort + let self = a:self + let data = remove(self.lines, -1) . a:data + let lines = map(split(data, "\n", 1), 'split(v:val, "\r", 1)[-1]') + call extend(self.lines, lines) + " To reduce the number of buffer updates + let self.tick = get(self, 'tick', -1) + 1 + if !self.running || self.tick % len(s:jobs) == 0 + let bullet = self.running ? (self.new ? '+' : '*') : (self.error ? 'x' : '-') + let result = self.error ? join(self.lines, "\n") : s:last_non_empty_line(self.lines) + call s:log(bullet, self.name, result) + endif +endfunction + +function! s:job_exit_cb(self, data) abort + let a:self.running = 0 + let a:self.error = a:data != 0 + call s:reap(a:self.name) + call s:tick() +endfunction + +function! s:job_cb(fn, job, ch, data) + if !s:plug_window_exists() " plug window closed + return s:job_abort() + endif + call call(a:fn, [a:job, a:data]) +endfunction + +function! s:nvim_cb(job_id, data, event) dict abort + return (a:event == 'stdout' || a:event == 'stderr') ? + \ s:job_cb('s:job_out_cb', self, 0, join(a:data, "\n")) : + \ s:job_cb('s:job_exit_cb', self, 0, a:data) +endfunction + +function! s:spawn(name, cmd, opts) + let job = { 'name': a:name, 'running': 1, 'error': 0, 'lines': [''], + \ 'new': get(a:opts, 'new', 0) } + let s:jobs[a:name] = job + + if s:nvim + if has_key(a:opts, 'dir') + let job.cwd = a:opts.dir + endif + let argv = a:cmd + call extend(job, { + \ 'on_stdout': function('s:nvim_cb'), + \ 'on_stderr': function('s:nvim_cb'), + \ 'on_exit': function('s:nvim_cb'), + \ }) + let jid = s:plug_call('jobstart', argv, job) + if jid > 0 + let job.jobid = jid + else + let job.running = 0 + let job.error = 1 + let job.lines = [jid < 0 ? argv[0].' is not executable' : + \ 'Invalid arguments (or job table is full)'] + endif + elseif s:vim8 + let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"script": 0})')) + if has_key(a:opts, 'dir') + let cmd = s:with_cd(cmd, a:opts.dir, 0) + endif + let argv = s:is_win ? ['cmd', '/s', '/c', '"'.cmd.'"'] : ['sh', '-c', cmd] + let jid = job_start(s:is_win ? join(argv, ' ') : argv, { + \ 'out_cb': function('s:job_cb', ['s:job_out_cb', job]), + \ 'err_cb': function('s:job_cb', ['s:job_out_cb', job]), + \ 'exit_cb': function('s:job_cb', ['s:job_exit_cb', job]), + \ 'err_mode': 'raw', + \ 'out_mode': 'raw' + \}) + if job_status(jid) == 'run' + let job.jobid = jid + else + let job.running = 0 + let job.error = 1 + let job.lines = ['Failed to start job'] + endif + else + let job.lines = s:lines(call('s:system', has_key(a:opts, 'dir') ? [a:cmd, a:opts.dir] : [a:cmd])) + let job.error = v:shell_error != 0 + let job.running = 0 + endif +endfunction + +function! s:reap(name) + let job = s:jobs[a:name] + if job.error + call add(s:update.errors, a:name) + elseif get(job, 'new', 0) + let s:update.new[a:name] = 1 + endif + let s:update.bar .= job.error ? 'x' : '=' + + let bullet = job.error ? 'x' : '-' + let result = job.error ? join(job.lines, "\n") : s:last_non_empty_line(job.lines) + call s:log(bullet, a:name, empty(result) ? 'OK' : result) + call s:bar() + + call remove(s:jobs, a:name) +endfunction + +function! s:bar() + if s:switch_in() + let total = len(s:update.all) + call setline(1, (s:update.pull ? 'Updating' : 'Installing'). + \ ' plugins ('.len(s:update.bar).'/'.total.')') + call s:progress_bar(2, s:update.bar, total) + call s:switch_out() + endif +endfunction + +function! s:logpos(name) + let max = line('$') + for i in range(4, max > 4 ? max : 4) + if getline(i) =~# '^[-+x*] '.a:name.':' + for j in range(i + 1, max > 5 ? max : 5) + if getline(j) !~ '^ ' + return [i, j - 1] + endif + endfor + return [i, i] + endif + endfor + return [0, 0] +endfunction + +function! s:log(bullet, name, lines) + if s:switch_in() + let [b, e] = s:logpos(a:name) + if b > 0 + silent execute printf('%d,%d d _', b, e) + if b > winheight('.') + let b = 4 + endif + else + let b = 4 + endif + " FIXME For some reason, nomodifiable is set after :d in vim8 + setlocal modifiable + call append(b - 1, s:format_message(a:bullet, a:name, a:lines)) + call s:switch_out() + endif +endfunction + +function! s:update_vim() + let s:jobs = {} + + call s:bar() + call s:tick() +endfunction + +function! s:tick() + let pull = s:update.pull + let prog = s:progress_opt(s:nvim || s:vim8) +while 1 " Without TCO, Vim stack is bound to explode + if empty(s:update.todo) + if empty(s:jobs) && !s:update.fin + call s:update_finish() + let s:update.fin = 1 + endif + return + endif + + let name = keys(s:update.todo)[0] + let spec = remove(s:update.todo, name) + let new = empty(globpath(spec.dir, '.git', 1)) + + call s:log(new ? '+' : '*', name, pull ? 'Updating ...' : 'Installing ...') + redraw + + let has_tag = has_key(spec, 'tag') + if !new + let [error, _] = s:git_validate(spec, 0) + if empty(error) + if pull + let cmd = ['git', 'fetch'] + if has_tag && !empty(globpath(spec.dir, '.git/shallow')) + call extend(cmd, ['--depth', '99999999']) + endif + if !empty(prog) + call add(cmd, prog) + endif + call s:spawn(name, cmd, { 'dir': spec.dir }) + else + let s:jobs[name] = { 'running': 0, 'lines': ['Already installed'], 'error': 0 } + endif + else + let s:jobs[name] = { 'running': 0, 'lines': s:lines(error), 'error': 1 } + endif + else + let cmd = ['git', 'clone'] + if !has_tag + call extend(cmd, s:clone_opt) + endif + if !empty(prog) + call add(cmd, prog) + endif + call s:spawn(name, extend(cmd, [spec.uri, s:trim(spec.dir)]), { 'new': 1 }) + endif + + if !s:jobs[name].running + call s:reap(name) + endif + if len(s:jobs) >= s:update.threads + break + endif +endwhile +endfunction + +function! s:update_python() +let py_exe = has('python') ? 'python' : 'python3' +execute py_exe "<< EOF" +import datetime +import functools +import os +try: + import queue +except ImportError: + import Queue as queue +import random +import re +import shutil +import signal +import subprocess +import tempfile +import threading as thr +import time +import traceback +import vim + +G_NVIM = vim.eval("has('nvim')") == '1' +G_PULL = vim.eval('s:update.pull') == '1' +G_RETRIES = int(vim.eval('get(g:, "plug_retries", 2)')) + 1 +G_TIMEOUT = int(vim.eval('get(g:, "plug_timeout", 60)')) +G_CLONE_OPT = ' '.join(vim.eval('s:clone_opt')) +G_PROGRESS = vim.eval('s:progress_opt(1)') +G_LOG_PROB = 1.0 / int(vim.eval('s:update.threads')) +G_STOP = thr.Event() +G_IS_WIN = vim.eval('s:is_win') == '1' + +class PlugError(Exception): + def __init__(self, msg): + self.msg = msg +class CmdTimedOut(PlugError): + pass +class CmdFailed(PlugError): + pass +class InvalidURI(PlugError): + pass +class Action(object): + INSTALL, UPDATE, ERROR, DONE = ['+', '*', 'x', '-'] + +class Buffer(object): + def __init__(self, lock, num_plugs, is_pull): + self.bar = '' + self.event = 'Updating' if is_pull else 'Installing' + self.lock = lock + self.maxy = int(vim.eval('winheight(".")')) + self.num_plugs = num_plugs + + def __where(self, name): + """ Find first line with name in current buffer. Return line num. """ + found, lnum = False, 0 + matcher = re.compile('^[-+x*] {0}:'.format(name)) + for line in vim.current.buffer: + if matcher.search(line) is not None: + found = True + break + lnum += 1 + + if not found: + lnum = -1 + return lnum + + def header(self): + curbuf = vim.current.buffer + curbuf[0] = self.event + ' plugins ({0}/{1})'.format(len(self.bar), self.num_plugs) + + num_spaces = self.num_plugs - len(self.bar) + curbuf[1] = '[{0}{1}]'.format(self.bar, num_spaces * ' ') + + with self.lock: + vim.command('normal! 2G') + vim.command('redraw') + + def write(self, action, name, lines): + first, rest = lines[0], lines[1:] + msg = ['{0} {1}{2}{3}'.format(action, name, ': ' if first else '', first)] + msg.extend([' ' + line for line in rest]) + + try: + if action == Action.ERROR: + self.bar += 'x' + vim.command("call add(s:update.errors, '{0}')".format(name)) + elif action == Action.DONE: + self.bar += '=' + + curbuf = vim.current.buffer + lnum = self.__where(name) + if lnum != -1: # Found matching line num + del curbuf[lnum] + if lnum > self.maxy and action in set([Action.INSTALL, Action.UPDATE]): + lnum = 3 + else: + lnum = 3 + curbuf.append(msg, lnum) + + self.header() + except vim.error: + pass + +class Command(object): + CD = 'cd /d' if G_IS_WIN else 'cd' + + def __init__(self, cmd, cmd_dir=None, timeout=60, cb=None, clean=None): + self.cmd = cmd + if cmd_dir: + self.cmd = '{0} {1} && {2}'.format(Command.CD, cmd_dir, self.cmd) + self.timeout = timeout + self.callback = cb if cb else (lambda msg: None) + self.clean = clean if clean else (lambda: None) + self.proc = None + + @property + def alive(self): + """ Returns true only if command still running. """ + return self.proc and self.proc.poll() is None + + def execute(self, ntries=3): + """ Execute the command with ntries if CmdTimedOut. + Returns the output of the command if no Exception. + """ + attempt, finished, limit = 0, False, self.timeout + + while not finished: + try: + attempt += 1 + result = self.try_command() + finished = True + return result + except CmdTimedOut: + if attempt != ntries: + self.notify_retry() + self.timeout += limit + else: + raise + + def notify_retry(self): + """ Retry required for command, notify user. """ + for count in range(3, 0, -1): + if G_STOP.is_set(): + raise KeyboardInterrupt + msg = 'Timeout. Will retry in {0} second{1} ...'.format( + count, 's' if count != 1 else '') + self.callback([msg]) + time.sleep(1) + self.callback(['Retrying ...']) + + def try_command(self): + """ Execute a cmd & poll for callback. Returns list of output. + Raises CmdFailed -> return code for Popen isn't 0 + Raises CmdTimedOut -> command exceeded timeout without new output + """ + first_line = True + + try: + tfile = tempfile.NamedTemporaryFile(mode='w+b') + preexec_fn = not G_IS_WIN and os.setsid or None + self.proc = subprocess.Popen(self.cmd, stdout=tfile, + stderr=subprocess.STDOUT, + stdin=subprocess.PIPE, shell=True, + preexec_fn=preexec_fn) + thrd = thr.Thread(target=(lambda proc: proc.wait()), args=(self.proc,)) + thrd.start() + + thread_not_started = True + while thread_not_started: + try: + thrd.join(0.1) + thread_not_started = False + except RuntimeError: + pass + + while self.alive: + if G_STOP.is_set(): + raise KeyboardInterrupt + + if first_line or random.random() < G_LOG_PROB: + first_line = False + line = '' if G_IS_WIN else nonblock_read(tfile.name) + if line: + self.callback([line]) + + time_diff = time.time() - os.path.getmtime(tfile.name) + if time_diff > self.timeout: + raise CmdTimedOut(['Timeout!']) + + thrd.join(0.5) + + tfile.seek(0) + result = [line.decode('utf-8', 'replace').rstrip() for line in tfile] + + if self.proc.returncode != 0: + raise CmdFailed([''] + result) + + return result + except: + self.terminate() + raise + + def terminate(self): + """ Terminate process and cleanup. """ + if self.alive: + if G_IS_WIN: + os.kill(self.proc.pid, signal.SIGINT) + else: + os.killpg(self.proc.pid, signal.SIGTERM) + self.clean() + +class Plugin(object): + def __init__(self, name, args, buf_q, lock): + self.name = name + self.args = args + self.buf_q = buf_q + self.lock = lock + self.tag = args.get('tag', 0) + + def manage(self): + try: + if os.path.exists(self.args['dir']): + self.update() + else: + self.install() + with self.lock: + thread_vim_command("let s:update.new['{0}'] = 1".format(self.name)) + except PlugError as exc: + self.write(Action.ERROR, self.name, exc.msg) + except KeyboardInterrupt: + G_STOP.set() + self.write(Action.ERROR, self.name, ['Interrupted!']) + except: + # Any exception except those above print stack trace + msg = 'Trace:\n{0}'.format(traceback.format_exc().rstrip()) + self.write(Action.ERROR, self.name, msg.split('\n')) + raise + + def install(self): + target = self.args['dir'] + if target[-1] == '\\': + target = target[0:-1] + + def clean(target): + def _clean(): + try: + shutil.rmtree(target) + except OSError: + pass + return _clean + + self.write(Action.INSTALL, self.name, ['Installing ...']) + callback = functools.partial(self.write, Action.INSTALL, self.name) + cmd = 'git clone {0} {1} {2} {3} 2>&1'.format( + '' if self.tag else G_CLONE_OPT, G_PROGRESS, self.args['uri'], + esc(target)) + com = Command(cmd, None, G_TIMEOUT, callback, clean(target)) + result = com.execute(G_RETRIES) + self.write(Action.DONE, self.name, result[-1:]) + + def repo_uri(self): + cmd = 'git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url' + command = Command(cmd, self.args['dir'], G_TIMEOUT,) + result = command.execute(G_RETRIES) + return result[-1] + + def update(self): + actual_uri = self.repo_uri() + expect_uri = self.args['uri'] + regex = re.compile(r'^(?:\w+://)?(?:[^@/]*@)?([^:/]*(?::[0-9]*)?)[:/](.*?)(?:\.git)?/?$') + ma = regex.match(actual_uri) + mb = regex.match(expect_uri) + if ma is None or mb is None or ma.groups() != mb.groups(): + msg = ['', + 'Invalid URI: {0}'.format(actual_uri), + 'Expected {0}'.format(expect_uri), + 'PlugClean required.'] + raise InvalidURI(msg) + + if G_PULL: + self.write(Action.UPDATE, self.name, ['Updating ...']) + callback = functools.partial(self.write, Action.UPDATE, self.name) + fetch_opt = '--depth 99999999' if self.tag and os.path.isfile(os.path.join(self.args['dir'], '.git/shallow')) else '' + cmd = 'git fetch {0} {1} 2>&1'.format(fetch_opt, G_PROGRESS) + com = Command(cmd, self.args['dir'], G_TIMEOUT, callback) + result = com.execute(G_RETRIES) + self.write(Action.DONE, self.name, result[-1:]) + else: + self.write(Action.DONE, self.name, ['Already installed']) + + def write(self, action, name, msg): + self.buf_q.put((action, name, msg)) + +class PlugThread(thr.Thread): + def __init__(self, tname, args): + super(PlugThread, self).__init__() + self.tname = tname + self.args = args + + def run(self): + thr.current_thread().name = self.tname + buf_q, work_q, lock = self.args + + try: + while not G_STOP.is_set(): + name, args = work_q.get_nowait() + plug = Plugin(name, args, buf_q, lock) + plug.manage() + work_q.task_done() + except queue.Empty: + pass + +class RefreshThread(thr.Thread): + def __init__(self, lock): + super(RefreshThread, self).__init__() + self.lock = lock + self.running = True + + def run(self): + while self.running: + with self.lock: + thread_vim_command('noautocmd normal! a') + time.sleep(0.33) + + def stop(self): + self.running = False + +if G_NVIM: + def thread_vim_command(cmd): + vim.session.threadsafe_call(lambda: vim.command(cmd)) +else: + def thread_vim_command(cmd): + vim.command(cmd) + +def esc(name): + return '"' + name.replace('"', '\"') + '"' + +def nonblock_read(fname): + """ Read a file with nonblock flag. Return the last line. """ + fread = os.open(fname, os.O_RDONLY | os.O_NONBLOCK) + buf = os.read(fread, 100000).decode('utf-8', 'replace') + os.close(fread) + + line = buf.rstrip('\r\n') + left = max(line.rfind('\r'), line.rfind('\n')) + if left != -1: + left += 1 + line = line[left:] + + return line + +def main(): + thr.current_thread().name = 'main' + nthreads = int(vim.eval('s:update.threads')) + plugs = vim.eval('s:update.todo') + mac_gui = vim.eval('s:mac_gui') == '1' + + lock = thr.Lock() + buf = Buffer(lock, len(plugs), G_PULL) + buf_q, work_q = queue.Queue(), queue.Queue() + for work in plugs.items(): + work_q.put(work) + + start_cnt = thr.active_count() + for num in range(nthreads): + tname = 'PlugT-{0:02}'.format(num) + thread = PlugThread(tname, (buf_q, work_q, lock)) + thread.start() + if mac_gui: + rthread = RefreshThread(lock) + rthread.start() + + while not buf_q.empty() or thr.active_count() != start_cnt: + try: + action, name, msg = buf_q.get(True, 0.25) + buf.write(action, name, ['OK'] if not msg else msg) + buf_q.task_done() + except queue.Empty: + pass + except KeyboardInterrupt: + G_STOP.set() + + if mac_gui: + rthread.stop() + rthread.join() + +main() +EOF +endfunction + +function! s:update_ruby() + ruby << EOF + module PlugStream + SEP = ["\r", "\n", nil] + def get_line + buffer = '' + loop do + char = readchar rescue return + if SEP.include? char.chr + buffer << $/ + break + else + buffer << char + end + end + buffer + end + end unless defined?(PlugStream) + + def esc arg + %["#{arg.gsub('"', '\"')}"] + end + + def killall pid + pids = [pid] + if /mswin|mingw|bccwin/ =~ RUBY_PLATFORM + pids.each { |pid| Process.kill 'INT', pid.to_i rescue nil } + else + unless `which pgrep 2> /dev/null`.empty? + children = pids + until children.empty? + children = children.map { |pid| + `pgrep -P #{pid}`.lines.map { |l| l.chomp } + }.flatten + pids += children + end + end + pids.each { |pid| Process.kill 'TERM', pid.to_i rescue nil } + end + end + + def compare_git_uri a, b + regex = %r{^(?:\w+://)?(?:[^@/]*@)?([^:/]*(?::[0-9]*)?)[:/](.*?)(?:\.git)?/?$} + regex.match(a).to_a.drop(1) == regex.match(b).to_a.drop(1) + end + + require 'thread' + require 'fileutils' + require 'timeout' + running = true + iswin = VIM::evaluate('s:is_win').to_i == 1 + pull = VIM::evaluate('s:update.pull').to_i == 1 + base = VIM::evaluate('g:plug_home') + all = VIM::evaluate('s:update.todo') + limit = VIM::evaluate('get(g:, "plug_timeout", 60)') + tries = VIM::evaluate('get(g:, "plug_retries", 2)') + 1 + nthr = VIM::evaluate('s:update.threads').to_i + maxy = VIM::evaluate('winheight(".")').to_i + vim7 = VIM::evaluate('v:version').to_i <= 703 && RUBY_PLATFORM =~ /darwin/ + cd = iswin ? 'cd /d' : 'cd' + tot = VIM::evaluate('len(s:update.todo)') || 0 + bar = '' + skip = 'Already installed' + mtx = Mutex.new + take1 = proc { mtx.synchronize { running && all.shift } } + logh = proc { + cnt = bar.length + $curbuf[1] = "#{pull ? 'Updating' : 'Installing'} plugins (#{cnt}/#{tot})" + $curbuf[2] = '[' + bar.ljust(tot) + ']' + VIM::command('normal! 2G') + VIM::command('redraw') + } + where = proc { |name| (1..($curbuf.length)).find { |l| $curbuf[l] =~ /^[-+x*] #{name}:/ } } + log = proc { |name, result, type| + mtx.synchronize do + ing = ![true, false].include?(type) + bar += type ? '=' : 'x' unless ing + b = case type + when :install then '+' when :update then '*' + when true, nil then '-' else + VIM::command("call add(s:update.errors, '#{name}')") + 'x' + end + result = + if type || type.nil? + ["#{b} #{name}: #{result.lines.to_a.last || 'OK'}"] + elsif result =~ /^Interrupted|^Timeout/ + ["#{b} #{name}: #{result}"] + else + ["#{b} #{name}"] + result.lines.map { |l| " " << l } + end + if lnum = where.call(name) + $curbuf.delete lnum + lnum = 4 if ing && lnum > maxy + end + result.each_with_index do |line, offset| + $curbuf.append((lnum || 4) - 1 + offset, line.gsub(/\e\[./, '').chomp) + end + logh.call + end + } + bt = proc { |cmd, name, type, cleanup| + tried = timeout = 0 + begin + tried += 1 + timeout += limit + fd = nil + data = '' + if iswin + Timeout::timeout(timeout) do + tmp = VIM::evaluate('tempname()') + system("(#{cmd}) > #{tmp}") + data = File.read(tmp).chomp + File.unlink tmp rescue nil + end + else + fd = IO.popen(cmd).extend(PlugStream) + first_line = true + log_prob = 1.0 / nthr + while line = Timeout::timeout(timeout) { fd.get_line } + data << line + log.call name, line.chomp, type if name && (first_line || rand < log_prob) + first_line = false + end + fd.close + end + [$? == 0, data.chomp] + rescue Timeout::Error, Interrupt => e + if fd && !fd.closed? + killall fd.pid + fd.close + end + cleanup.call if cleanup + if e.is_a?(Timeout::Error) && tried < tries + 3.downto(1) do |countdown| + s = countdown > 1 ? 's' : '' + log.call name, "Timeout. Will retry in #{countdown} second#{s} ...", type + sleep 1 + end + log.call name, 'Retrying ...', type + retry + end + [false, e.is_a?(Interrupt) ? "Interrupted!" : "Timeout!"] + end + } + main = Thread.current + threads = [] + watcher = Thread.new { + if vim7 + while VIM::evaluate('getchar(1)') + sleep 0.1 + end + else + require 'io/console' # >= Ruby 1.9 + nil until IO.console.getch == 3.chr + end + mtx.synchronize do + running = false + threads.each { |t| t.raise Interrupt } unless vim7 + end + threads.each { |t| t.join rescue nil } + main.kill + } + refresh = Thread.new { + while true + mtx.synchronize do + break unless running + VIM::command('noautocmd normal! a') + end + sleep 0.2 + end + } if VIM::evaluate('s:mac_gui') == 1 + + clone_opt = VIM::evaluate('s:clone_opt').join(' ') + progress = VIM::evaluate('s:progress_opt(1)') + nthr.times do + mtx.synchronize do + threads << Thread.new { + while pair = take1.call + name = pair.first + dir, uri, tag = pair.last.values_at *%w[dir uri tag] + exists = File.directory? dir + ok, result = + if exists + chdir = "#{cd} #{iswin ? dir : esc(dir)}" + ret, data = bt.call "#{chdir} && git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url", nil, nil, nil + current_uri = data.lines.to_a.last + if !ret + if data =~ /^Interrupted|^Timeout/ + [false, data] + else + [false, [data.chomp, "PlugClean required."].join($/)] + end + elsif !compare_git_uri(current_uri, uri) + [false, ["Invalid URI: #{current_uri}", + "Expected: #{uri}", + "PlugClean required."].join($/)] + else + if pull + log.call name, 'Updating ...', :update + fetch_opt = (tag && File.exist?(File.join(dir, '.git/shallow'))) ? '--depth 99999999' : '' + bt.call "#{chdir} && git fetch #{fetch_opt} #{progress} 2>&1", name, :update, nil + else + [true, skip] + end + end + else + d = esc dir.sub(%r{[\\/]+$}, '') + log.call name, 'Installing ...', :install + bt.call "git clone #{clone_opt unless tag} #{progress} #{uri} #{d} 2>&1", name, :install, proc { + FileUtils.rm_rf dir + } + end + mtx.synchronize { VIM::command("let s:update.new['#{name}'] = 1") } if !exists && ok + log.call name, result, ok + end + } if running + end + end + threads.each { |t| t.join rescue nil } + logh.call + refresh.kill if refresh + watcher.kill +EOF +endfunction + +function! s:shellesc_cmd(arg, script) + let escaped = substitute('"'.a:arg.'"', '[&|<>()@^!"]', '^&', 'g') + return substitute(escaped, '%', (a:script ? '%' : '^') . '&', 'g') +endfunction + +function! s:shellesc_ps1(arg) + return "'".substitute(escape(a:arg, '\"'), "'", "''", 'g')."'" +endfunction + +function! s:shellesc_sh(arg) + return "'".substitute(a:arg, "'", "'\\\\''", 'g')."'" +endfunction + +" Escape the shell argument based on the shell. +" Vim and Neovim's shellescape() are insufficient. +" 1. shellslash determines whether to use single/double quotes. +" Double-quote escaping is fragile for cmd.exe. +" 2. It does not work for powershell. +" 3. It does not work for *sh shells if the command is executed +" via cmd.exe (ie. cmd.exe /c sh -c command command_args) +" 4. It does not support batchfile syntax. +" +" Accepts an optional dictionary with the following keys: +" - shell: same as Vim/Neovim 'shell' option. +" If unset, fallback to 'cmd.exe' on Windows or 'sh'. +" - script: If truthy and shell is cmd.exe, escape for batchfile syntax. +function! plug#shellescape(arg, ...) + if a:arg =~# '^[A-Za-z0-9_/:.-]\+$' + return a:arg + endif + let opts = a:0 > 0 && type(a:1) == s:TYPE.dict ? a:1 : {} + let shell = get(opts, 'shell', s:is_win ? 'cmd.exe' : 'sh') + let script = get(opts, 'script', 1) + if shell =~# 'cmd\.exe' + return s:shellesc_cmd(a:arg, script) + elseif shell =~# 'powershell\.exe' || shell =~# 'pwsh$' + return s:shellesc_ps1(a:arg) + endif + return s:shellesc_sh(a:arg) +endfunction + +function! s:glob_dir(path) + return map(filter(s:glob(a:path, '**'), 'isdirectory(v:val)'), 's:dirpath(v:val)') +endfunction + +function! s:progress_bar(line, bar, total) + call setline(a:line, '[' . s:lpad(a:bar, a:total) . ']') +endfunction + +function! s:compare_git_uri(a, b) + " See `git help clone' + " https:// [user@] github.com[:port] / junegunn/vim-plug [.git] + " [git@] github.com[:port] : junegunn/vim-plug [.git] + " file:// / junegunn/vim-plug [/] + " / junegunn/vim-plug [/] + let pat = '^\%(\w\+://\)\='.'\%([^@/]*@\)\='.'\([^:/]*\%(:[0-9]*\)\=\)'.'[:/]'.'\(.\{-}\)'.'\%(\.git\)\=/\?$' + let ma = matchlist(a:a, pat) + let mb = matchlist(a:b, pat) + return ma[1:2] ==# mb[1:2] +endfunction + +function! s:format_message(bullet, name, message) + if a:bullet != 'x' + return [printf('%s %s: %s', a:bullet, a:name, s:lastline(a:message))] + else + let lines = map(s:lines(a:message), '" ".v:val') + return extend([printf('x %s:', a:name)], lines) + endif +endfunction + +function! s:with_cd(cmd, dir, ...) + let script = a:0 > 0 ? a:1 : 1 + return printf('cd%s %s && %s', s:is_win ? ' /d' : '', plug#shellescape(a:dir, {'script': script}), a:cmd) +endfunction + +function! s:system(cmd, ...) + let batchfile = '' + try + let [sh, shellcmdflag, shrd] = s:chsh(1) + if type(a:cmd) == s:TYPE.list + " Neovim's system() supports list argument to bypass the shell + " but it cannot set the working directory for the command. + " Assume that the command does not rely on the shell. + if has('nvim') && a:0 == 0 + return system(a:cmd) + endif + let cmd = join(map(copy(a:cmd), 'plug#shellescape(v:val, {"shell": &shell, "script": 0})')) + if &shell =~# 'powershell\.exe' + let cmd = '& ' . cmd + endif + else + let cmd = a:cmd + endif + if a:0 > 0 + let cmd = s:with_cd(cmd, a:1, type(a:cmd) != s:TYPE.list) + endif + if s:is_win && type(a:cmd) != s:TYPE.list + let [batchfile, cmd] = s:batchfile(cmd) + endif + return system(cmd) + finally + let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] + if s:is_win && filereadable(batchfile) + call delete(batchfile) + endif + endtry +endfunction + +function! s:system_chomp(...) + let ret = call('s:system', a:000) + return v:shell_error ? '' : substitute(ret, '\n$', '', '') +endfunction + +function! s:git_validate(spec, check_branch) + let err = '' + if isdirectory(a:spec.dir) + let result = s:lines(s:system('git rev-parse --abbrev-ref HEAD 2>&1 && git config -f .git/config remote.origin.url', a:spec.dir)) + let remote = result[-1] + if v:shell_error + let err = join([remote, 'PlugClean required.'], "\n") + elseif !s:compare_git_uri(remote, a:spec.uri) + let err = join(['Invalid URI: '.remote, + \ 'Expected: '.a:spec.uri, + \ 'PlugClean required.'], "\n") + elseif a:check_branch && has_key(a:spec, 'commit') + let result = s:lines(s:system('git rev-parse HEAD 2>&1', a:spec.dir)) + let sha = result[-1] + if v:shell_error + let err = join(add(result, 'PlugClean required.'), "\n") + elseif !s:hash_match(sha, a:spec.commit) + let err = join([printf('Invalid HEAD (expected: %s, actual: %s)', + \ a:spec.commit[:6], sha[:6]), + \ 'PlugUpdate required.'], "\n") + endif + elseif a:check_branch + let branch = result[0] + " Check tag + if has_key(a:spec, 'tag') + let tag = s:system_chomp('git describe --exact-match --tags HEAD 2>&1', a:spec.dir) + if a:spec.tag !=# tag && a:spec.tag !~ '\*' + let err = printf('Invalid tag: %s (expected: %s). Try PlugUpdate.', + \ (empty(tag) ? 'N/A' : tag), a:spec.tag) + endif + " Check branch + elseif a:spec.branch !=# branch + let err = printf('Invalid branch: %s (expected: %s). Try PlugUpdate.', + \ branch, a:spec.branch) + endif + if empty(err) + let [ahead, behind] = split(s:lastline(s:system([ + \ 'git', 'rev-list', '--count', '--left-right', + \ printf('HEAD...origin/%s', a:spec.branch) + \ ], a:spec.dir)), '\t') + if !v:shell_error && ahead + if behind + " Only mention PlugClean if diverged, otherwise it's likely to be + " pushable (and probably not that messed up). + let err = printf( + \ "Diverged from origin/%s (%d commit(s) ahead and %d commit(s) behind!\n" + \ .'Backup local changes and run PlugClean and PlugUpdate to reinstall it.', a:spec.branch, ahead, behind) + else + let err = printf("Ahead of origin/%s by %d commit(s).\n" + \ .'Cannot update until local changes are pushed.', + \ a:spec.branch, ahead) + endif + endif + endif + endif + else + let err = 'Not found' + endif + return [err, err =~# 'PlugClean'] +endfunction + +function! s:rm_rf(dir) + if isdirectory(a:dir) + call s:system(s:is_win + \ ? 'rmdir /S /Q '.plug#shellescape(a:dir) + \ : ['rm', '-rf', a:dir]) + endif +endfunction + +function! s:clean(force) + call s:prepare() + call append(0, 'Searching for invalid plugins in '.g:plug_home) + call append(1, '') + + " List of valid directories + let dirs = [] + let errs = {} + let [cnt, total] = [0, len(g:plugs)] + for [name, spec] in items(g:plugs) + if !s:is_managed(name) + call add(dirs, spec.dir) + else + let [err, clean] = s:git_validate(spec, 1) + if clean + let errs[spec.dir] = s:lines(err)[0] + else + call add(dirs, spec.dir) + endif + endif + let cnt += 1 + call s:progress_bar(2, repeat('=', cnt), total) + normal! 2G + redraw + endfor + + let allowed = {} + for dir in dirs + let allowed[s:dirpath(s:plug_fnamemodify(dir, ':h:h'))] = 1 + let allowed[dir] = 1 + for child in s:glob_dir(dir) + let allowed[child] = 1 + endfor + endfor + + let todo = [] + let found = sort(s:glob_dir(g:plug_home)) + while !empty(found) + let f = remove(found, 0) + if !has_key(allowed, f) && isdirectory(f) + call add(todo, f) + call append(line('$'), '- ' . f) + if has_key(errs, f) + call append(line('$'), ' ' . errs[f]) + endif + let found = filter(found, 'stridx(v:val, f) != 0') + end + endwhile + + 4 + redraw + if empty(todo) + call append(line('$'), 'Already clean.') + else + let s:clean_count = 0 + call append(3, ['Directories to delete:', '']) + redraw! + if a:force || s:ask_no_interrupt('Delete all directories?') + call s:delete([6, line('$')], 1) + else + call setline(4, 'Cancelled.') + nnoremap d :set opfunc=delete_opg@ + nmap dd d_ + xnoremap d :call delete_op(visualmode(), 1) + echo 'Delete the lines (d{motion}) to delete the corresponding directories' + endif + endif + 4 + setlocal nomodifiable +endfunction + +function! s:delete_op(type, ...) + call s:delete(a:0 ? [line("'<"), line("'>")] : [line("'["), line("']")], 0) +endfunction + +function! s:delete(range, force) + let [l1, l2] = a:range + let force = a:force + while l1 <= l2 + let line = getline(l1) + if line =~ '^- ' && isdirectory(line[2:]) + execute l1 + redraw! + let answer = force ? 1 : s:ask('Delete '.line[2:].'?', 1) + let force = force || answer > 1 + if answer + call s:rm_rf(line[2:]) + setlocal modifiable + call setline(l1, '~'.line[1:]) + let s:clean_count += 1 + call setline(4, printf('Removed %d directories.', s:clean_count)) + setlocal nomodifiable + endif + endif + let l1 += 1 + endwhile +endfunction + +function! s:upgrade() + echo 'Downloading the latest version of vim-plug' + redraw + let tmp = s:plug_tempname() + let new = tmp . '/plug.vim' + + try + let out = s:system(['git', 'clone', '--depth', '1', s:plug_src, tmp]) + if v:shell_error + return s:err('Error upgrading vim-plug: '. out) + endif + + if readfile(s:me) ==# readfile(new) + echo 'vim-plug is already up-to-date' + return 0 + else + call rename(s:me, s:me . '.old') + call rename(new, s:me) + unlet g:loaded_plug + echo 'vim-plug has been upgraded' + return 1 + endif + finally + silent! call s:rm_rf(tmp) + endtry +endfunction + +function! s:upgrade_specs() + for spec in values(g:plugs) + let spec.frozen = get(spec, 'frozen', 0) + endfor +endfunction + +function! s:status() + call s:prepare() + call append(0, 'Checking plugins') + call append(1, '') + + let ecnt = 0 + let unloaded = 0 + let [cnt, total] = [0, len(g:plugs)] + for [name, spec] in items(g:plugs) + let is_dir = isdirectory(spec.dir) + if has_key(spec, 'uri') + if is_dir + let [err, _] = s:git_validate(spec, 1) + let [valid, msg] = [empty(err), empty(err) ? 'OK' : err] + else + let [valid, msg] = [0, 'Not found. Try PlugInstall.'] + endif + else + if is_dir + let [valid, msg] = [1, 'OK'] + else + let [valid, msg] = [0, 'Not found.'] + endif + endif + let cnt += 1 + let ecnt += !valid + " `s:loaded` entry can be missing if PlugUpgraded + if is_dir && get(s:loaded, name, -1) == 0 + let unloaded = 1 + let msg .= ' (not loaded)' + endif + call s:progress_bar(2, repeat('=', cnt), total) + call append(3, s:format_message(valid ? '-' : 'x', name, msg)) + normal! 2G + redraw + endfor + call setline(1, 'Finished. '.ecnt.' error(s).') + normal! gg + setlocal nomodifiable + if unloaded + echo "Press 'L' on each line to load plugin, or 'U' to update" + nnoremap L :call status_load(line('.')) + xnoremap L :call status_load(line('.')) + end +endfunction + +function! s:extract_name(str, prefix, suffix) + return matchstr(a:str, '^'.a:prefix.' \zs[^:]\+\ze:.*'.a:suffix.'$') +endfunction + +function! s:status_load(lnum) + let line = getline(a:lnum) + let name = s:extract_name(line, '-', '(not loaded)') + if !empty(name) + call plug#load(name) + setlocal modifiable + call setline(a:lnum, substitute(line, ' (not loaded)$', '', '')) + setlocal nomodifiable + endif +endfunction + +function! s:status_update() range + let lines = getline(a:firstline, a:lastline) + let names = filter(map(lines, 's:extract_name(v:val, "[x-]", "")'), '!empty(v:val)') + if !empty(names) + echo + execute 'PlugUpdate' join(names) + endif +endfunction + +function! s:is_preview_window_open() + silent! wincmd P + if &previewwindow + wincmd p + return 1 + endif +endfunction + +function! s:find_name(lnum) + for lnum in reverse(range(1, a:lnum)) + let line = getline(lnum) + if empty(line) + return '' + endif + let name = s:extract_name(line, '-', '') + if !empty(name) + return name + endif + endfor + return '' +endfunction + +function! s:preview_commit() + if b:plug_preview < 0 + let b:plug_preview = !s:is_preview_window_open() + endif + + let sha = matchstr(getline('.'), '^ \X*\zs[0-9a-f]\{7,9}') + if empty(sha) + return + endif + + let name = s:find_name(line('.')) + if empty(name) || !has_key(g:plugs, name) || !isdirectory(g:plugs[name].dir) + return + endif + + if exists('g:plug_pwindow') && !s:is_preview_window_open() + execute g:plug_pwindow + execute 'e' sha + else + execute 'pedit' sha + wincmd P + endif + setlocal previewwindow filetype=git buftype=nofile nobuflisted modifiable + let batchfile = '' + try + let [sh, shellcmdflag, shrd] = s:chsh(1) + let cmd = 'cd '.plug#shellescape(g:plugs[name].dir).' && git show --no-color --pretty=medium '.sha + if s:is_win + let [batchfile, cmd] = s:batchfile(cmd) + endif + execute 'silent %!' cmd + finally + let [&shell, &shellcmdflag, &shellredir] = [sh, shellcmdflag, shrd] + if s:is_win && filereadable(batchfile) + call delete(batchfile) + endif + endtry + setlocal nomodifiable + nnoremap q :q + wincmd p +endfunction + +function! s:section(flags) + call search('\(^[x-] \)\@<=[^:]\+:', a:flags) +endfunction + +function! s:format_git_log(line) + let indent = ' ' + let tokens = split(a:line, nr2char(1)) + if len(tokens) != 5 + return indent.substitute(a:line, '\s*$', '', '') + endif + let [graph, sha, refs, subject, date] = tokens + let tag = matchstr(refs, 'tag: [^,)]\+') + let tag = empty(tag) ? ' ' : ' ('.tag.') ' + return printf('%s%s%s%s%s (%s)', indent, graph, sha, tag, subject, date) +endfunction + +function! s:append_ul(lnum, text) + call append(a:lnum, ['', a:text, repeat('-', len(a:text))]) +endfunction + +function! s:diff() + call s:prepare() + call append(0, ['Collecting changes ...', '']) + let cnts = [0, 0] + let bar = '' + let total = filter(copy(g:plugs), 's:is_managed(v:key) && isdirectory(v:val.dir)') + call s:progress_bar(2, bar, len(total)) + for origin in [1, 0] + let plugs = reverse(sort(items(filter(copy(total), (origin ? '' : '!').'(has_key(v:val, "commit") || has_key(v:val, "tag"))')))) + if empty(plugs) + continue + endif + call s:append_ul(2, origin ? 'Pending updates:' : 'Last update:') + for [k, v] in plugs + let range = origin ? '..origin/'.v.branch : 'HEAD@{1}..' + let cmd = ['git', 'log', '--graph', '--color=never'] + if s:git_version_requirement(2, 10, 0) + call add(cmd, '--no-show-signature') + endif + call extend(cmd, ['--pretty=format:%x01%h%x01%d%x01%s%x01%cr', range]) + if has_key(v, 'rtp') + call extend(cmd, ['--', v.rtp]) + endif + let diff = s:system_chomp(cmd, v.dir) + if !empty(diff) + let ref = has_key(v, 'tag') ? (' (tag: '.v.tag.')') : has_key(v, 'commit') ? (' '.v.commit) : '' + call append(5, extend(['', '- '.k.':'.ref], map(s:lines(diff), 's:format_git_log(v:val)'))) + let cnts[origin] += 1 + endif + let bar .= '=' + call s:progress_bar(2, bar, len(total)) + normal! 2G + redraw + endfor + if !cnts[origin] + call append(5, ['', 'N/A']) + endif + endfor + call setline(1, printf('%d plugin(s) updated.', cnts[0]) + \ . (cnts[1] ? printf(' %d plugin(s) have pending updates.', cnts[1]) : '')) + + if cnts[0] || cnts[1] + nnoremap (plug-preview) :silent! call preview_commit() + if empty(maparg("\", 'n')) + nmap (plug-preview) + endif + if empty(maparg('o', 'n')) + nmap o (plug-preview) + endif + endif + if cnts[0] + nnoremap X :call revert() + echo "Press 'X' on each block to revert the update" + endif + normal! gg + setlocal nomodifiable +endfunction + +function! s:revert() + if search('^Pending updates', 'bnW') + return + endif + + let name = s:find_name(line('.')) + if empty(name) || !has_key(g:plugs, name) || + \ input(printf('Revert the update of %s? (y/N) ', name)) !~? '^y' + return + endif + + call s:system('git reset --hard HEAD@{1} && git checkout '.plug#shellescape(g:plugs[name].branch).' --', g:plugs[name].dir) + setlocal modifiable + normal! "_dap + setlocal nomodifiable + echo 'Reverted' +endfunction + +function! s:snapshot(force, ...) abort + call s:prepare() + setf vim + call append(0, ['" Generated by vim-plug', + \ '" '.strftime("%c"), + \ '" :source this file in vim to restore the snapshot', + \ '" or execute: vim -S snapshot.vim', + \ '', '', 'PlugUpdate!']) + 1 + let anchor = line('$') - 3 + let names = sort(keys(filter(copy(g:plugs), + \'has_key(v:val, "uri") && !has_key(v:val, "commit") && isdirectory(v:val.dir)'))) + for name in reverse(names) + let sha = s:system_chomp(['git', 'rev-parse', '--short', 'HEAD'], g:plugs[name].dir) + if !empty(sha) + call append(anchor, printf("silent! let g:plugs['%s'].commit = '%s'", name, sha)) + redraw + endif + endfor + + if a:0 > 0 + let fn = s:plug_expand(a:1) + if filereadable(fn) && !(a:force || s:ask(a:1.' already exists. Overwrite?')) + return + endif + call writefile(getline(1, '$'), fn) + echo 'Saved as '.a:1 + silent execute 'e' s:esc(fn) + setf vim + endif +endfunction + +function! s:split_rtp() + return split(&rtp, '\\\@] + output: foo + +* Insert new indented line after Return + + input: {|} (press at |) + output: { + | + } (press } to close the pair) + output: { + }| (the inserted blank line will be deleted) + + +* Insert spaces before closing characters, only for [], (), {} + + input: {|} (press at |) + output: { | } + + input: {|} (press foo} at |) + output: { foo }| + + input: '|' (press at |) + output: ' |' + +* Skip ' when inside a word + + input: foo| (press ' at |) + output: foo' + +* Skip closed bracket. + + input: [] + output: [] + +* Ignore auto pair when previous character is \ + + input: "\' + output: "\'" + +* Fast Wrap + + input: |[foo, bar()] (press ( at |) + output: ([foo, bar()]) + +* Quick move char to closed pair + + input: (|){["foo"]} (press at |) + output: ({["foo"]}|) + + input: |[foo, bar()] (press ( at |) + output: ([foo, bar()]|) + +* Quick jump to closed pair. + + input: + { + something;| + } + + (press } at |) + + output: + { + + }| + +* Fly Mode + + input: if(a[3) + output: if(a[3])| (In Fly Mode) + output: if(a[3)]) (Without Fly Mode) + + input: + { + hello();| + world(); + } + + (press } at |) + + output: + { + hello(); + world(); + }| + + (then press at | to do backinsert) + output: + { + hello();}| + world(); + } + + See Fly Mode section for details + +* Multibyte Pairs + + Support any multibyte pairs such as , <% %>, """ """ + See multibyte pairs section for details + +Fly Mode +-------- +Fly Mode will always force closed-pair jumping instead of inserting. only for ")", "}", "]" + +If jumps in mistake, could use AutoPairsBackInsert(Default Key: ``) to jump back and insert closed pair. + +the most situation maybe want to insert single closed pair in the string, eg ")" + +Fly Mode is DISABLED by default. + +add **let g:AutoPairsFlyMode = 1** .vimrc to turn it on + +Default Options: + + let g:AutoPairsFlyMode = 0 + let g:AutoPairsShortcutBackInsert = '' + +Shortcuts +--------- + + System Shortcuts: + : Insert new indented line after return if cursor in blank brackets or quotes. + : Delete brackets in pair + : Toggle Autopairs (g:AutoPairsShortcutToggle) + : Fast Wrap (g:AutoPairsShortcutFastWrap) + : Jump to next closed pair (g:AutoPairsShortcutJump) + : BackInsert (g:AutoPairsShortcutBackInsert) + + If or conflict with another keys or want to bind to another keys, add + + let g:AutoPairsShortcutToggle = '' + + to .vimrc, if the key is empty string '', then the shortcut will be disabled. + +Options +------- +* g:AutoPairs + + Default: {'(':')', '[':']', '{':'}',"'":"'",'"':'"', "`":"`", '```':'```', '"""':'"""', "'''":"'''"} + +* b:AutoPairs + + Default: g:AutoPairs + + Buffer level pairs set. + +* g:AutoPairsShortcutToggle + + Default: '' + + The shortcut to toggle autopairs. + +* g:AutoPairsShortcutFastWrap + + Default: '' + + Fast wrap the word. all pairs will be consider as a block (include <>). + (|)'hello' after fast wrap at |, the word will be ('hello') + (|) after fast wrap at |, the word will be () + +* g:AutoPairsShortcutJump + + Default: '' + + Jump to the next closed pair + +* g:AutoPairsMapBS + + Default : 1 + + Map to delete brackets, quotes in pair + execute 'inoremap =AutoPairsDelete()' + +* g:AutoPairsMapCh + + Default : 1 + + Map to delete brackets, quotes in pair + +* g:AutoPairsMapCR + + Default : 1 + + Map to insert a new indented line if cursor in (|), {|} [|], '|', "|" + execute 'inoremap =AutoPairsReturn()' + +* g:AutoPairsCenterLine + + Default : 1 + + When g:AutoPairsMapCR is on, center current line after return if the line is at the bottom 1/3 of the window. + +* g:AutoPairsMapSpace + + Default : 1 + + Map to insert a space after the opening character and before the closing one. + execute 'inoremap =AutoPairsSpace()' + +* g:AutoPairsFlyMode + + Default : 0 + + set it to 1 to enable FlyMode. + see FlyMode section for details. + +* g:AutoPairsMultilineClose + + Default : 1 + + When you press the key for the closing pair (e.g. `)`) it jumps past it. + If set to 1, then it'll jump to the next line, if there is only whitespace. + If set to 0, then it'll only jump to a closing pair on the same line. + +* g:AutoPairsShortcutBackInsert + + Default : + + Work with FlyMode, insert the key at the Fly Mode jumped postion + +* g:AutoPairsMoveCharacter + + Default: "()[]{}\"'" + + Map to + move character under the cursor to the pair. + +Buffer Level Pairs Setting +-------------------------- + +Set b:AutoPairs before BufEnter + +eg: + + " When the filetype is FILETYPE then make AutoPairs only match for parenthesis + au Filetype FILETYPE let b:AutoPairs = {"(": ")"} + au FileType php let b:AutoPairs = AutoPairsDefine({'', ''}) + +Multibyte Pairs +--------------- + + The default pairs is {'(':')', '[':']', '{':'}',"'":"'",'"':'"', '`':'`'} + You could also define multibyte pairs such as , <% %> and so on + +* Function AutoPairsDefine(addPairs:dict[, removeOpenPairList:list]) + + add or delete pairs base on g:AutoPairs + + eg: + au FileType html let b:AutoPairs = AutoPairsDefine({''}, ['{']) + add pair and remove '{' for html file + + the pair implict start with \V, so if want to match start of line ^ should be write in \^ vim comment {'\^"': ''} + +* General usage + + au FileType php let b:AutoPairs = AutoPairsDefine({'', ''}) + + the first key of closed pair ? will be mapped + + pairs: '', '' + input: + + input: + + input: he (press at|) + output: he| + + input: (press ? at|) + output: | + + pair: '[[':']]' + input: [[|]] (press ) + output: | ([[ and ]] will be deleted the [['s priority is higher than [ for it's longer) + +* Modifier + + The text after // in close pair is modifiers + + n - do not map the first charactor of closed pair to close key + m - close key jumps through multi line + s - close key jumps only in the same line + k[KEY] - map the close key to [KEY] + + by default if open key equals close key the multi line is turn off + + "" ? jumps only in the same line + "//m" force ? jumping through multi line + "" ? will jump through multi line + "//s" force ? only jumping in the same line + "//n" do not jump totally + "//k]" use key ] to jump through ?> + + for 'begin' 'end' pair, e is a charactor, if map e to jump will be annoy, so use modifier 'n' to skip key map + + au FileType ruby let b:AutoPairs = AutoPairsDefine({'begin': 'end//n]'}) + + + input: begin + output: begin|end + + input: begin|end (press on |) + output: | + + input: begin|end (press e on |) + output: begineend (will not jump for e is not mapped) + +* Advanced usage + + au FileType rust let b:AutoPairs = AutoPairsDefine({'\w\zs<': '>'}) + + if press < after a word will generate the pair + + when use regexp MUST use \zs to prevent catching + if use '\w<' without \zs, for text hello<|> press on | will output 'hell', the 'o' has been deleted + + pair: '\w\zs<': '>' + input: h < + output: h < + + input: h< + output: h<|> + + input: h<|> press + output: h| + + pair: '\w<': '>' (WRONG pair which missed \zs) + input: h<|> press + output: | (charactor 'h' is deleted) + + + the 'begin' 'end' pair write in + + au FileType ruby let b:AutoPairs = AutoPairsDefine({'\v(^|\W)\zsbegin': 'end//n'}) + + will be better, only auto pair when at start of line or follow non-word text + +TroubleShooting +--------------- + The script will remap keys ([{'"}]) , + If auto pairs cannot work, use :imap ( to check if the map is corrected. + The correct map should be =AutoPairsInsert("\(") + Or the plugin conflict with some other plugins. + use command :call AutoPairsInit() to remap the keys. + + +* How to insert parens purely + + There are 3 ways + + 1. use Ctrl-V ) to insert paren without trigger the plugin. + + 2. use Alt-P to turn off the plugin. + + 3. use DEL or x to delete the character insert by plugin. + +* Swedish Character Conflict + + Because AutoPairs uses Meta(Alt) key as shortcut, it is conflict with some Swedish character such as å. + To fix the issue, you need remap or disable the related shortcut. + +Known Issues +------------ +Breaks '.' - [issue #3](https://github.com/jiangmiao/auto-pairs/issues/3) + + Description: After entering insert mode and inputing `[hello` then leave insert + mode by ``. press '.' will insert 'hello' instead of '[hello]'. + Reason: `[` actually equals `[]\` and \ will break '.'. + After version 7.4.849, Vim implements new keyword U to avoid the break + Solution: Update Vim to 7.4.849+ + +Contributors +------------ +* [camthompson](https://github.com/camthompson) + + +License +------- + +Copyright (C) 2011-2013 Miao Jiang + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/_vim/.vim/plugged/auto-pairs/doc/AutoPairs.txt b/_vim/.vim/plugged/auto-pairs/doc/AutoPairs.txt new file mode 100644 index 0000000..afe589e --- /dev/null +++ b/_vim/.vim/plugged/auto-pairs/doc/AutoPairs.txt @@ -0,0 +1,356 @@ +*AutoPairs.txt* Insert or delete brackets, parens, quotes in pair + +Author: jiangmiao +License: MIT +URL: https://github.com/jiangmiao/auto-pairs + +============================================================================== +CONTENTS *autopairs-contents* + + 1. Installation ............................. |autopairs-installation| + 2. Features ..................................... |autopairs-features| + 3. Fly Mode ..................................... |autopairs-fly-mode| + 4. Shortcuts ................................... |autopairs-shortcuts| + 5. Options ....................................... |autopairs-options| + 6. Troubleshooting ...................... |autopairs-troubleshooting| + +============================================================================== +1. Introduction *autopairs-installation* + +Copy `plugin/auto-pairs.vim` to `~/.vim/plugin`. + +Or if you are using `pathogen`: > + + git clone git://github.com/jiangmiao/auto-pairs.git ~/.vim/bundle/auto-pairs + +============================================================================== +2. Features *autopairs-features* + +Insert in pair: > + + input: [ + output: [|] + +Delete in pair: > + + input: foo[] + output: foo + +Insert new indented line after Return: > + + input: {|} (press at |) + output: { + | + } + +Insert spaces before closing characters, only for [], (), {}: > + + input: {|} (press at |) + output: { | } + + input: {|} (press foo} at |) + output: { foo }| + + input: '|' (press at |) + output: ' |' + +Skip ' when inside a word: > + + input: foo| (press ' at |) + output: foo' + +Skip closed bracket: > + + input: [] + output: [] + +Ignore auto pair when previous character is '\': > + + input: "\' + output: "\'" + +Fast Wrap: > + + input: |'hello' (press ( at |) + output: ('hello') + + Wrap string, only support c style string. + input: |'h\\el\'lo' (press ( at |) + output ('h\\ello\'') + + input: |[foo, bar()] (press ( at |) + output: ([foo, bar()]) + +Quick jump to closed pair: > + + input: + { + something;| + } + + (press } at |) + + output: + { + + }| + +Support ```, ''' and """: > + + input: + ''' + + output: + '''|''' + +Delete Repeated Pairs in one time: > + + input: """|""" (press at |) + output: | + + input: {{|}} (press at |) + output: | + + input: [[[[[[|]]]]]] (press at |) + output: | + +Fly Mode (|autopairs-flymode|): > + + input: if(a[3) + output: if(a[3])| (In Fly Mode) + output: if(a[3)]) (Without Fly Mode) + + input: + { + hello();| + world(); + } + + (press } at |) + + output: + { + hello(); + world(); + }| + + (then press at | to do backinsert) + output: + { + hello();}| + world(); + } + + See |Fly Mode| section for details + +============================================================================== +3. Fly Mode *autopairs-flymode* + +Fly Mode will always force closed-pair jumping instead of inserting. Only for +")", "}", "]". If jumps in mistake, you can use |g:AutoPairsBackInsert| (default +Key: ) to jump back and insert closed pair. + +The most situation maybe you want to insert single closed pair in the string, +eg: > + + ")" + +Fly Mode is DISABLED by default. To enable Fly Mode add following to your +'.vimrc': > + + let g:AutoPairsFlyMode = 1 + +Default Options: > + + let g:AutoPairsFlyMode = 0 + let g:AutoPairsShortcutBackInsert = '' + +============================================================================== +4. Shortcuts *autopairs-shortcuts* + +System Shortcuts: + : Insert new indented line after return if cursor in blank brackets + or quotes. + : Delete brackets in pair + : Toggle Autopairs (|g:AutoPairsShortcutToggle|) + : Fast Wrap (|g:AutoPairsShortcutFastWrap|) + : Jump to next closed pair (|g:AutoPairsShortcutJump|) + : BackInsert (|g:AutoPairsShortcutBackInsert|) + + + To rebind keys , or or in case of conflicts with + another keys: + + let g:AutoPairsShortcutToggle = '' + + If the key is empty string '', then the shortcut will be disabled. + +============================================================================== +5. Options *autopairs-options* + + *g:AutoPairs* +|g:AutoPairs| dict + +Default: > + {'(':')', '[':']', '{':'}',"'":"'",'"':'"', '`':'`'} + +Specifies which symbols should be automatically paired. + +To append new pairs without overwriting defaults, add values in your `.vimrc`.: + + let g:AutoPairs['<']='>' + +This example will enable matching of `<` with `>`. + + + *b:AutoPairs* +|b:AutoPairs| dict + +Default: |g:AutoPairs| + +Buffer level pairs set. + +You can set |b:AutoPairs| before |BufEnter|: > + + au Filetype FILETYPE let b:AutoPairs = {"(": ")"} + +This sets |AutoPairs| to only match for parenthesis for 'FILETYPE'. + + + + *g:AutoPairsShortcutToggle* +|g:AutoPairsShortcutToggle| string + +Default: + +The shortcut to toggle autopairs. + + + + *g:AutoPairsShortcutFastWrap* +|g:AutoPairsShortcutFastWrap| string + +Default: + +Fast wrap the word. All pairs will be considered as a block (including <>). + + (|)'hello' after fast wrap at |, the word will be ('hello') + (|) after fast wrap at |, the word will be () + + + + *g:AutoPairsShortcutJump* +|g:AutoPairsShortcutJump| string + +Default: + +Jump to the next closed pair. + + + *g:AutoPairsShortcutBackInsert* +|g:AutoPairsShortcutBackInsert| string + +Default: + +Work with |autopairs-flymode|, insert the key at the Fly Mode jumped position. + + + + *g:AutoPairsMapBS* +|g:AutoPairsMapBS| int + +Default: 1 + +Map to delete brackets and quotes in pair, executes: + + inoremap =AutoPairsDelete() + + + *g:AutoPairsMapCh* +|g:AutoPairsMapCh| int + +Default: 1 + +Map to delete brackets and quotes in pair. + + + *g:AutoPairsMapCR* +|g:AutoPairsMapCR| int + +Default: 1 + +Map to insert a new indented line if cursor in (|), {|} [|], '|', "|". +Executes: + + inoremap =AutoPairsReturn() + + + *g:AutoPairsCenterLine* +|g:AutoPairsCenterLine| int + +Default: 1 + +When |g:AutoPairsMapCR| is on, center current line after return if the line +is at the bottom 1/3 of the window. + + + *g:AutoPairsMapSpace* +|g:AutoPairsMapSpace| int + +Default: 1 + +Map to insert a space after the opening character and before the +closing one. + +Executes: + + inoremap =AutoPairsSpace() + + + *g:AutoPairsFlyMode* +|g:AutoPairsFlyMode| int + +Default: 0 + +Set it to 1 to enable |autopairs-flymode|. + + + *g:AutoPairsMultilineClose* +|g:AutoPairsMultilineClose| int + +Default: 1 + +When you press the key for the closing pair (e.g. `)`) it jumps past it. +If set to 1, then it'll jump to the next line, if there is only 'whitespace'. +If set to 0, then it'll only jump to a closing pair on the same line. + +============================================================================== +6. Troubleshooting *autopairs-troubleshooting* + +This plugin remaps keys `([{'"}]) ` + +If auto pairs cannot work, use |:imap| to check if the map is corrected. + +The correct map should be: > + + =AutoPairsInsert("\(") + +Or the plugin conflicts with some other plugins. Use command: > + + :call AutoPairsInit() to remap the keys. + +--- How to insert parens purely? --- + +There are 3 ways: + + 1. Use Ctrl-V ) to insert paren without trigger the plugin. + + 2. Use Alt-P to turn off the plugin. + + 3. Use DEL or x to delete the character insert by plugin. + +--- Swedish Character Conflict --- + +Because AutoPairs uses Meta(Alt) key as a shortcut, it conflicts with some +Swedish character such as å. To fix the issue, you need remap or disable the +related shortcut. diff --git a/_vim/.vim/plugged/auto-pairs/plugin/auto-pairs.vim b/_vim/.vim/plugged/auto-pairs/plugin/auto-pairs.vim new file mode 100644 index 0000000..af5eb32 --- /dev/null +++ b/_vim/.vim/plugged/auto-pairs/plugin/auto-pairs.vim @@ -0,0 +1,673 @@ +" Insert or delete brackets, parens, quotes in pairs. +" Maintainer: JiangMiao +" Contributor: camthompson +" Last Change: 2019-02-02 +" Version: 2.0.0 +" Homepage: http://www.vim.org/scripts/script.php?script_id=3599 +" Repository: https://github.com/jiangmiao/auto-pairs +" License: MIT + +if exists('g:AutoPairsLoaded') || &cp + finish +end +let g:AutoPairsLoaded = 1 + +if !exists('g:AutoPairs') + let g:AutoPairs = {'(':')', '[':']', '{':'}',"'":"'",'"':'"', '```':'```', '"""':'"""', "'''":"'''", "`":"`"} +end + +" default pairs base on filetype +func! AutoPairsDefaultPairs() + if exists('b:autopairs_defaultpairs') + return b:autopairs_defaultpairs + end + let r = copy(g:AutoPairs) + let allPairs = { + \ 'vim': {'\v^\s*\zs"': ''}, + \ 'rust': {'\w\zs<': '>', '&\zs''': ''}, + \ 'php': {'//k]', '//k]'} + \ } + for [filetype, pairs] in items(allPairs) + if &filetype == filetype + for [open, close] in items(pairs) + let r[open] = close + endfor + end + endfor + let b:autopairs_defaultpairs = r + return r +endf + +if !exists('g:AutoPairsMapBS') + let g:AutoPairsMapBS = 1 +end + +" Map as the same BS +if !exists('g:AutoPairsMapCh') + let g:AutoPairsMapCh = 1 +end + +if !exists('g:AutoPairsMapCR') + let g:AutoPairsMapCR = 1 +end + +if !exists('g:AutoPairsWildClosedPair') + let g:AutoPairsWildClosedPair = '' +end + +if !exists('g:AutoPairsMapSpace') + let g:AutoPairsMapSpace = 1 +end + +if !exists('g:AutoPairsCenterLine') + let g:AutoPairsCenterLine = 1 +end + +if !exists('g:AutoPairsShortcutToggle') + let g:AutoPairsShortcutToggle = '' +end + +if !exists('g:AutoPairsShortcutFastWrap') + let g:AutoPairsShortcutFastWrap = '' +end + +if !exists('g:AutoPairsMoveCharacter') + let g:AutoPairsMoveCharacter = "()[]{}\"'" +end + +if !exists('g:AutoPairsShortcutJump') + let g:AutoPairsShortcutJump = '' +endif + +" Fly mode will for closed pair to jump to closed pair instead of insert. +" also support AutoPairsBackInsert to insert pairs where jumped. +if !exists('g:AutoPairsFlyMode') + let g:AutoPairsFlyMode = 0 +endif + +" When skipping the closed pair, look at the current and +" next line as well. +if !exists('g:AutoPairsMultilineClose') + let g:AutoPairsMultilineClose = 1 +endif + +" Work with Fly Mode, insert pair where jumped +if !exists('g:AutoPairsShortcutBackInsert') + let g:AutoPairsShortcutBackInsert = '' +endif + +if !exists('g:AutoPairsSmartQuotes') + let g:AutoPairsSmartQuotes = 1 +endif + +" 7.4.849 support U to avoid breaking '.' +" Issue talk: https://github.com/jiangmiao/auto-pairs/issues/3 +" Vim note: https://github.com/vim/vim/releases/tag/v7.4.849 +if v:version > 704 || v:version == 704 && has("patch849") + let s:Go = "\U" +else + let s:Go = "" +endif + +let s:Left = s:Go."\" +let s:Right = s:Go."\" + + + + +" unicode len +func! s:ulen(s) + return len(split(a:s, '\zs')) +endf + +func! s:left(s) + return repeat(s:Left, s:ulen(a:s)) +endf + +func! s:right(s) + return repeat(s:Right, s:ulen(a:s)) +endf + +func! s:delete(s) + return repeat("\", s:ulen(a:s)) +endf + +func! s:backspace(s) + return repeat("\", s:ulen(a:s)) +endf + +func! s:getline() + let line = getline('.') + let pos = col('.') - 1 + let before = strpart(line, 0, pos) + let after = strpart(line, pos) + let afterline = after + if g:AutoPairsMultilineClose + let n = line('$') + let i = line('.')+1 + while i <= n + let line = getline(i) + let after = after.' '.line + if !(line =~ '\v^\s*$') + break + end + let i = i+1 + endwhile + end + return [before, after, afterline] +endf + +" split text to two part +" returns [orig, text_before_open, open] +func! s:matchend(text, open) + let m = matchstr(a:text, '\V'.a:open.'\v$') + if m == "" + return [] + end + return [a:text, strpart(a:text, 0, len(a:text)-len(m)), m] +endf + +" returns [orig, close, text_after_close] +func! s:matchbegin(text, close) + let m = matchstr(a:text, '^\V'.a:close) + if m == "" + return [] + end + return [a:text, m, strpart(a:text, len(m), len(a:text)-len(m))] +endf + +" add or delete pairs base on g:AutoPairs +" AutoPairsDefine(addPairs:dict[, removeOpenPairList:list]) +" +" eg: +" au FileType html let b:AutoPairs = AutoPairsDefine({''}, ['{']) +" add pair and remove '{' for html file +func! AutoPairsDefine(pairs, ...) + let r = AutoPairsDefaultPairs() + if a:0 > 0 + for open in a:1 + unlet r[open] + endfor + end + for [open, close] in items(a:pairs) + let r[open] = close + endfor + return r +endf + +func! AutoPairsInsert(key) + if !b:autopairs_enabled + return a:key + end + + let b:autopairs_saved_pair = [a:key, getpos('.')] + + let [before, after, afterline] = s:getline() + + " Ignore auto close if prev character is \ + if before[-1:-1] == '\' + return a:key + end + + " check open pairs + for [open, close, opt] in b:AutoPairsList + let ms = s:matchend(before.a:key, open) + let m = matchstr(afterline, '^\v\s*\zs\V'.close) + if len(ms) > 0 + " process the open pair + + " remove inserted pair + " eg: if the pairs include < > and + " when + + + +- [ ] I have read through https://github.com/junegunn/fzf.vim/blob/master/README.md +- [ ] I have read through https://github.com/junegunn/fzf/blob/master/README-VIM.md +- [ ] I have read through the manual page of fzf (`man fzf`) +- [ ] I have searched through the existing issues + + + diff --git a/_vim/.vim/plugged/fzf.vim/.gitignore b/_vim/.vim/plugged/fzf.vim/.gitignore new file mode 100644 index 0000000..926ccaa --- /dev/null +++ b/_vim/.vim/plugged/fzf.vim/.gitignore @@ -0,0 +1 @@ +doc/tags diff --git a/_vim/.vim/plugged/fzf.vim/README.md b/_vim/.vim/plugged/fzf.vim/README.md new file mode 100644 index 0000000..a9c9d91 --- /dev/null +++ b/_vim/.vim/plugged/fzf.vim/README.md @@ -0,0 +1,400 @@ +fzf :heart: vim +=============== + +Things you can do with [fzf][fzf] and Vim. + +Rationale +--------- + +[fzf][fzf] in itself is not a Vim plugin, and the official repository only +provides the [basic wrapper function][run] for Vim and it's up to the users to +write their own Vim commands with it. However, I've learned that many users of +fzf are not familiar with Vimscript and are looking for the "default" +implementation of the features they can find in the alternative Vim plugins. + +This repository is a bundle of fzf-based commands and mappings extracted from +my [.vimrc][vimrc] to address such needs. They are *not* designed to be +flexible or configurable, and there's no guarantee of backward-compatibility. + +Why you should use fzf on Vim +----------------------------- + +Because you can and you love fzf. + +fzf runs asynchronously and can be orders of magnitude faster than similar Vim +plugins. However, the benefit may not be noticeable if the size of the input +is small, which is the case for many of the commands provided here. +Nevertheless I wrote them anyway since it's really easy to implement custom +selector with fzf. + +Installation +------------ + +fzf.vim depends on the basic Vim plugin of [the main fzf +repository][fzf-main], which means you need to **set up both "fzf" and +"fzf.vim" on Vim**. To learn more about fzf/Vim integration, see +[README-VIM][README-VIM]. + +[fzf-main]: https://github.com/junegunn/fzf +[README-VIM]: https://github.com/junegunn/fzf/blob/master/README-VIM.md + +### Using [vim-plug](https://github.com/junegunn/vim-plug) + +```vim +Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } +Plug 'junegunn/fzf.vim' +``` + +`fzf#install()` makes sure that you have the latest binary, but it's optional, +so you can omit it if you use a plugin manager that doesn't support hooks. + +Commands +-------- + +| Command | List | +| --- | --- | +| `:Files [PATH]` | Files (runs `$FZF_DEFAULT_COMMAND` if defined) | +| `:GFiles [OPTS]` | Git files (`git ls-files`) | +| `:GFiles?` | Git files (`git status`) | +| `:Buffers` | Open buffers | +| `:Colors` | Color schemes | +| `:Ag [PATTERN]` | [ag][ag] search result (`ALT-A` to select all, `ALT-D` to deselect all) | +| `:Rg [PATTERN]` | [rg][rg] search result (`ALT-A` to select all, `ALT-D` to deselect all) | +| `:Lines [QUERY]` | Lines in loaded buffers | +| `:BLines [QUERY]` | Lines in the current buffer | +| `:Tags [QUERY]` | Tags in the project (`ctags -R`) | +| `:BTags [QUERY]` | Tags in the current buffer | +| `:Marks` | Marks | +| `:Windows` | Windows | +| `:Locate PATTERN` | `locate` command output | +| `:History` | `v:oldfiles` and open buffers | +| `:History:` | Command history | +| `:History/` | Search history | +| `:Snippets` | Snippets ([UltiSnips][us]) | +| `:Commits` | Git commits (requires [fugitive.vim][f]) | +| `:BCommits` | Git commits for the current buffer | +| `:Commands` | Commands | +| `:Maps` | Normal mode mappings | +| `:Helptags` | Help tags [1](#helptags) | +| `:Filetypes` | File types + +- Most commands support `CTRL-T` / `CTRL-X` / `CTRL-V` key + bindings to open in a new tab, a new split, or in a new vertical split +- Bang-versions of the commands (e.g. `Ag!`) will open fzf in fullscreen +- You can set `g:fzf_command_prefix` to give the same prefix to the commands + - e.g. `let g:fzf_command_prefix = 'Fzf'` and you have `FzfFiles`, etc. + +(1: `Helptags` will shadow the command of the same name +from [pathogen][pat]. But its functionality is still available via `call +pathogen#helptags()`. [↩](#a1)) + +[pat]: https://github.com/tpope/vim-pathogen +[f]: https://github.com/tpope/vim-fugitive + +Customization +------------- + +### Global options + +Every command in fzf.vim internally calls `fzf#wrap` function of the main +repository which supports a set of global option variables. So please read +through [README-VIM][README-VIM] to learn more about them. + +#### Preview window + +If the width of the screen is wider than 120 columns, some commands will show +the preview window on the right. You can customize the behavior with +`g:fzf_preview_window`. Here are some examples: + +```vim +" Empty value to disable preview window altogether +let g:fzf_preview_window = '' + +" Always enable preview window on the right with 60% width +let g:fzf_preview_window = 'right:60%' +``` + +### Command-local options + +A few commands in fzf.vim can be customized with global option variables shown +below. + +```vim +" [Buffers] Jump to the existing window if possible +let g:fzf_buffers_jump = 1 + +" [[B]Commits] Customize the options used by 'git log': +let g:fzf_commits_log_options = '--graph --color=always --format="%C(auto)%h%d %s %C(black)%C(bold)%cr"' + +" [Tags] Command to generate tags file +let g:fzf_tags_command = 'ctags -R' + +" [Commands] --expect expression for directly executing the command +let g:fzf_commands_expect = 'alt-enter,ctrl-x' +``` + +### Advanced customization + +#### Vim functions + +Each command in fzf.vim is backed by a Vim function. You can override +a command or define a variation of it by calling its corresponding function. + +| Command | Vim function | +| --- | --- | +| `Files` | `fzf#vim#files(dir, [spec dict], [fullscreen bool])` | +| `GFiles` | `fzf#vim#gitfiles(git_options, [spec dict], [fullscreen bool])` | +| `GFiles?` | `fzf#vim#gitfiles('?', [spec dict], [fullscreen bool])` | +| `Buffers` | `fzf#vim#buffers([spec dict], [fullscreen bool])` | +| `Colors` | `fzf#vim#colors([spec dict], [fullscreen bool])` | +| `Rg` | `fzf#vim#grep(command, [has_column bool], [spec dict], [fullscreen bool])` | +| ... | ... | + +(We can see that the last two optional arguments of each function are +identical. They are directly passed to `fzf#wrap` function. If you haven't +read [README-VIM][README-VIM] already, please read it before proceeding.) + +#### Example: Customizing `Files` command + +This is the default definition of `Files` command: + +```vim +command! -bang -nargs=? -complete=dir Files call fzf#vim#files(, 0) +``` + +Let's say you want to a variation of it called `ProjectFiles` that only +searches inside `~/projects` directory. Then you can do it like this: + +```vim +command! -bang ProjectFiles call fzf#vim#files('~/projects', 0) +``` + +Or, if you want to override the command with different fzf options, just pass +a custom spec to the function. + +```vim +command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, {'options': ['--layout=reverse', '--info=inline']}, 0) +``` + +Want a preview window? + +```vim +command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, {'options': ['--layout=reverse', '--info=inline', '--preview', 'cat {}']}, 0) +``` + +It kind of works, but you probably want a nicer previewer program than `cat`. +fzf.vim ships [a versatile preview script](bin/preview.sh) you can readily +use. It internally executes [bat](https://github.com/sharkdp/bat) for syntax +highlighting, so make sure to install it. + +```vim +command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, {'options': ['--layout=reverse', '--info=inline', '--preview', '~/.vim/plugged/fzf.vim/bin/preview.sh {}']}, 0) +``` + +However, it's not ideal to hard-code the path to the script which can be +different in different circumstances. So in order to make it easier to set up +the previewer, fzf.vim provides `fzf#vim#with_preview` helper function. +Similarly to `fzf#wrap`, it takes a spec dictionary and returns a copy of it +with additional preview options. + +```vim +command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, fzf#vim#with_preview({'options': ['--layout=reverse', '--info=inline']}), 0) +``` + +You can just omit the spec argument if you only want the previewer. + +```vim +command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, fzf#vim#with_preview(), 0) +``` + +#### Example: `git grep` wrapper + +The following example implements `GGrep` command that works similarly to +predefined `Ag` or `Rg` using `fzf#vim#grep`. + +- The second argument to `fzf#vim#grep` is 0 (false), because `git grep` does + not print column numbers. +- We set the base directory to git root by setting `dir` attribute in spec + dictionary. +- [The preview script](bin/preview.sh) supports `grep` format + (`FILE_PATH:LINE_NO:...`), so we can just wrap the spec with + `fzf#vim#with_preview` as before to enable previewer. + +```vim +command! -bang -nargs=* GGrep + \ call fzf#vim#grep( + \ 'git grep --line-number '.shellescape(), 0, + \ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), 0) +``` + +#### Example: `Rg` command with preview window + +You can see the definition of `Rg` command with `:command Rg`. With the +information, you can redefine it with the preview window enabled. In this +case, we're only interested in setting up the preview window, so we will omit +the spec argument to `fzf#vim#preview`. + +```vim +command! -bang -nargs=* Rg + \ call fzf#vim#grep( + \ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(), 1, + \ fzf#vim#with_preview(), 0) +``` + +#### Example: Advanced ripgrep integration + +In the default implementation of `Rg`, ripgrep process starts only once with +the initial query (e.g. `:Rg foo`) and fzf filters the output of the process. + +This is okay in most cases because fzf is quite performant even with millions +of lines, but we can make fzf completely delegate its search responsibliity to +ripgrep process by making it restart ripgrep whenever the query string is +updated. In this scenario, fzf becomes a simple selector interface rather than +a "fuzzy finder". + +- We will name the new command all-uppercase `RG` so we can still access the + default version. +- `--bind 'change:reload:rg ... {q}'` will make fzf restart ripgrep process + whenever the query string, denoted by `{q}`, is changed. +- With `--phony` option, fzf will no longer perform search. The query string + you type on fzf prompt is only used for restarting ripgrep process. +- Also note that we enabled previewer with `fzf#vim#with_preview`. + +```vim +function! RipgrepFzf(query, fullscreen) + let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true' + let initial_command = printf(command_fmt, shellescape(a:query)) + let reload_command = printf(command_fmt, '{q}') + let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]} + call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen) +endfunction + +command! -nargs=* -bang RG call RipgrepFzf(, 0) +``` + +Mappings +-------- + +| Mapping | Description | +| --- | --- | +| `(fzf-maps-n)` | Normal mode mappings | +| `(fzf-maps-i)` | Insert mode mappings | +| `(fzf-maps-x)` | Visual mode mappings | +| `(fzf-maps-o)` | Operator-pending mappings | +| `(fzf-complete-word)` | `cat /usr/share/dict/words` | +| `(fzf-complete-path)` | Path completion using `find` (file + dir) | +| `(fzf-complete-file)` | File completion using `find` | +| `(fzf-complete-file-ag)` | File completion using `ag` | +| `(fzf-complete-line)` | Line completion (all open buffers) | +| `(fzf-complete-buffer-line)` | Line completion (current buffer only) | + +### Usage + +```vim +" Mapping selecting mappings +nmap (fzf-maps-n) +xmap (fzf-maps-x) +omap (fzf-maps-o) + +" Insert mode completion +imap (fzf-complete-word) +imap (fzf-complete-path) +imap (fzf-complete-file-ag) +imap (fzf-complete-line) + +" Advanced customization using Vim function +inoremap fzf#vim#complete#word({'left': '15%'}) +``` + +### Completion helper + +`fzf#vim#complete` is a helper function for creating custom fuzzy completion +using fzf. If the first parameter is a command string or a Vim list, it will +be used as the source. + +```vim +" Replace the default dictionary completion with fzf-based fuzzy completion +inoremap fzf#vim#complete('cat /usr/share/dict/words') +``` + +For advanced uses, you can pass an options dictionary to the function. The set +of options is pretty much identical to that for `fzf#run` only with the +following exceptions: + +- `reducer` (funcref) + - Reducer transforms the output lines of fzf into a single string value +- `prefix` (string or funcref; default: `\k*$`) + - Regular expression pattern to extract the completion prefix + - Or a function to extract completion prefix +- Both `source` and `options` can be given as funcrefs that take the + completion prefix as the argument and return the final value +- `sink` or `sink*` are ignored + +```vim +" Global line completion (not just open buffers. ripgrep required.) +inoremap fzf#vim#complete(fzf#wrap({ + \ 'prefix': '^.*$', + \ 'source': 'rg -n ^ --color always', + \ 'options': '--ansi --delimiter : --nth 3..', + \ 'reducer': { lines -> join(split(lines[0], ':\zs')[2:], '') }})) +``` + +#### Reducer example + +```vim +function! s:make_sentence(lines) + return substitute(join(a:lines), '^.', '\=toupper(submatch(0))', '').'.' +endfunction + +inoremap fzf#vim#complete({ + \ 'source': 'cat /usr/share/dict/words', + \ 'reducer': function('make_sentence'), + \ 'options': '--multi --reverse --margin 15%,0', + \ 'left': 20}) +``` + +Status line of terminal buffer +------------------------------ + +When fzf starts in a terminal buffer (see [fzf/README-VIM.md][termbuf]), you +may want to customize the statusline of the containing buffer. + +[termbuf]: https://github.com/junegunn/fzf/blob/master/README-VIM.md#fzf-inside-terminal-buffer + +### Hide statusline + +```vim +autocmd! FileType fzf set laststatus=0 noshowmode noruler + \| autocmd BufLeave set laststatus=2 showmode ruler +``` + +### Custom statusline + +```vim +function! s:fzf_statusline() + " Override statusline as you like + highlight fzf1 ctermfg=161 ctermbg=251 + highlight fzf2 ctermfg=23 ctermbg=251 + highlight fzf3 ctermfg=237 ctermbg=251 + setlocal statusline=%#fzf1#\ >\ %#fzf2#fz%#fzf3#f +endfunction + +autocmd! User FzfStatusLine call fzf_statusline() +``` + +License +------- + +MIT + +[fzf]: https://github.com/junegunn/fzf +[run]: https://github.com/junegunn/fzf/blob/master/README-VIM.md#fzfrun +[vimrc]: https://github.com/junegunn/dotfiles/blob/master/vimrc +[ag]: https://github.com/ggreer/the_silver_searcher +[rg]: https://github.com/BurntSushi/ripgrep +[us]: https://github.com/SirVer/ultisnips diff --git a/_vim/.vim/plugged/fzf.vim/autoload/fzf/vim.vim b/_vim/.vim/plugged/fzf.vim/autoload/fzf/vim.vim new file mode 100644 index 0000000..9e2ff8e --- /dev/null +++ b/_vim/.vim/plugged/fzf.vim/autoload/fzf/vim.vim @@ -0,0 +1,1346 @@ +" Copyright (c) 2017 Junegunn Choi +" +" MIT License +" +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be +" included in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +" LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +let s:cpo_save = &cpo +set cpo&vim + +" ------------------------------------------------------------------ +" Common +" ------------------------------------------------------------------ + +let s:is_win = has('win32') || has('win64') +let s:layout_keys = ['window', 'up', 'down', 'left', 'right'] +let s:bin_dir = expand(':h:h:h').'/bin/' +let s:bin = { +\ 'preview': s:bin_dir.'preview.sh', +\ 'tags': s:bin_dir.'tags.pl' } +let s:TYPE = {'dict': type({}), 'funcref': type(function('call')), 'string': type(''), 'list': type([])} +if s:is_win + if has('nvim') + let s:bin.preview = split(system('for %A in ("'.s:bin.preview.'") do @echo %~sA'), "\n")[0] + else + let s:bin.preview = fnamemodify(s:bin.preview, ':8') + endif + let s:bin.preview = 'bash '.escape(s:bin.preview, '\') +endif + +let s:wide = 120 + +function! s:extend_opts(dict, eopts, prepend) + if empty(a:eopts) + return + endif + if has_key(a:dict, 'options') + if type(a:dict.options) == s:TYPE.list && type(a:eopts) == s:TYPE.list + if a:prepend + let a:dict.options = extend(copy(a:eopts), a:dict.options) + else + call extend(a:dict.options, a:eopts) + endif + else + let all_opts = a:prepend ? [a:eopts, a:dict.options] : [a:dict.options, a:eopts] + let a:dict.options = join(map(all_opts, 'type(v:val) == s:TYPE.list ? join(map(copy(v:val), "fzf#shellescape(v:val)")) : v:val')) + endif + else + let a:dict.options = a:eopts + endif +endfunction + +function! s:merge_opts(dict, eopts) + return s:extend_opts(a:dict, a:eopts, 0) +endfunction + +function! s:prepend_opts(dict, eopts) + return s:extend_opts(a:dict, a:eopts, 1) +endfunction + +" [[options to wrap], [preview window expression], [toggle-preview keys...]] +function! fzf#vim#with_preview(...) + " Default options + let options = {} + let window = '' + + let args = copy(a:000) + + " Options to wrap + if len(args) && type(args[0]) == s:TYPE.dict + let options = copy(args[0]) + call remove(args, 0) + endif + + " Placeholder expression (TODO/TBD: undocumented) + let placeholder = get(options, 'placeholder', '{}') + + " Preview window + if len(args) && type(args[0]) == s:TYPE.string + if args[0] !~# '^\(up\|down\|left\|right\)' + throw 'invalid preview window: '.args[0] + endif + let window = args[0] + call remove(args, 0) + endif + + let preview = [] + if len(window) + let preview += ['--preview-window', window] + endif + let preview += ['--preview', (s:is_win ? s:bin.preview : fzf#shellescape(s:bin.preview)).' '.placeholder] + + if len(args) + call extend(preview, ['--bind', join(map(args, 'v:val.":toggle-preview"'), ',')]) + endif + call s:merge_opts(options, preview) + return options +endfunction + +function! s:remove_layout(opts) + for key in s:layout_keys + if has_key(a:opts, key) + call remove(a:opts, key) + endif + endfor + return a:opts +endfunction + +function! s:reverse_list(opts) + let tokens = map(split($FZF_DEFAULT_OPTS, '[^a-z-]'), 'substitute(v:val, "^--", "", "")') + if index(tokens, 'reverse') < 0 + return extend(['--layout=reverse-list'], a:opts) + endif + return a:opts +endfunction + +function! s:wrap(name, opts, bang) + " fzf#wrap does not append --expect if sink or sink* is found + let opts = copy(a:opts) + let options = '' + if has_key(opts, 'options') + let options = type(opts.options) == s:TYPE.list ? join(opts.options) : opts.options + endif + if options !~ '--expect' && has_key(opts, 'sink*') + let Sink = remove(opts, 'sink*') + let wrapped = fzf#wrap(a:name, opts, a:bang) + let wrapped['sink*'] = Sink + else + let wrapped = fzf#wrap(a:name, opts, a:bang) + endif + return wrapped +endfunction + +function! s:strip(str) + return substitute(a:str, '^\s*\|\s*$', '', 'g') +endfunction + +function! s:chomp(str) + return substitute(a:str, '\n*$', '', 'g') +endfunction + +function! s:escape(path) + let path = fnameescape(a:path) + return s:is_win ? escape(path, '$') : path +endfunction + +if v:version >= 704 + function! s:function(name) + return function(a:name) + endfunction +else + function! s:function(name) + " By Ingo Karkat + return function(substitute(a:name, '^s:', matchstr(expand(''), '\d\+_\zefunction$'), '')) + endfunction +endif + +function! s:get_color(attr, ...) + let gui = has('termguicolors') && &termguicolors + let fam = gui ? 'gui' : 'cterm' + let pat = gui ? '^#[a-f0-9]\+' : '^[0-9]\+$' + for group in a:000 + let code = synIDattr(synIDtrans(hlID(group)), a:attr, fam) + if code =~? pat + return code + endif + endfor + return '' +endfunction + +let s:ansi = {'black': 30, 'red': 31, 'green': 32, 'yellow': 33, 'blue': 34, 'magenta': 35, 'cyan': 36} + +function! s:csi(color, fg) + let prefix = a:fg ? '38;' : '48;' + if a:color[0] == '#' + return prefix.'2;'.join(map([a:color[1:2], a:color[3:4], a:color[5:6]], 'str2nr(v:val, 16)'), ';') + endif + return prefix.'5;'.a:color +endfunction + +function! s:ansi(str, group, default, ...) + let fg = s:get_color('fg', a:group) + let bg = s:get_color('bg', a:group) + let color = (empty(fg) ? s:ansi[a:default] : s:csi(fg, 1)) . + \ (empty(bg) ? '' : ';'.s:csi(bg, 0)) + return printf("\x1b[%s%sm%s\x1b[m", color, a:0 ? ';1' : '', a:str) +endfunction + +for s:color_name in keys(s:ansi) + execute "function! s:".s:color_name."(str, ...)\n" + \ " return s:ansi(a:str, get(a:, 1, ''), '".s:color_name."')\n" + \ "endfunction" +endfor + +function! s:buflisted() + return filter(range(1, bufnr('$')), 'buflisted(v:val) && getbufvar(v:val, "&filetype") != "qf"') +endfunction + +function! s:fzf(name, opts, extra) + let [extra, bang] = [{}, 0] + if len(a:extra) <= 1 + let first = get(a:extra, 0, 0) + if type(first) == s:TYPE.dict + let extra = first + else + let bang = first + endif + elseif len(a:extra) == 2 + let [extra, bang] = a:extra + else + throw 'invalid number of arguments' + endif + + let eopts = has_key(extra, 'options') ? remove(extra, 'options') : '' + let merged = extend(copy(a:opts), extra) + call s:merge_opts(merged, eopts) + return fzf#run(s:wrap(a:name, merged, bang)) +endfunction + +let s:default_action = { + \ 'ctrl-t': 'tab split', + \ 'ctrl-x': 'split', + \ 'ctrl-v': 'vsplit' } + +function! s:action_for(key, ...) + let default = a:0 ? a:1 : '' + let Cmd = get(get(g:, 'fzf_action', s:default_action), a:key, default) + return type(Cmd) == s:TYPE.string ? Cmd : default +endfunction + +function! s:open(cmd, target) + if stridx('edit', a:cmd) == 0 && fnamemodify(a:target, ':p') ==# expand('%:p') + return + endif + execute a:cmd s:escape(a:target) +endfunction + +function! s:align_lists(lists) + let maxes = {} + for list in a:lists + let i = 0 + while i < len(list) + let maxes[i] = max([get(maxes, i, 0), len(list[i])]) + let i += 1 + endwhile + endfor + for list in a:lists + call map(list, "printf('%-'.maxes[v:key].'s', v:val)") + endfor + return a:lists +endfunction + +function! s:warn(message) + echohl WarningMsg + echom a:message + echohl None + return 0 +endfunction + +function! s:fill_quickfix(list, ...) + if len(a:list) > 1 + call setqflist(a:list) + copen + wincmd p + if a:0 + execute a:1 + endif + endif +endfunction + +function! fzf#vim#_uniq(list) + let visited = {} + let ret = [] + for l in a:list + if !empty(l) && !has_key(visited, l) + call add(ret, l) + let visited[l] = 1 + endif + endfor + return ret +endfunction + +" ------------------------------------------------------------------ +" Files +" ------------------------------------------------------------------ +function! s:shortpath() + let short = fnamemodify(getcwd(), ':~:.') + if !has('win32unix') + let short = pathshorten(short) + endif + let slash = (s:is_win && !&shellslash) ? '\' : '/' + return empty(short) ? '~'.slash : short . (short =~ escape(slash, '\').'$' ? '' : slash) +endfunction + +function! fzf#vim#files(dir, ...) + let args = {} + if !empty(a:dir) + if !isdirectory(expand(a:dir)) + return s:warn('Invalid directory') + endif + let slash = (s:is_win && !&shellslash) ? '\\' : '/' + let dir = substitute(a:dir, '[/\\]*$', slash, '') + let args.dir = dir + else + let dir = s:shortpath() + endif + + let args.options = ['-m', '--prompt', strwidth(dir) < &columns / 2 - 20 ? dir : '> '] + call s:merge_opts(args, get(g:, 'fzf_files_options', [])) + return s:fzf('files', args, a:000) +endfunction + +" ------------------------------------------------------------------ +" Lines +" ------------------------------------------------------------------ +function! s:line_handler(lines) + if len(a:lines) < 2 + return + endif + normal! m' + let cmd = s:action_for(a:lines[0]) + if !empty(cmd) && stridx('edit', cmd) < 0 + execute 'silent' cmd + endif + + let keys = split(a:lines[1], '\t') + execute 'buffer' keys[0] + execute keys[2] + normal! ^zvzz +endfunction + +function! fzf#vim#_lines(all) + let cur = [] + let rest = [] + let buf = bufnr('') + let longest_name = 0 + let display_bufnames = &columns > s:wide + if display_bufnames + let bufnames = {} + for b in s:buflisted() + let bufnames[b] = pathshorten(fnamemodify(bufname(b), ":~:.")) + let longest_name = max([longest_name, len(bufnames[b])]) + endfor + endif + let len_bufnames = min([15, longest_name]) + for b in s:buflisted() + let lines = getbufline(b, 1, "$") + if empty(lines) + let path = fnamemodify(bufname(b), ':p') + let lines = filereadable(path) ? readfile(path) : [] + endif + if display_bufnames + let bufname = bufnames[b] + if len(bufname) > len_bufnames + 1 + let bufname = '…' . bufname[-len_bufnames+1:] + endif + let bufname = printf(s:green("%".len_bufnames."s", "Directory"), bufname) + else + let bufname = '' + endif + let linefmt = s:blue("%2d\t", "TabLine")."%s".s:yellow("\t%4d ", "LineNr")."\t%s" + call extend(b == buf ? cur : rest, + \ filter( + \ map(lines, + \ '(!a:all && empty(v:val)) ? "" : printf(linefmt, b, bufname, v:key + 1, v:val)'), + \ 'a:all || !empty(v:val)')) + endfor + return [display_bufnames, extend(cur, rest)] +endfunction + +function! fzf#vim#lines(...) + let [display_bufnames, lines] = fzf#vim#_lines(1) + let nth = display_bufnames ? 3 : 2 + let [query, args] = (a:0 && type(a:1) == type('')) ? + \ [a:1, a:000[1:]] : ['', a:000] + return s:fzf('lines', { + \ 'source': lines, + \ 'sink*': s:function('s:line_handler'), + \ 'options': s:reverse_list(['+m', '--tiebreak=index', '--prompt', 'Lines> ', '--ansi', '--extended', '--nth='.nth.'..', '--tabstop=1', '--query', query]) + \}, args) +endfunction + +" ------------------------------------------------------------------ +" BLines +" ------------------------------------------------------------------ +function! s:buffer_line_handler(lines) + if len(a:lines) < 2 + return + endif + let qfl = [] + for line in a:lines[1:] + let chunks = split(line, "\t", 1) + let ln = chunks[0] + let ltxt = join(chunks[1:], "\t") + call add(qfl, {'filename': expand('%'), 'lnum': str2nr(ln), 'text': ltxt}) + endfor + call s:fill_quickfix(qfl, 'cfirst') + normal! m' + let cmd = s:action_for(a:lines[0]) + if !empty(cmd) + execute 'silent' cmd + endif + + execute split(a:lines[1], '\t')[0] + normal! ^zvzz +endfunction + +function! s:buffer_lines(query) + let linefmt = s:yellow(" %4d ", "LineNr")."\t%s" + let fmtexpr = 'printf(linefmt, v:key + 1, v:val)' + let lines = getline(1, '$') + if empty(a:query) + return map(lines, fmtexpr) + end + return filter(map(lines, 'v:val =~ a:query ? '.fmtexpr.' : ""'), 'len(v:val)') +endfunction + +function! fzf#vim#buffer_lines(...) + let [query, args] = (a:0 && type(a:1) == type('')) ? + \ [a:1, a:000[1:]] : ['', a:000] + return s:fzf('blines', { + \ 'source': s:buffer_lines(query), + \ 'sink*': s:function('s:buffer_line_handler'), + \ 'options': s:reverse_list(['+m', '--tiebreak=index', '--multi', '--prompt', 'BLines> ', '--ansi', '--extended', '--nth=2..', '--tabstop=1']) + \}, args) +endfunction + +" ------------------------------------------------------------------ +" Colors +" ------------------------------------------------------------------ +function! fzf#vim#colors(...) + let colors = split(globpath(&rtp, "colors/*.vim"), "\n") + if has('packages') + let colors += split(globpath(&packpath, "pack/*/opt/*/colors/*.vim"), "\n") + endif + return s:fzf('colors', { + \ 'source': fzf#vim#_uniq(map(colors, "substitute(fnamemodify(v:val, ':t'), '\\..\\{-}$', '', '')")), + \ 'sink': 'colo', + \ 'options': '+m --prompt="Colors> "' + \}, a:000) +endfunction + +" ------------------------------------------------------------------ +" Locate +" ------------------------------------------------------------------ +function! fzf#vim#locate(query, ...) + return s:fzf('locate', { + \ 'source': 'locate '.a:query, + \ 'options': '-m --prompt "Locate> "' + \}, a:000) +endfunction + +" ------------------------------------------------------------------ +" History[:/] +" ------------------------------------------------------------------ +function! s:all_files() + return fzf#vim#_uniq(map( + \ filter([expand('%')], 'len(v:val)') + \ + filter(map(s:buflisted_sorted(), 'bufname(v:val)'), 'len(v:val)') + \ + filter(copy(v:oldfiles), "filereadable(fnamemodify(v:val, ':p'))"), + \ 'fnamemodify(v:val, ":~:.")')) +endfunction + +function! s:history_source(type) + let max = histnr(a:type) + let fmt = ' %'.len(string(max)).'d ' + let list = filter(map(range(1, max), 'histget(a:type, - v:val)'), '!empty(v:val)') + return extend([' :: Press '.s:magenta('CTRL-E', 'Special').' to edit'], + \ map(list, 's:yellow(printf(fmt, len(list) - v:key), "Number")." ".v:val')) +endfunction + +nnoremap (-fzf-vim-do) :execute g:__fzf_command +nnoremap (-fzf-/) / +nnoremap (-fzf-:) : + +function! s:history_sink(type, lines) + if len(a:lines) < 2 + return + endif + + let prefix = "\(-fzf-".a:type.')' + let key = a:lines[0] + let item = matchstr(a:lines[1], ' *[0-9]\+ *\zs.*') + if key == 'ctrl-e' + call histadd(a:type, item) + redraw + call feedkeys(a:type."\", 'n') + else + if a:type == ':' + call histadd(a:type, item) + endif + let g:__fzf_command = "normal ".prefix.item."\" + call feedkeys("\(-fzf-vim-do)") + endif +endfunction + +function! s:cmd_history_sink(lines) + call s:history_sink(':', a:lines) +endfunction + +function! fzf#vim#command_history(...) + return s:fzf('history-command', { + \ 'source': s:history_source(':'), + \ 'sink*': s:function('s:cmd_history_sink'), + \ 'options': '+m --ansi --prompt="Hist:> " --header-lines=1 --expect=ctrl-e --tiebreak=index'}, a:000) +endfunction + +function! s:search_history_sink(lines) + call s:history_sink('/', a:lines) +endfunction + +function! fzf#vim#search_history(...) + return s:fzf('history-search', { + \ 'source': s:history_source('/'), + \ 'sink*': s:function('s:search_history_sink'), + \ 'options': '+m --ansi --prompt="Hist/> " --header-lines=1 --expect=ctrl-e --tiebreak=index'}, a:000) +endfunction + +function! fzf#vim#history(...) + return s:fzf('history-files', { + \ 'source': s:all_files(), + \ 'options': ['-m', '--header-lines', !empty(expand('%')), '--prompt', 'Hist> '] + \}, a:000) +endfunction + +" ------------------------------------------------------------------ +" GFiles[?] +" ------------------------------------------------------------------ + +function! s:get_git_root() + let root = split(system('git rev-parse --show-toplevel'), '\n')[0] + return v:shell_error ? '' : root +endfunction + +function! fzf#vim#gitfiles(args, ...) + let root = s:get_git_root() + if empty(root) + return s:warn('Not in git repo') + endif + if a:args != '?' + return s:fzf('gfiles', { + \ 'source': 'git ls-files '.a:args.(s:is_win ? '' : ' | uniq'), + \ 'dir': root, + \ 'options': '-m --prompt "GitFiles> "' + \}, a:000) + endif + + " Here be dragons! + " We're trying to access the common sink function that fzf#wrap injects to + " the options dictionary. + let wrapped = fzf#wrap({ + \ 'source': 'git -c color.status=always status --short --untracked-files=all', + \ 'dir': root, + \ 'options': ['--ansi', '--multi', '--nth', '2..,..', '--tiebreak=index', '--prompt', 'GitFiles?> ', '--preview', 'sh -c "(git diff --color=always -- {-1} | sed 1,4d; cat {-1}) | head -500"'] + \}) + call s:remove_layout(wrapped) + let wrapped.common_sink = remove(wrapped, 'sink*') + function! wrapped.newsink(lines) + let lines = extend(a:lines[0:0], map(a:lines[1:], 'substitute(v:val[3:], ".* -> ", "", "")')) + return self.common_sink(lines) + endfunction + let wrapped['sink*'] = remove(wrapped, 'newsink') + return s:fzf('gfiles-diff', wrapped, a:000) +endfunction + +" ------------------------------------------------------------------ +" Buffers +" ------------------------------------------------------------------ +function! s:find_open_window(b) + let [tcur, tcnt] = [tabpagenr() - 1, tabpagenr('$')] + for toff in range(0, tabpagenr('$') - 1) + let t = (tcur + toff) % tcnt + 1 + let buffers = tabpagebuflist(t) + for w in range(1, len(buffers)) + let b = buffers[w - 1] + if b == a:b + return [t, w] + endif + endfor + endfor + return [0, 0] +endfunction + +function! s:jump(t, w) + execute a:t.'tabnext' + execute a:w.'wincmd w' +endfunction + +function! s:bufopen(lines) + if len(a:lines) < 2 + return + endif + let b = matchstr(a:lines[1], '\[\zs[0-9]*\ze\]') + if empty(a:lines[0]) && get(g:, 'fzf_buffers_jump') + let [t, w] = s:find_open_window(b) + if t + call s:jump(t, w) + return + endif + endif + let cmd = s:action_for(a:lines[0]) + if !empty(cmd) + execute 'silent' cmd + endif + execute 'buffer' b +endfunction + +function! s:format_buffer(b) + let name = bufname(a:b) + let line = exists('*getbufinfo') ? getbufinfo(a:b)[0]['lnum'] : 0 + let name = empty(name) ? '[No Name]' : fnamemodify(name, ":p:~:.") + let flag = a:b == bufnr('') ? s:blue('%', 'Conditional') : + \ (a:b == bufnr('#') ? s:magenta('#', 'Special') : ' ') + let modified = getbufvar(a:b, '&modified') ? s:red(' [+]', 'Exception') : '' + let readonly = getbufvar(a:b, '&modifiable') ? '' : s:green(' [RO]', 'Constant') + let extra = join(filter([modified, readonly], '!empty(v:val)'), '') + let target = line == 0 ? name : name.':'.line + return s:strip(printf("%s\t[%s] %s\t%s\t%s", target, s:yellow(a:b, 'Number'), flag, name, extra)) +endfunction + +function! s:sort_buffers(...) + let [b1, b2] = map(copy(a:000), 'get(g:fzf#vim#buffers, v:val, v:val)') + " Using minus between a float and a number in a sort function causes an error + return b1 < b2 ? 1 : -1 +endfunction + +function! s:buflisted_sorted() + return sort(s:buflisted(), 's:sort_buffers') +endfunction + +function! fzf#vim#buffers(...) + let [query, args] = (a:0 && type(a:1) == type('')) ? + \ [a:1, a:000[1:]] : ['', a:000] + return s:fzf('buffers', { + \ 'source': map(s:buflisted_sorted(), 's:format_buffer(v:val)'), + \ 'sink*': s:function('s:bufopen'), + \ 'options': ['+m', '-x', '--tiebreak=index', '--header-lines=1', '--ansi', '-d', '\t', '--with-nth', '2..', '-n', '2,1..2', '--prompt', 'Buf> ', '--query', query] + \}, args) +endfunction + +" ------------------------------------------------------------------ +" Ag / Rg +" ------------------------------------------------------------------ +function! s:ag_to_qf(line, has_column) + let parts = split(a:line, '[^:]\zs:\ze[^:]') + let text = join(parts[(a:has_column ? 3 : 2):], ':') + let dict = {'filename': &acd ? fnamemodify(parts[0], ':p') : parts[0], 'lnum': parts[1], 'text': text} + if a:has_column + let dict.col = parts[2] + endif + return dict +endfunction + +function! s:ag_handler(lines, has_column) + if len(a:lines) < 2 + return + endif + + let cmd = s:action_for(a:lines[0], 'e') + let list = map(filter(a:lines[1:], 'len(v:val)'), 's:ag_to_qf(v:val, a:has_column)') + if empty(list) + return + endif + + let first = list[0] + try + call s:open(cmd, first.filename) + execute first.lnum + if a:has_column + execute 'normal!' first.col.'|' + endif + normal! zz + catch + endtry + + call s:fill_quickfix(list) +endfunction + +" query, [[ag options], options] +function! fzf#vim#ag(query, ...) + if type(a:query) != s:TYPE.string + return s:warn('Invalid query argument') + endif + let query = empty(a:query) ? '^(?=.)' : a:query + let args = copy(a:000) + let ag_opts = len(args) > 1 && type(args[0]) == s:TYPE.string ? remove(args, 0) : '' + let command = ag_opts . ' ' . fzf#shellescape(query) + return call('fzf#vim#ag_raw', insert(args, command, 0)) +endfunction + +" ag command suffix, [options] +function! fzf#vim#ag_raw(command_suffix, ...) + if !executable('ag') + return s:warn('ag is not found') + endif + return call('fzf#vim#grep', extend(['ag --nogroup --column --color '.a:command_suffix, 1], a:000)) +endfunction + +" command (string), has_column (0/1), [options (dict)], [fullscreen (0/1)] +function! fzf#vim#grep(grep_command, has_column, ...) + let words = [] + for word in split(a:grep_command) + if word !~# '^[a-z]' + break + endif + call add(words, word) + endfor + let words = empty(words) ? ['grep'] : words + let name = join(words, '-') + let capname = join(map(words, 'toupper(v:val[0]).v:val[1:]'), '') + let opts = { + \ 'column': a:has_column, + \ 'options': ['--ansi', '--prompt', capname.'> ', + \ '--multi', '--bind', 'alt-a:select-all,alt-d:deselect-all', + \ '--color', 'hl:4,hl+:12'] + \} + function! opts.sink(lines) + return s:ag_handler(a:lines, self.column) + endfunction + let opts['sink*'] = remove(opts, 'sink') + try + let prev_default_command = $FZF_DEFAULT_COMMAND + let $FZF_DEFAULT_COMMAND = a:grep_command + return s:fzf(name, opts, a:000) + finally + let $FZF_DEFAULT_COMMAND = prev_default_command + endtry +endfunction + +" ------------------------------------------------------------------ +" BTags +" ------------------------------------------------------------------ +function! s:btags_source(tag_cmds) + if !filereadable(expand('%')) + throw 'Save the file first' + endif + + for cmd in a:tag_cmds + let lines = split(system(cmd), "\n") + if !v:shell_error && len(lines) + break + endif + endfor + if v:shell_error + throw get(lines, 0, 'Failed to extract tags') + elseif empty(lines) + throw 'No tags found' + endif + return map(s:align_lists(map(lines, 'split(v:val, "\t")')), 'join(v:val, "\t")') +endfunction + +function! s:btags_sink(lines) + if len(a:lines) < 2 + return + endif + normal! m' + let cmd = s:action_for(a:lines[0]) + if !empty(cmd) + execute 'silent' cmd '%' + endif + let qfl = [] + for line in a:lines[1:] + execute split(line, "\t")[2] + call add(qfl, {'filename': expand('%'), 'lnum': line('.'), 'text': getline('.')}) + endfor + call s:fill_quickfix(qfl, 'cfirst') + normal! zz +endfunction + +" query, [[tag commands], options] +function! fzf#vim#buffer_tags(query, ...) + let args = copy(a:000) + let escaped = fzf#shellescape(expand('%')) + let null = s:is_win ? 'nul' : '/dev/null' + let sort = has('unix') && !has('win32unix') && executable('sort') ? '| sort -s -k 5' : '' + let tag_cmds = (len(args) > 1 && type(args[0]) != type({})) ? remove(args, 0) : [ + \ printf('ctags -f - --sort=yes --excmd=number --language-force=%s %s 2> %s %s', &filetype, escaped, null, sort), + \ printf('ctags -f - --sort=yes --excmd=number %s 2> %s %s', escaped, null, sort)] + if type(tag_cmds) != type([]) + let tag_cmds = [tag_cmds] + endif + try + return s:fzf('btags', { + \ 'source': s:btags_source(tag_cmds), + \ 'sink*': s:function('s:btags_sink'), + \ 'options': s:reverse_list(['-m', '-d', '\t', '--with-nth', '1,4..', '-n', '1', '--prompt', 'BTags> ', '--query', a:query])}, args) + catch + return s:warn(v:exception) + endtry +endfunction + +" ------------------------------------------------------------------ +" Tags +" ------------------------------------------------------------------ +function! s:tags_sink(lines) + if len(a:lines) < 2 + return + endif + normal! m' + let qfl = [] + let cmd = s:action_for(a:lines[0], 'e') + try + let [magic, &magic, wrapscan, &wrapscan, acd, &acd] = [&magic, 0, &wrapscan, 1, &acd, 0] + for line in a:lines[1:] + try + let parts = split(line, '\t\zs') + let excmd = matchstr(join(parts[2:-2], '')[:-2], '^.\{-}\ze;\?"\t') + let base = fnamemodify(parts[-1], ':h') + let relpath = parts[1][:-2] + let abspath = relpath =~ (s:is_win ? '^[A-Z]:\' : '^/') ? relpath : join([base, relpath], '/') + call s:open(cmd, expand(abspath, 1)) + silent execute excmd + call add(qfl, {'filename': expand('%'), 'lnum': line('.'), 'text': getline('.')}) + catch /^Vim:Interrupt$/ + break + catch + call s:warn(v:exception) + endtry + endfor + finally + let [&magic, &wrapscan, &acd] = [magic, wrapscan, acd] + endtry + call s:fill_quickfix(qfl, 'clast') + normal! zz +endfunction + +function! fzf#vim#tags(query, ...) + if !executable('perl') + return s:warn('Tags command requires perl') + endif + if empty(tagfiles()) + call inputsave() + echohl WarningMsg + let gen = input('tags not found. Generate? (y/N) ') + echohl None + call inputrestore() + redraw + if gen =~? '^y' + call s:warn('Preparing tags') + call system(get(g:, 'fzf_tags_command', 'ctags -R'.(s:is_win ? ' --output-format=e-ctags' : ''))) + if empty(tagfiles()) + return s:warn('Failed to create tags') + endif + else + return s:warn('No tags found') + endif + endif + + let tagfiles = tagfiles() + let v2_limit = 1024 * 1024 * 200 + for tagfile in tagfiles + let v2_limit -= getfsize(tagfile) + if v2_limit < 0 + break + endif + endfor + let opts = v2_limit < 0 ? ['--algo=v1'] : [] + + return s:fzf('tags', { + \ 'source': 'perl '.fzf#shellescape(s:bin.tags).' '.join(map(tagfiles, 'fzf#shellescape(fnamemodify(v:val, ":p"))')), + \ 'sink*': s:function('s:tags_sink'), + \ 'options': extend(opts, ['--nth', '1..2', '-m', '--tiebreak=begin', '--prompt', 'Tags> ', '--query', a:query])}, a:000) +endfunction + +" ------------------------------------------------------------------ +" Snippets (UltiSnips) +" ------------------------------------------------------------------ +function! s:inject_snippet(line) + let snip = split(a:line, "\t")[0] + execute 'normal! a'.s:strip(snip)."\=UltiSnips#ExpandSnippet()\" +endfunction + +function! fzf#vim#snippets(...) + if !exists(':UltiSnipsEdit') + return s:warn('UltiSnips not found') + endif + let list = UltiSnips#SnippetsInCurrentScope() + if empty(list) + return s:warn('No snippets available here') + endif + let aligned = sort(s:align_lists(items(list))) + let colored = map(aligned, 's:yellow(v:val[0])."\t".v:val[1]') + return s:fzf('snippets', { + \ 'source': colored, + \ 'options': '--ansi --tiebreak=index +m -n 1 -d "\t"', + \ 'sink': s:function('s:inject_snippet')}, a:000) +endfunction + +" ------------------------------------------------------------------ +" Commands +" ------------------------------------------------------------------ +let s:nbs = nr2char(0x2007) + +function! s:format_cmd(line) + return substitute(a:line, '\C \([A-Z]\S*\) ', + \ '\=s:nbs.s:yellow(submatch(1), "Function").s:nbs', '') +endfunction + +function! s:command_sink(lines) + if len(a:lines) < 2 + return + endif + let cmd = matchstr(a:lines[1], s:nbs.'\zs\S*\ze'.s:nbs) + if empty(a:lines[0]) + call feedkeys(':'.cmd.(a:lines[1][0] == '!' ? '' : ' '), 'n') + else + execute cmd + endif +endfunction + +let s:fmt_excmd = ' '.s:blue('%-38s', 'Statement').'%s' + +function! s:format_excmd(ex) + let match = matchlist(a:ex, '^|:\(\S\+\)|\s*\S*\(.*\)') + return printf(s:fmt_excmd, s:nbs.match[1].s:nbs, s:strip(match[2])) +endfunction + +function! s:excmds() + let help = globpath($VIMRUNTIME, 'doc/index.txt') + if empty(help) + return [] + endif + + let commands = [] + let command = '' + for line in readfile(help) + if line =~ '^|:[^|]' + if !empty(command) + call add(commands, s:format_excmd(command)) + endif + let command = line + elseif line =~ '^\s\+\S' && !empty(command) + let command .= substitute(line, '^\s*', ' ', '') + elseif !empty(commands) && line =~ '^\s*$' + break + endif + endfor + if !empty(command) + call add(commands, s:format_excmd(command)) + endif + return commands +endfunction + +function! fzf#vim#commands(...) + redir => cout + silent command + redir END + let list = split(cout, "\n") + return s:fzf('commands', { + \ 'source': extend(extend(list[0:0], map(list[1:], 's:format_cmd(v:val)')), s:excmds()), + \ 'sink*': s:function('s:command_sink'), + \ 'options': '--ansi --expect '.get(g:, 'fzf_commands_expect', 'ctrl-x'). + \ ' --tiebreak=index --header-lines 1 -x --prompt "Commands> " -n2,3,2..3 -d'.s:nbs}, a:000) +endfunction + +" ------------------------------------------------------------------ +" Marks +" ------------------------------------------------------------------ +function! s:format_mark(line) + return substitute(a:line, '\S', '\=s:yellow(submatch(0), "Number")', '') +endfunction + +function! s:mark_sink(lines) + if len(a:lines) < 2 + return + endif + let cmd = s:action_for(a:lines[0]) + if !empty(cmd) + execute 'silent' cmd + endif + execute 'normal! `'.matchstr(a:lines[1], '\S').'zz' +endfunction + +function! fzf#vim#marks(...) + redir => cout + silent marks + redir END + let list = split(cout, "\n") + return s:fzf('marks', { + \ 'source': extend(list[0:0], map(list[1:], 's:format_mark(v:val)')), + \ 'sink*': s:function('s:mark_sink'), + \ 'options': '+m -x --ansi --tiebreak=index --header-lines 1 --tiebreak=begin --prompt "Marks> "'}, a:000) +endfunction + +" ------------------------------------------------------------------ +" Help tags +" ------------------------------------------------------------------ +function! s:helptag_sink(line) + let [tag, file, path] = split(a:line, "\t")[0:2] + let rtp = fnamemodify(path, ':p:h:h') + if stridx(&rtp, rtp) < 0 + execute 'set rtp+='.s:escape(rtp) + endif + execute 'help' tag +endfunction + +function! fzf#vim#helptags(...) + if !executable('grep') || !executable('perl') + return s:warn('Helptags command requires grep and perl') + endif + let sorted = sort(split(globpath(&runtimepath, 'doc/tags', 1), '\n')) + let tags = exists('*uniq') ? uniq(sorted) : fzf#vim#_uniq(sorted) + + if exists('s:helptags_script') + silent! call delete(s:helptags_script) + endif + let s:helptags_script = tempname() + call writefile(['/('.(s:is_win ? '^[A-Z]:\/.*?[^:]' : '.*?').'):(.*?)\t(.*?)\t/; printf(qq('.s:green('%-40s', 'Label').'\t%s\t%s\n), $2, $3, $1)'], s:helptags_script) + return s:fzf('helptags', { + \ 'source': 'grep -H ".*" '.join(map(tags, 'fzf#shellescape(v:val)')). + \ ' | perl -n '.fzf#shellescape(s:helptags_script).' | sort', + \ 'sink': s:function('s:helptag_sink'), + \ 'options': ['--ansi', '+m', '--tiebreak=begin', '--with-nth', '..-2']}, a:000) +endfunction + +" ------------------------------------------------------------------ +" File types +" ------------------------------------------------------------------ +function! fzf#vim#filetypes(...) + return s:fzf('filetypes', { + \ 'source': fzf#vim#_uniq(sort(map(split(globpath(&rtp, 'syntax/*.vim'), '\n'), + \ 'fnamemodify(v:val, ":t:r")'))), + \ 'sink': 'setf', + \ 'options': '+m --prompt="File types> "' + \}, a:000) +endfunction + +" ------------------------------------------------------------------ +" Windows +" ------------------------------------------------------------------ +function! s:format_win(tab, win, buf) + let modified = getbufvar(a:buf, '&modified') + let name = bufname(a:buf) + let name = empty(name) ? '[No Name]' : name + let active = tabpagewinnr(a:tab) == a:win + return (active? s:blue('> ', 'Operator') : ' ') . name . (modified? s:red(' [+]', 'Exception') : '') +endfunction + +function! s:windows_sink(line) + let list = matchlist(a:line, '^ *\([0-9]\+\) *\([0-9]\+\)') + call s:jump(list[1], list[2]) +endfunction + +function! fzf#vim#windows(...) + let lines = [] + for t in range(1, tabpagenr('$')) + let buffers = tabpagebuflist(t) + for w in range(1, len(buffers)) + call add(lines, + \ printf('%s %s %s', + \ s:yellow(printf('%3d', t), 'Number'), + \ s:cyan(printf('%3d', w), 'String'), + \ s:format_win(t, w, buffers[w-1]))) + endfor + endfor + return s:fzf('windows', { + \ 'source': extend(['Tab Win Name'], lines), + \ 'sink': s:function('s:windows_sink'), + \ 'options': '+m --ansi --tiebreak=begin --header-lines=1'}, a:000) +endfunction + +" ------------------------------------------------------------------ +" Commits / BCommits +" ------------------------------------------------------------------ +function! s:yank_to_register(data) + let @" = a:data + silent! let @* = a:data + silent! let @+ = a:data +endfunction + +function! s:commits_sink(lines) + if len(a:lines) < 2 + return + endif + + let pat = '[0-9a-f]\{7,9}' + + if a:lines[0] == 'ctrl-y' + let hashes = join(filter(map(a:lines[1:], 'matchstr(v:val, pat)'), 'len(v:val)')) + return s:yank_to_register(hashes) + end + + let diff = a:lines[0] == 'ctrl-d' + let cmd = s:action_for(a:lines[0], 'e') + let buf = bufnr('') + for idx in range(1, len(a:lines) - 1) + let sha = matchstr(a:lines[idx], pat) + if !empty(sha) + if diff + if idx > 1 + execute 'tab sb' buf + endif + execute 'Gdiff' sha + else + " Since fugitive buffers are unlisted, we can't keep using 'e' + let c = (cmd == 'e' && idx > 1) ? 'tab split' : cmd + execute c FugitiveFind(sha) + endif + endif + endfor +endfunction + +function! s:commits(buffer_local, args) + let s:git_root = s:get_git_root() + if empty(s:git_root) + return s:warn('Not in git repository') + endif + + let source = 'git log '.get(g:, 'fzf_commits_log_options', '--color=always '.fzf#shellescape('--format=%C(auto)%h%d %s %C(green)%cr')) + let current = expand('%') + let managed = 0 + if !empty(current) + call system('git show '.fzf#shellescape(current).' 2> '.(s:is_win ? 'nul' : '/dev/null')) + let managed = !v:shell_error + endif + + if a:buffer_local + if !managed + return s:warn('The current buffer is not in the working tree') + endif + let source .= ' --follow '.fzf#shellescape(current) + else + let source .= ' --graph' + endif + + let command = a:buffer_local ? 'BCommits' : 'Commits' + let expect_keys = join(keys(get(g:, 'fzf_action', s:default_action)), ',') + let options = { + \ 'source': source, + \ 'sink*': s:function('s:commits_sink'), + \ 'options': s:reverse_list(['--ansi', '--multi', '--tiebreak=index', + \ '--inline-info', '--prompt', command.'> ', '--bind=ctrl-s:toggle-sort', + \ '--header', ':: Press '.s:magenta('CTRL-S', 'Special').' to toggle sort, '.s:magenta('CTRL-Y', 'Special').' to yank commit hashes', + \ '--expect=ctrl-y,'.expect_keys]) + \ } + + if a:buffer_local + let options.options[-2] .= ', '.s:magenta('CTRL-D', 'Special').' to diff' + let options.options[-1] .= ',ctrl-d' + endif + + if !s:is_win && &columns > s:wide + call extend(options.options, + \ ['--preview', 'echo {} | grep -o "[a-f0-9]\{7,\}" | head -1 | xargs git show --format=format: --color=always | head -200']) + endif + + return s:fzf(a:buffer_local ? 'bcommits' : 'commits', options, a:args) +endfunction + +function! fzf#vim#commits(...) + return s:commits(0, a:000) +endfunction + +function! fzf#vim#buffer_commits(...) + return s:commits(1, a:000) +endfunction + +" ------------------------------------------------------------------ +" fzf#vim#maps(mode, opts[with count and op]) +" ------------------------------------------------------------------ +function! s:align_pairs(list) + let maxlen = 0 + let pairs = [] + for elem in a:list + let match = matchlist(elem, '^\(\S*\)\s*\(.*\)$') + let [_, k, v] = match[0:2] + let maxlen = max([maxlen, len(k)]) + call add(pairs, [k, substitute(v, '^\*\?[@ ]\?', '', '')]) + endfor + let maxlen = min([maxlen, 35]) + return map(pairs, "printf('%-'.maxlen.'s', v:val[0]).' '.v:val[1]") +endfunction + +function! s:highlight_keys(str) + return substitute( + \ substitute(a:str, '<[^ >]\+>', s:yellow('\0', 'Special'), 'g'), + \ '', s:blue('', 'SpecialKey'), 'g') +endfunction + +function! s:key_sink(line) + let key = matchstr(a:line, '^\S*') + redraw + call feedkeys(s:map_gv.s:map_cnt.s:map_reg, 'n') + call feedkeys(s:map_op. + \ substitute(key, '<[^ >]\+>', '\=eval("\"\\".submatch(0)."\"")', 'g')) +endfunction + +function! fzf#vim#maps(mode, ...) + let s:map_gv = a:mode == 'x' ? 'gv' : '' + let s:map_cnt = v:count == 0 ? '' : v:count + let s:map_reg = empty(v:register) ? '' : ('"'.v:register) + let s:map_op = a:mode == 'o' ? v:operator : '' + + redir => cout + silent execute 'verbose' a:mode.'map' + redir END + let list = [] + let curr = '' + for line in split(cout, "\n") + if line =~ "^\t" + let src = ' '.join(reverse(reverse(split(split(line)[-1], '/'))[0:2]), '/') + call add(list, printf('%s %s', curr, s:green(src, 'Comment'))) + let curr = '' + else + let curr = line[3:] + endif + endfor + if !empty(curr) + call add(list, curr) + endif + let aligned = s:align_pairs(list) + let sorted = sort(aligned) + let colored = map(sorted, 's:highlight_keys(v:val)') + let pcolor = a:mode == 'x' ? 9 : a:mode == 'o' ? 10 : 12 + return s:fzf('maps', { + \ 'source': colored, + \ 'sink': s:function('s:key_sink'), + \ 'options': '--prompt "Maps ('.a:mode.')> " --ansi --no-hscroll --nth 1,.. --color prompt:'.pcolor}, a:000) +endfunction + +" ---------------------------------------------------------------------------- +" fzf#vim#complete - completion helper +" ---------------------------------------------------------------------------- +inoremap (-fzf-complete-trigger) :call complete_trigger() + +function! s:pluck(dict, key, default) + return has_key(a:dict, a:key) ? remove(a:dict, a:key) : a:default +endfunction + +function! s:complete_trigger() + let opts = copy(s:opts) + call s:prepend_opts(opts, ['+m', '-q', s:query]) + let opts['sink*'] = s:function('s:complete_insert') + let s:reducer = s:pluck(opts, 'reducer', s:function('s:first_line')) + call fzf#run(opts) +endfunction + +" The default reducer +function! s:first_line(lines) + return a:lines[0] +endfunction + +function! s:complete_insert(lines) + if empty(a:lines) + return + endif + + let chars = strchars(s:query) + if chars == 0 | let del = '' + elseif chars == 1 | let del = '"_x' + else | let del = (chars - 1).'"_dvh' + endif + + let data = call(s:reducer, [a:lines]) + let ve = &ve + set ve= + execute 'normal!' ((s:eol || empty(chars)) ? '' : 'h').del.(s:eol ? 'a': 'i').data + let &ve = ve + if mode() =~ 't' + call feedkeys('a', 'n') + else + execute "normal! \la" + endif +endfunction + +function! s:eval(dict, key, arg) + if has_key(a:dict, a:key) && type(a:dict[a:key]) == s:TYPE.funcref + let ret = copy(a:dict) + let ret[a:key] = call(a:dict[a:key], [a:arg]) + return ret + endif + return a:dict +endfunction + +function! fzf#vim#complete(...) + if a:0 == 0 + let s:opts = fzf#wrap() + elseif type(a:1) == s:TYPE.dict + let s:opts = copy(a:1) + elseif type(a:1) == s:TYPE.string + let s:opts = extend({'source': a:1}, get(a:000, 1, fzf#wrap())) + else + echoerr 'Invalid argument: '.string(a:000) + return '' + endif + for s in ['sink', 'sink*'] + if has_key(s:opts, s) + call remove(s:opts, s) + endif + endfor + + let eol = col('$') + let ve = &ve + set ve=all + let s:eol = col('.') == eol + let &ve = ve + + let Prefix = s:pluck(s:opts, 'prefix', '\k*$') + if col('.') == 1 + let s:query = '' + else + let full_prefix = getline('.')[0 : col('.')-2] + if type(Prefix) == s:TYPE.funcref + let s:query = call(Prefix, [full_prefix]) + else + let s:query = matchstr(full_prefix, Prefix) + endif + endif + let s:opts = s:eval(s:opts, 'source', s:query) + let s:opts = s:eval(s:opts, 'options', s:query) + let s:opts = s:eval(s:opts, 'extra_options', s:query) + if has_key(s:opts, 'extra_options') + call s:merge_opts(s:opts, remove(s:opts, 'extra_options')) + endif + if has_key(s:opts, 'options') + if type(s:opts.options) == s:TYPE.list + call add(s:opts.options, '--no-expect') + else + let s:opts.options .= ' --no-expect' + endif + endif + + call feedkeys("\(-fzf-complete-trigger)") + return '' +endfunction + +" ------------------------------------------------------------------ +let &cpo = s:cpo_save +unlet s:cpo_save + diff --git a/_vim/.vim/plugged/fzf.vim/autoload/fzf/vim/complete.vim b/_vim/.vim/plugged/fzf.vim/autoload/fzf/vim/complete.vim new file mode 100644 index 0000000..03c9b3b --- /dev/null +++ b/_vim/.vim/plugged/fzf.vim/autoload/fzf/vim/complete.vim @@ -0,0 +1,163 @@ +" Copyright (c) 2015 Junegunn Choi +" +" MIT License +" +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be +" included in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +" LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +let s:cpo_save = &cpo +set cpo&vim +let s:is_win = has('win32') || has('win64') + +function! s:extend(base, extra) + let base = copy(a:base) + if has_key(a:extra, 'options') + let extra = copy(a:extra) + let extra.extra_options = remove(extra, 'options') + return extend(base, extra) + endif + return extend(base, a:extra) +endfunction + +if v:version >= 704 + function! s:function(name) + return function(a:name) + endfunction +else + function! s:function(name) + " By Ingo Karkat + return function(substitute(a:name, '^s:', matchstr(expand(''), '\d\+_\zefunction$'), '')) + endfunction +endif + +function! fzf#vim#complete#word(...) + return fzf#vim#complete(s:extend({ + \ 'source': 'cat /usr/share/dict/words'}, + \ get(a:000, 0, fzf#wrap()))) +endfunction + +" ---------------------------------------------------------------------------- +" (fzf-complete-path) +" (fzf-complete-file) +" (fzf-complete-file-ag) +" ---------------------------------------------------------------------------- +function! s:file_split_prefix(prefix) + let expanded = expand(a:prefix) + let slash = (s:is_win && !&shellslash) ? '\\' : '/' + return isdirectory(expanded) ? + \ [expanded, + \ substitute(a:prefix, '[/\\]*$', slash, ''), + \ ''] : + \ [fnamemodify(expanded, ':h'), + \ substitute(fnamemodify(a:prefix, ':h'), '[/\\]*$', slash, ''), + \ fnamemodify(expanded, ':t')] +endfunction + +function! s:file_source(prefix) + let [dir, head, tail] = s:file_split_prefix(a:prefix) + return printf( + \ "cd %s && ".s:file_cmd." | sed %s", + \ fzf#shellescape(dir), fzf#shellescape('s:^:'.(empty(a:prefix) || a:prefix == tail ? '' : head).':')) +endfunction + +function! s:file_options(prefix) + let [_, head, tail] = s:file_split_prefix(a:prefix) + return ['--prompt', head, '--query', tail] +endfunction + +function! s:fname_prefix(str) + let isf = &isfname + let white = [] + let black = [] + if isf =~ ',,,' + call add(white, ',') + let isf = substitute(isf, ',,,', ',', 'g') + endif + if isf =~ ',^,,' + call add(black, ',') + let isf = substitute(isf, ',^,,', ',', 'g') + endif + + for token in split(isf, ',') + let target = white + if token[0] == '^' + let target = black + let token = token[1:] + endif + + let ends = matchlist(token, '\(.\+\)-\(.\+\)') + if empty(ends) + call add(target, token) + else + let ends = map(ends[1:2], "len(v:val) == 1 ? char2nr(v:val) : str2nr(v:val)") + for i in range(ends[0], ends[1]) + call add(target, nr2char(i)) + endfor + endif + endfor + + let prefix = a:str + for offset in range(1, len(a:str)) + let char = a:str[len(a:str) - offset] + if (char =~ '\w' || index(white, char) >= 0) && index(black, char) < 0 + continue + endif + let prefix = strpart(a:str, len(a:str) - offset + 1) + break + endfor + + return prefix +endfunction + +function! fzf#vim#complete#path(command, ...) + let s:file_cmd = a:command + return fzf#vim#complete(s:extend({ + \ 'prefix': s:function('s:fname_prefix'), + \ 'source': s:function('s:file_source'), + \ 'options': s:function('s:file_options')}, get(a:000, 0, fzf#wrap()))) +endfunction + +" ---------------------------------------------------------------------------- +" (fzf-complete-line) +" (fzf-complete-buffer-line) +" ---------------------------------------------------------------------------- +function! s:reduce_line(lines) + return join(split(a:lines[0], '\t\zs')[3:], '') +endfunction + + +function! fzf#vim#complete#line(...) + let [display_bufnames, lines] = fzf#vim#_lines(0) + let nth = display_bufnames ? 4 : 3 + return fzf#vim#complete(s:extend({ + \ 'prefix': '^.*$', + \ 'source': lines, + \ 'options': '--tiebreak=index --ansi --nth '.nth.'.. --tabstop=1', + \ 'reducer': s:function('s:reduce_line')}, get(a:000, 0, fzf#wrap()))) +endfunction + +function! fzf#vim#complete#buffer_line(...) + return fzf#vim#complete(s:extend({ + \ 'prefix': '^.*$', + \ 'source': fzf#vim#_uniq(getline(1, '$'))}, get(a:000, 0, fzf#wrap()))) +endfunction + +let &cpo = s:cpo_save +unlet s:cpo_save + diff --git a/_vim/.vim/plugged/fzf.vim/doc/fzf-vim.txt b/_vim/.vim/plugged/fzf.vim/doc/fzf-vim.txt new file mode 100644 index 0000000..c5aa390 --- /dev/null +++ b/_vim/.vim/plugged/fzf.vim/doc/fzf-vim.txt @@ -0,0 +1,459 @@ +fzf-vim.txt fzf-vim Last change: March 17 2020 +FZF-VIM - TABLE OF CONTENTS *fzf-vim* *fzf-vim-toc* +============================================================================== + + fzf :heart: vim + Rationale + Why you should use fzf on Vim + Installation + Using vim-plug + Commands + Customization + Global options + Preview window + Command-local options + Advanced customization + Vim functions + Example: Customizing Files command + Example: git grep wrapper + Example: Rg command with preview window + Example: Advanced ripgrep integration + Mappings + Usage + Completion helper + Reducer example + Status line of terminal buffer + Hide statusline + Custom statusline + License + +FZF :HEART: VIM *fzf-vim-fzfheart-vim* +============================================================================== + +Things you can do with {fzf}{1} and Vim. + + {1} https://github.com/junegunn/fzf + + +RATIONALE *fzf-vim-rationale* +============================================================================== + +{fzf}{1} in itself is not a Vim plugin, and the official repository only +provides the {basic wrapper function}{2} for Vim and it's up to the users to +write their own Vim commands with it. However, I've learned that many users of +fzf are not familiar with Vimscript and are looking for the "default" +implementation of the features they can find in the alternative Vim plugins. + +This repository is a bundle of fzf-based commands and mappings extracted from +my {.vimrc}{3} to address such needs. They are not designed to be flexible or +configurable, and there's no guarantee of backward-compatibility. + + {1} https://github.com/junegunn/fzf + {2} https://github.com/junegunn/fzf/blob/master/README-VIM.md#fzfrun + {3} https://github.com/junegunn/dotfiles/blob/master/vimrc + + +WHY YOU SHOULD USE FZF ON VIM *fzf-vim-why-you-should-use-fzf-on-vim* +============================================================================== + +Because you can and you love fzf. + +fzf runs asynchronously and can be orders of magnitude faster than similar Vim +plugins. However, the benefit may not be noticeable if the size of the input +is small, which is the case for many of the commands provided here. +Nevertheless I wrote them anyway since it's really easy to implement custom +selector with fzf. + + +INSTALLATION *fzf-vim-installation* +============================================================================== + +fzf.vim depends on the basic Vim plugin of {the main fzf repository}{1}, which +means you need to set up both "fzf" and "fzf.vim" on Vim. To learn more about +fzf/Vim integration, see {README-VIM}{4}. + + {1} https://github.com/junegunn/fzf + {4} https://github.com/junegunn/fzf/blob/master/README-VIM.md + + +< Using vim-plug >____________________________________________________________~ + *fzf-vim-using-vim-plug* +> + Plug 'junegunn/fzf', { 'do': { -> fzf#install() } } + Plug 'junegunn/fzf.vim' +< +`fzf#install()` makes sure that you have the latest binary, but it's optional, +so you can omit it if you use a plugin manager that doesn't support hooks. + + +COMMANDS *fzf-vim-commands* +============================================================================== + + *:Files* *:GFiles* *:Buffers* *:Colors* *:Ag* *:Rg* *:Lines* *:BLines* *:Tags* *:BTags* *:Marks* + *:Windows* *:Locate* *:History* *:Snippets* *:Commits* *:BCommits* *:Commands* *:Maps* + *:Helptags* *:Filetypes* + + ------------------+----------------------------------------------------------------------- + Command | List ~ + ------------------+----------------------------------------------------------------------- + `:Files [PATH]` | Files (runs `$FZF_DEFAULT_COMMAND` if defined) + `:GFiles [OPTS]` | Git files ( `git ls-files` ) + `:GFiles?` | Git files ( `git status` ) + `:Buffers` | Open buffers + `:Colors` | Color schemes + `:Ag [PATTERN]` | {ag}{5} search result ( `ALT-A` to select all, `ALT-D` to deselect all) + `:Rg [PATTERN]` | {rg}{6} search result ( `ALT-A` to select all, `ALT-D` to deselect all) + `:Lines [QUERY]` | Lines in loaded buffers + `:BLines [QUERY]` | Lines in the current buffer + `:Tags [QUERY]` | Tags in the project ( `ctags -R` ) + `:BTags [QUERY]` | Tags in the current buffer + `:Marks` | Marks + `:Windows` | Windows + `:Locate PATTERN` | `locate` command output + `:History` | `v:oldfiles` and open buffers + `:History:` | Command history + `:History/` | Search history + `:Snippets` | Snippets ({UltiSnips}{7}) + `:Commits` | Git commits (requires {fugitive.vim}{8}) + `:BCommits` | Git commits for the current buffer + `:Commands` | Commands + `:Maps` | Normal mode mappings + `:Helptags` | Help tags [1] + `:Filetypes` | File types + ------------------+----------------------------------------------------------------------- + + *g:fzf_command_prefix* + + - Most commands support CTRL-T / CTRL-X / CTRL-V key bindings to open in a new + tab, a new split, or in a new vertical split + - Bang-versions of the commands (e.g. `Ag!`) will open fzf in fullscreen + - You can set `g:fzf_command_prefix` to give the same prefix to the commands + - e.g. `let g:fzf_command_prefix = 'Fzf'` and you have `FzfFiles`, etc. + +(1: `Helptags` will shadow the command of the same name from {pathogen}{9}. +But its functionality is still available via `call pathogen#helptags()`.) + + {5} https://github.com/ggreer/the_silver_searcher + {6} https://github.com/BurntSushi/ripgrep + {7} https://github.com/SirVer/ultisnips + {8} https://github.com/tpope/vim-fugitive + {9} https://github.com/tpope/vim-pathogen + + +CUSTOMIZATION *fzf-vim-customization* +============================================================================== + + +< Global options >____________________________________________________________~ + *fzf-vim-global-options* + +Every command in fzf.vim internally calls `fzf#wrap` function of the main +repository which supports a set of global option variables. So please read +through {README-VIM}{4} to learn more about them. + + {4} https://github.com/junegunn/fzf/blob/master/README-VIM.md + + +Preview window~ + *fzf-vim-preview-window* + + *g:fzf_preview_window* + +If the width of the screen is wider than 120 columns, some commands will show +the preview window on the right. You can customize the behavior with +`g:fzf_preview_window`. Here are some examples: +> + " Empty value to disable preview window altogether + let g:fzf_preview_window = '' + + " Always enable preview window on the right with 60% width + let g:fzf_preview_window = 'right:60%' +< + +< Command-local options >_____________________________________________________~ + *fzf-vim-command-local-options* + +A few commands in fzf.vim can be customized with global option variables shown +below. + + *g:fzf_buffers_jump* *g:fzf_commits_log_options* *g:fzf_tags_command* + *g:fzf_commands_expect* +> + " [Buffers] Jump to the existing window if possible + let g:fzf_buffers_jump = 1 + + " [[B]Commits] Customize the options used by 'git log': + let g:fzf_commits_log_options = '--graph --color=always --format="%C(auto)%h%d %s %C(black)%C(bold)%cr"' + + " [Tags] Command to generate tags file + let g:fzf_tags_command = 'ctags -R' + + " [Commands] --expect expression for directly executing the command + let g:fzf_commands_expect = 'alt-enter,ctrl-x' +< + +< Advanced customization >____________________________________________________~ + *fzf-vim-advanced-customization* + + +Vim functions~ + *fzf-vim-vim-functions* + +Each command in fzf.vim is backed by a Vim function. You can override a +command or define a variation of it by calling its corresponding function. + + ----------+--------------------------------------------------------------------------- + Command | Vim function ~ + ----------+--------------------------------------------------------------------------- + `Files` | `fzf#vim#files(dir, [spec dict], [fullscreen bool])` + `GFiles` | `fzf#vim#gitfiles(git_options, [spec dict], [fullscreen bool])` + `GFiles?` | `fzf#vim#gitfiles('?', [spec dict], [fullscreen bool])` + `Buffers` | `fzf#vim#buffers([spec dict], [fullscreen bool])` + `Colors` | `fzf#vim#colors([spec dict], [fullscreen bool])` + `Rg` | `fzf#vim#grep(command, [has_column bool], [spec dict], [fullscreen bool])` + ... | ... + ----------+--------------------------------------------------------------------------- + +(We can see that the last two optional arguments of each function are +identical. They are directly passed to `fzf#wrap` function. If you haven't +read {README-VIM}{4} already, please read it before proceeding.) + + {4} https://github.com/junegunn/fzf/blob/master/README-VIM.md + + +Example: Customizing Files command~ + *fzf-vim-example-customizing-files-command* + +This is the default definition of `Files` command: +> + command! -bang -nargs=? -complete=dir Files call fzf#vim#files(, 0) +< +Let's say you want to a variation of it called `ProjectFiles` that only +searches inside `~/projects` directory. Then you can do it like this: +> + command! -bang ProjectFiles call fzf#vim#files('~/projects', 0) +< +Or, if you want to override the command with different fzf options, just pass +a custom spec to the function. +> + command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, {'options': ['--layout=reverse', '--info=inline']}, 0) +< +Want a preview window? +> + command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, {'options': ['--layout=reverse', '--info=inline', '--preview', 'cat {}']}, 0) +< +It kind of works, but you probably want a nicer previewer program than `cat`. +fzf.vim ships {a versatile preview script}{10} you can readily use. It +internally executes {bat}{11} for syntax highlighting, so make sure to install +it. +> + command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, {'options': ['--layout=reverse', '--info=inline', '--preview', '~/.vim/plugged/fzf.vim/bin/preview.sh {}']}, 0) +< +However, it's not ideal to hard-code the path to the script which can be +different in different circumstances. So in order to make it easier to set up +the previewer, fzf.vim provides `fzf#vim#with_preview` helper function. +Similarly to `fzf#wrap`, it takes a spec dictionary and returns a copy of it +with additional preview options. +> + command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, fzf#vim#with_preview({'options': ['--layout=reverse', '--info=inline']}), 0) +< +You can just omit the spec argument if you only want the previewer. +> + command! -bang -nargs=? -complete=dir Files + \ call fzf#vim#files(, fzf#vim#with_preview(), 0) +< + {10} bin/preview.sh + {11} https://github.com/sharkdp/bat + + +Example: git grep wrapper~ + *fzf-vim-example-git-grep-wrapper* + +The following example implements `GGrep` command that works similarly to +predefined `Ag` or `Rg` using `fzf#vim#grep`. + + - The second argument to `fzf#vim#grep` is 0 (false), because `git grep` does + not print column numbers. + - We set the base directory to git root by setting `dir` attribute in spec + dictionary. + - {The preview script}{10} supports `grep` format (`FILE_PATH:LINE_NO:...`), so + we can just wrap the spec with `fzf#vim#with_preview` as before to enable + previewer. +> + command! -bang -nargs=* GGrep + \ call fzf#vim#grep( + \ 'git grep --line-number '.shellescape(), 0, + \ fzf#vim#with_preview({'dir': systemlist('git rev-parse --show-toplevel')[0]}), 0) +< + {10} bin/preview.sh + + +Example: Rg command with preview window~ + *fzf-vim-example-rg-command-with-preview-window* + +You can see the definition of `Rg` command with `:command Rg`. With the +information, you can redefine it with the preview window enabled. In this +case, we're only interested in setting up the preview window, so we will omit +the spec argument to `fzf#vim#preview`. +> + command! -bang -nargs=* Rg + \ call fzf#vim#grep( + \ 'rg --column --line-number --no-heading --color=always --smart-case '.shellescape(), 1, + \ fzf#vim#with_preview(), 0) +< + +Example: Advanced ripgrep integration~ + *fzf-vim-example-advanced-ripgrep-integration* + +In the default implementation of `Rg`, ripgrep process starts only once with +the initial query (e.g. `:Rg foo`) and fzf filters the output of the process. + +This is okay in most cases because fzf is quite performant even with millions +of lines, but we can make fzf completely delegate its search responsibliity to +ripgrep process by making it restart ripgrep whenever the query string is +updated. In this scenario, fzf becomes a simple selector interface rather than +a "fuzzy finder". + + - We will name the new command all-uppercase `RG` so we can still access the + default version. + - `--bind 'change:reload:rg ... {q}'` will make fzf restart ripgrep process + whenever the query string, denoted by `{q}`, is changed. + - With `--phony` option, fzf will no longer perform search. The query string you + type on fzf prompt is only used for restarting ripgrep process. + - Also note that we enabled previewer with `fzf#vim#with_preview`. +> + function! RipgrepFzf(query, fullscreen) + let command_fmt = 'rg --column --line-number --no-heading --color=always --smart-case %s || true' + let initial_command = printf(command_fmt, shellescape(a:query)) + let reload_command = printf(command_fmt, '{q}') + let spec = {'options': ['--phony', '--query', a:query, '--bind', 'change:reload:'.reload_command]} + call fzf#vim#grep(initial_command, 1, fzf#vim#with_preview(spec), a:fullscreen) + endfunction + + command! -nargs=* -bang RG call RipgrepFzf(, 0) +< + +MAPPINGS *fzf-vim-mappings* +============================================================================== + + ---------------------------------+------------------------------------------ + Mapping | Description ~ + ---------------------------------+------------------------------------------ + (fzf-maps-n) | Normal mode mappings + (fzf-maps-i) | Insert mode mappings + (fzf-maps-x) | Visual mode mappings + (fzf-maps-o) | Operator-pending mappings + (fzf-complete-word) | `cat /usr/share/dict/words` + (fzf-complete-path) | Path completion using `find` (file + dir) + (fzf-complete-file) | File completion using `find` + (fzf-complete-file-ag) | File completion using `ag` + (fzf-complete-line) | Line completion (all open buffers) + (fzf-complete-buffer-line) | Line completion (current buffer only) + ---------------------------------+------------------------------------------ + + +< Usage >_____________________________________________________________________~ + *fzf-vim-usage* +> + " Mapping selecting mappings + nmap (fzf-maps-n) + xmap (fzf-maps-x) + omap (fzf-maps-o) + + " Insert mode completion + imap (fzf-complete-word) + imap (fzf-complete-path) + imap (fzf-complete-file-ag) + imap (fzf-complete-line) + + " Advanced customization using Vim function + inoremap fzf#vim#complete#word({'left': '15%'}) +< + +< Completion helper >_________________________________________________________~ + *fzf-vim-completion-helper* + +`fzf#vim#complete` is a helper function for creating custom fuzzy completion +using fzf. If the first parameter is a command string or a Vim list, it will +be used as the source. +> + " Replace the default dictionary completion with fzf-based fuzzy completion + inoremap fzf#vim#complete('cat /usr/share/dict/words') +< +For advanced uses, you can pass an options dictionary to the function. The set +of options is pretty much identical to that for `fzf#run` only with the +following exceptions: + + - `reducer` (funcref) + - Reducer transforms the output lines of fzf into a single string value + - `prefix` (string or funcref; default: `\k*$`) + - Regular expression pattern to extract the completion prefix + - Or a function to extract completion prefix + - Both `source` and `options` can be given as funcrefs that take the completion + prefix as the argument and return the final value + - `sink` or `sink*` are ignored +> + " Global line completion (not just open buffers. ripgrep required.) + inoremap fzf#vim#complete(fzf#wrap({ + \ 'prefix': '^.*$', + \ 'source': 'rg -n ^ --color always', + \ 'options': '--ansi --delimiter : --nth 3..', + \ 'reducer': { lines -> join(split(lines[0], ':\zs')[2:], '') }})) +< + +Reducer example~ + *fzf-vim-reducer-example* +> + function! s:make_sentence(lines) + return substitute(join(a:lines), '^.', '\=toupper(submatch(0))', '').'.' + endfunction + + inoremap fzf#vim#complete({ + \ 'source': 'cat /usr/share/dict/words', + \ 'reducer': function('make_sentence'), + \ 'options': '--multi --reverse --margin 15%,0', + \ 'left': 20}) +< + +STATUS LINE OF TERMINAL BUFFER *fzf-vim-status-line-of-terminal-buffer* +============================================================================== + +When fzf starts in a terminal buffer (see {fzf/README-VIM.md}{12}), you may +want to customize the statusline of the containing buffer. + +{12} https://github.com/junegunn/fzf/blob/master/README-VIM.md#fzf-inside-terminal-buffer + + +< Hide statusline >___________________________________________________________~ + *fzf-vim-hide-statusline* +> + autocmd! FileType fzf set laststatus=0 noshowmode noruler + \| autocmd BufLeave set laststatus=2 showmode ruler +< + +< Custom statusline >_________________________________________________________~ + *fzf-vim-custom-statusline* +> + function! s:fzf_statusline() + " Override statusline as you like + highlight fzf1 ctermfg=161 ctermbg=251 + highlight fzf2 ctermfg=23 ctermbg=251 + highlight fzf3 ctermfg=237 ctermbg=251 + setlocal statusline=%#fzf1#\ >\ %#fzf2#fz%#fzf3#f + endfunction + + autocmd! User FzfStatusLine call fzf_statusline() +< + +LICENSE *fzf-vim-license* +============================================================================== + +MIT + + +============================================================================== +vim:tw=78:sw=2:ts=2:ft=help:norl:nowrap: diff --git a/_vim/.vim/plugged/fzf.vim/plugin/fzf.vim b/_vim/.vim/plugged/fzf.vim/plugin/fzf.vim new file mode 100644 index 0000000..0cb0f50 --- /dev/null +++ b/_vim/.vim/plugged/fzf.vim/plugin/fzf.vim @@ -0,0 +1,157 @@ +" Copyright (c) 2015 Junegunn Choi +" +" MIT License +" +" Permission is hereby granted, free of charge, to any person obtaining +" a copy of this software and associated documentation files (the +" "Software"), to deal in the Software without restriction, including +" without limitation the rights to use, copy, modify, merge, publish, +" distribute, sublicense, and/or sell copies of the Software, and to +" permit persons to whom the Software is furnished to do so, subject to +" the following conditions: +" +" The above copyright notice and this permission notice shall be +" included in all copies or substantial portions of the Software. +" +" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +" LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + +let s:cpo_save = &cpo +set cpo&vim +let s:is_win = has('win32') || has('win64') + +function! s:defs(commands) + let prefix = get(g:, 'fzf_command_prefix', '') + if prefix =~# '^[^A-Z]' + echoerr 'g:fzf_command_prefix must start with an uppercase letter' + return + endif + for command in a:commands + let name = ':'.prefix.matchstr(command, '\C[A-Z]\S\+') + if 2 != exists(name) + execute substitute(command, '\ze\C[A-Z]', prefix, '') + endif + endfor +endfunction + +function! s:p(bang, ...) + let preview_window = get(g:, 'fzf_preview_window', a:bang && &columns >= 80 || &columns >= 120 ? 'right': '') + if len(preview_window) + return call('fzf#vim#with_preview', add(copy(a:000), preview_window)) + endif + return {} +endfunction + +call s:defs([ +\'command! -bang -nargs=? -complete=dir Files call fzf#vim#files(, s:p(0), 0)', +\'command! -bang -nargs=? GitFiles call fzf#vim#gitfiles(, == "?" ? {} : s:p(0), 0)', +\'command! -bang -nargs=? GFiles call fzf#vim#gitfiles(, == "?" ? {} : s:p(0), 0)', +\'command! -bar -bang -nargs=? -complete=buffer Buffers call fzf#vim#buffers(, s:p(0, { "placeholder": "{1}", "options": ["-d", "\t"] }), 0)', +\'command! -bang -nargs=* Lines call fzf#vim#lines(, 0)', +\'command! -bang -nargs=* BLines call fzf#vim#buffer_lines(, 0)', +\'command! -bar -bang Colors call fzf#vim#colors(0)', +\'command! -bang -nargs=+ -complete=dir Locate call fzf#vim#locate(, s:p(0), 0)', +\'command! -bang -nargs=* Ag call fzf#vim#ag(, s:p(0), 0)', +\'command! -bang -nargs=* Rg call fzf#vim#grep("rg --column --line-number --no-heading --color=always --smart-case ".shellescape(), 1, s:p(0), 0)', +\'command! -bang -nargs=* Tags call fzf#vim#tags(, 0)', +\'command! -bang -nargs=* BTags call fzf#vim#buffer_tags(, s:p(0, { "placeholder": "{2}:{3}", "options": ["-d", "\t"] }), 0)', +\'command! -bar -bang Snippets call fzf#vim#snippets(0)', +\'command! -bar -bang Commands call fzf#vim#commands(0)', +\'command! -bar -bang Marks call fzf#vim#marks(0)', +\'command! -bar -bang Helptags call fzf#vim#helptags(0)', +\'command! -bar -bang Windows call fzf#vim#windows(0)', +\'command! -bar -bang Commits call fzf#vim#commits(0)', +\'command! -bar -bang BCommits call fzf#vim#buffer_commits(0)', +\'command! -bar -bang Maps call fzf#vim#maps("n", 0)', +\'command! -bar -bang Filetypes call fzf#vim#filetypes(0)', +\'command! -bang -nargs=* History call s:history(, s:p(0), 0)']) + +function! s:history(arg, extra, bang) + let bang = a:bang || a:arg[len(a:arg)-1] == '!' + if a:arg[0] == ':' + call fzf#vim#command_history(bang) + elseif a:arg[0] == '/' + call fzf#vim#search_history(bang) + else + call fzf#vim#history(a:extra, bang) + endif +endfunction + +function! fzf#complete(...) + return call('fzf#vim#complete', a:000) +endfunction + +if (has('nvim') || has('terminal') && has('patch-8.0.995')) && (get(g:, 'fzf_statusline', 1) || get(g:, 'fzf_nvim_statusline', 1)) + function! s:fzf_restore_colors() + if exists('#User#FzfStatusLine') + doautocmd User FzfStatusLine + else + if $TERM !~ "256color" + highlight default fzf1 ctermfg=1 ctermbg=8 guifg=#E12672 guibg=#565656 + highlight default fzf2 ctermfg=2 ctermbg=8 guifg=#BCDDBD guibg=#565656 + highlight default fzf3 ctermfg=7 ctermbg=8 guifg=#D9D9D9 guibg=#565656 + else + highlight default fzf1 ctermfg=161 ctermbg=238 guifg=#E12672 guibg=#565656 + highlight default fzf2 ctermfg=151 ctermbg=238 guifg=#BCDDBD guibg=#565656 + highlight default fzf3 ctermfg=252 ctermbg=238 guifg=#D9D9D9 guibg=#565656 + endif + setlocal statusline=%#fzf1#\ >\ %#fzf2#fz%#fzf3#f + endif + endfunction + + function! s:fzf_vim_term() + if get(w:, 'airline_active', 0) + let w:airline_disabled = 1 + autocmd BufWinLeave let w:airline_disabled = 0 + endif + autocmd WinEnter,ColorScheme call s:fzf_restore_colors() + + setlocal nospell + call s:fzf_restore_colors() + endfunction + + augroup _fzf_statusline + autocmd! + autocmd FileType fzf call s:fzf_vim_term() + augroup END +endif + +if !exists('g:fzf#vim#buffers') + let g:fzf#vim#buffers = {} +endif + +augroup fzf_buffers + autocmd! + if exists('*reltimefloat') + autocmd BufWinEnter,WinEnter * let g:fzf#vim#buffers[bufnr('')] = reltimefloat(reltime()) + else + autocmd BufWinEnter,WinEnter * let g:fzf#vim#buffers[bufnr('')] = localtime() + endif + autocmd BufDelete * silent! call remove(g:fzf#vim#buffers, expand('')) +augroup END + +inoremap (fzf-complete-word) fzf#vim#complete#word() +if s:is_win + inoremap (fzf-complete-path) fzf#vim#complete#path('dir /s/b') + inoremap (fzf-complete-file) fzf#vim#complete#path('dir /s/b/a:-d') +else + inoremap (fzf-complete-path) fzf#vim#complete#path("find . -path '*/\.*' -prune -o -print \| sed '1d;s:^..::'") + inoremap (fzf-complete-file) fzf#vim#complete#path("find . -path '*/\.*' -prune -o -type f -print -o -type l -print \| sed 's:^..::'") +endif +inoremap (fzf-complete-file-ag) fzf#vim#complete#path('ag -l -g ""') +inoremap (fzf-complete-line) fzf#vim#complete#line() +inoremap (fzf-complete-buffer-line) fzf#vim#complete#buffer_line() + +nnoremap (fzf-maps-n) :call fzf#vim#maps('n', 0) +inoremap (fzf-maps-i) :call fzf#vim#maps('i', 0) +xnoremap (fzf-maps-x) :call fzf#vim#maps('x', 0) +onoremap (fzf-maps-o) :call fzf#vim#maps('o', 0) + +let &cpo = s:cpo_save +unlet s:cpo_save + diff --git a/_vim/.vim/plugged/gdb-dashboard/.gdbinit b/_vim/.vim/plugged/gdb-dashboard/.gdbinit new file mode 100644 index 0000000..4a838fa --- /dev/null +++ b/_vim/.vim/plugged/gdb-dashboard/.gdbinit @@ -0,0 +1,2262 @@ +python + +# GDB dashboard - Modular visual interface for GDB in Python. +# +# https://github.com/cyrus-and/gdb-dashboard + +# License ---------------------------------------------------------------------- + +# Copyright (c) 2015-2020 Andrea Cardaci +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +# Imports ---------------------------------------------------------------------- + +import ast +import math +import os +import re +import struct +import traceback + +# Common attributes ------------------------------------------------------------ + +class R(): + + @staticmethod + def attributes(): + return { + # miscellaneous + 'ansi': { + 'doc': 'Control the ANSI output of the dashboard.', + 'default': True, + 'type': bool + }, + 'syntax_highlighting': { + 'doc': '''Pygments style to use for syntax highlighting. + +Using an empty string (or a name not in the list) disables this feature. The +list of all the available styles can be obtained with (from GDB itself): + + python from pygments.styles import * + python for style in get_all_styles(): print(style)''', + 'default': 'monokai' + }, + 'discard_scrollback': { + 'doc': '''Discard the scrollback buffer at each redraw. + +This makes scrolling less confusing by discarding the previously printed +dashboards but only works with certain terminals.''', + 'default': True, + 'type': bool + }, + # values formatting + 'compact_values': { + 'doc': 'Display complex objects in a single line.', + 'default': True, + 'type': bool + }, + 'max_value_length': { + 'doc': 'Maximum length of displayed values before truncation.', + 'default': 100, + 'type': int + }, + 'value_truncation_string': { + 'doc': 'String to use to mark value truncation.', + 'default': '…', + }, + 'dereference': { + 'doc': 'Annotate pointers with the pointed value.', + 'default': True, + 'type': bool + }, + # prompt + 'prompt': { + 'doc': '''GDB prompt. + +This value is used as a Python format string where `{status}` is expanded with +the substitution of either `prompt_running` or `prompt_not_running` attributes, +according to the target program status. The resulting string must be a valid GDB +prompt, see the command `python print(gdb.prompt.prompt_help())`''', + 'default': '{status}' + }, + 'prompt_running': { + 'doc': '''Define the value of `{status}` when the target program is running. + +See the `prompt` attribute. This value is used as a Python format string where +`{pid}` is expanded with the process identifier of the target program.''', + 'default': '\[\e[1;35m\]>>>\[\e[0m\]' + }, + 'prompt_not_running': { + 'doc': '''Define the value of `{status}` when the target program is running. + +See the `prompt` attribute. This value is used as a Python format string.''', + 'default': '\[\e[1;30m\]>>>\[\e[0m\]' + }, + # divider + 'divider_fill_char_primary': { + 'doc': 'Filler around the label for primary dividers', + 'default': '─' + }, + 'divider_fill_char_secondary': { + 'doc': 'Filler around the label for secondary dividers', + 'default': '─' + }, + 'divider_fill_style_primary': { + 'doc': 'Style for `divider_fill_char_primary`', + 'default': '36' + }, + 'divider_fill_style_secondary': { + 'doc': 'Style for `divider_fill_char_secondary`', + 'default': '1;30' + }, + 'divider_label_style_on_primary': { + 'doc': 'Label style for non-empty primary dividers', + 'default': '1;33' + }, + 'divider_label_style_on_secondary': { + 'doc': 'Label style for non-empty secondary dividers', + 'default': '1;37' + }, + 'divider_label_style_off_primary': { + 'doc': 'Label style for empty primary dividers', + 'default': '33' + }, + 'divider_label_style_off_secondary': { + 'doc': 'Label style for empty secondary dividers', + 'default': '1;30' + }, + 'divider_label_skip': { + 'doc': 'Gap between the aligning border and the label.', + 'default': 3, + 'type': int, + 'check': check_ge_zero + }, + 'divider_label_margin': { + 'doc': 'Number of spaces around the label.', + 'default': 1, + 'type': int, + 'check': check_ge_zero + }, + 'divider_label_align_right': { + 'doc': 'Label alignment flag.', + 'default': False, + 'type': bool + }, + # common styles + 'style_selected_1': { + 'default': '1;32' + }, + 'style_selected_2': { + 'default': '32' + }, + 'style_low': { + 'default': '1;30' + }, + 'style_high': { + 'default': '1;37' + }, + 'style_error': { + 'default': '31' + }, + 'style_critical': { + 'default': '0;41' + } + } + +# Common ----------------------------------------------------------------------- + +class Beautifier(): + + def __init__(self, hint, tab_size=4): + self.tab_spaces = ' ' * tab_size + self.active = False + if not R.ansi or not R.syntax_highlighting: + return + # attempt to set up Pygments + try: + import pygments + from pygments.lexers import GasLexer, NasmLexer + from pygments.formatters import Terminal256Formatter + if hint == 'att': + self.lexer = GasLexer() + elif hint == 'intel': + self.lexer = NasmLexer() + else: + from pygments.lexers import get_lexer_for_filename + self.lexer = get_lexer_for_filename(hint, stripnl=False) + self.formatter = Terminal256Formatter(style=R.syntax_highlighting) + self.active = True + except ImportError: + # Pygments not available + pass + except pygments.util.ClassNotFound: + # no lexer for this file or invalid style + pass + + def process(self, source): + # convert tabs anyway + source = source.replace('\t', self.tab_spaces) + if self.active: + import pygments + source = pygments.highlight(source, self.lexer, self.formatter) + return source.rstrip('\n') + +def run(command): + return gdb.execute(command, to_string=True) + +def ansi(string, style): + if R.ansi: + return '\x1b[{}m{}\x1b[0m'.format(style, string) + else: + return string + +def divider(width, label='', primary=False, active=True): + if primary: + divider_fill_style = R.divider_fill_style_primary + divider_fill_char = R.divider_fill_char_primary + divider_label_style_on = R.divider_label_style_on_primary + divider_label_style_off = R.divider_label_style_off_primary + else: + divider_fill_style = R.divider_fill_style_secondary + divider_fill_char = R.divider_fill_char_secondary + divider_label_style_on = R.divider_label_style_on_secondary + divider_label_style_off = R.divider_label_style_off_secondary + if label: + if active: + divider_label_style = divider_label_style_on + else: + divider_label_style = divider_label_style_off + skip = R.divider_label_skip + margin = R.divider_label_margin + before = ansi(divider_fill_char * skip, divider_fill_style) + middle = ansi(label, divider_label_style) + after_length = width - len(label) - skip - 2 * margin + after = ansi(divider_fill_char * after_length, divider_fill_style) + if R.divider_label_align_right: + before, after = after, before + return ''.join([before, ' ' * margin, middle, ' ' * margin, after]) + else: + return ansi(divider_fill_char * width, divider_fill_style) + +def check_gt_zero(x): + return x > 0 + +def check_ge_zero(x): + return x >= 0 + +def to_unsigned(value, size=8): + # values from GDB can be used transparently but are not suitable for + # being printed as unsigned integers, so a conversion is needed + mask = (2 ** (size * 8)) - 1 + return int(value.cast(gdb.Value(mask).type)) & mask + +def to_string(value): + # attempt to convert an inferior value to string; OK when (Python 3 || + # simple ASCII); otherwise (Python 2.7 && not ASCII) encode the string as + # utf8 + try: + value_string = str(value) + except UnicodeEncodeError: + value_string = unicode(value).encode('utf8') + except gdb.error as e: + value_string = ansi(e, R.style_error) + return value_string + +def format_address(address): + pointer_size = gdb.parse_and_eval('$pc').type.sizeof + return ('0x{{:0{}x}}').format(pointer_size * 2).format(address) + +def format_value(value, compact=None): + # format references as referenced values + # (TYPE_CODE_RVALUE_REF is not supported by old GDB) + if value.type.code in (getattr(gdb, 'TYPE_CODE_REF', None), + getattr(gdb, 'TYPE_CODE_RVALUE_REF', None)): + try: + value = value.referenced_value() + except gdb.error as e: + return ansi(e, R.style_error) + # format the value + out = to_string(value) + # dereference up to the actual value if requested + if R.dereference and value.type.code == gdb.TYPE_CODE_PTR: + while value.type.code == gdb.TYPE_CODE_PTR: + try: + value = value.dereference() + except gdb.error as e: + break + else: + formatted = to_string(value) + out += '{} {}'.format(ansi(':', R.style_low), formatted) + # compact the value + if compact is not None and compact or R.compact_values: + out = re.sub(r'$\s*', '', out, flags=re.MULTILINE) + # truncate the value + if R.max_value_length > 0 and len(out) > R.max_value_length: + out = out[0:R.max_value_length] + ansi(R.value_truncation_string, R.style_critical) + return out + +# XXX parsing the output of `info breakpoints` is apparently the best option +# right now, see: https://sourceware.org/bugzilla/show_bug.cgi?id=18385 +# XXX GDB version 7.11 (quire recent) does not have the pending field, so +# fall back to the parsed information +def fetch_breakpoints(watchpoints=False, pending=False): + # fetch breakpoints addresses + parsed_breakpoints = dict() + for line in run('info breakpoints').split('\n'): + # just keep numbered lines + if not line or not line[0].isdigit(): + continue + # extract breakpoint number, address and pending status + fields = line.split() + number = int(fields[0].split('.')[0]) + try: + if len(fields) >= 5 and fields[1] == 'breakpoint': + # multiple breakpoints have no address yet + is_pending = fields[4] == '' + is_multiple = fields[4] == '' + address = None if is_multiple or is_pending else int(fields[4], 16) + is_enabled = fields[3] == 'y' + address_info = address, is_enabled + parsed_breakpoints[number] = [address_info], is_pending + elif len(fields) >= 3 and number in parsed_breakpoints: + # add this address to the list of multiple locations + address = int(fields[2], 16) + is_enabled = fields[1] == 'y' + address_info = address, is_enabled + parsed_breakpoints[number][0].append(address_info) + else: + # watchpoints + parsed_breakpoints[number] = [], False + except ValueError: + pass + # fetch breakpoints from the API and complement with address and source + # information + breakpoints = [] + # XXX in older versions gdb.breakpoints() returns None + for gdb_breakpoint in gdb.breakpoints() or []: + addresses, is_pending = parsed_breakpoints[gdb_breakpoint.number] + is_pending = getattr(gdb_breakpoint, 'pending', is_pending) + if not pending and is_pending: + continue + if not watchpoints and gdb_breakpoint.type != gdb.BP_BREAKPOINT: + continue + # add useful fields to the object + breakpoint = dict() + breakpoint['number'] = gdb_breakpoint.number + breakpoint['type'] = gdb_breakpoint.type + breakpoint['enabled'] = gdb_breakpoint.enabled + breakpoint['location'] = gdb_breakpoint.location + breakpoint['expression'] = gdb_breakpoint.expression + breakpoint['condition'] = gdb_breakpoint.condition + breakpoint['temporary'] = gdb_breakpoint.temporary + breakpoint['hit_count'] = gdb_breakpoint.hit_count + breakpoint['pending'] = is_pending + # add addresses and source information + breakpoint['addresses'] = [] + for address, is_enabled in addresses: + if address: + sal = gdb.find_pc_line(address) + breakpoint['addresses'].append({ + 'address': address, + 'enabled': is_enabled, + 'file_name': sal.symtab.filename if address and sal.symtab else None, + 'file_line': sal.line if address else None + }) + breakpoints.append(breakpoint) + return breakpoints + +# Dashboard -------------------------------------------------------------------- + +class Dashboard(gdb.Command): + '''Redisplay the dashboard.''' + + def __init__(self): + gdb.Command.__init__(self, 'dashboard', gdb.COMMAND_USER, gdb.COMPLETE_NONE, True) + # setup subcommands + Dashboard.ConfigurationCommand(self) + Dashboard.OutputCommand(self) + Dashboard.EnabledCommand(self) + Dashboard.LayoutCommand(self) + # setup style commands + Dashboard.StyleCommand(self, 'dashboard', R, R.attributes()) + # main terminal + self.output = None + # used to inhibit redisplays during init parsing + self.inhibited = None + # enabled by default + self.enabled = None + self.enable() + + def on_continue(self, _): + # try to contain the GDB messages in a specified area unless the + # dashboard is printed to a separate file (dashboard -output ...) + if self.is_running() and not self.output: + width, _ = Dashboard.get_term_size() + gdb.write(Dashboard.clear_screen()) + gdb.write(divider(width, 'Output/messages', True)) + gdb.write('\n') + gdb.flush() + + def on_stop(self, _): + if self.is_running(): + self.render(clear_screen=False) + + def on_exit(self, _): + if not self.is_running(): + return + # collect all the outputs + outputs = set() + outputs.add(self.output) + outputs.update(module.output for module in self.modules) + outputs.remove(None) + # reset the terminal status + for output in outputs: + try: + with open(output, 'w') as fs: + fs.write(Dashboard.reset_terminal()) + except: + # skip cleanup for invalid outputs + pass + + def enable(self): + if self.enabled: + return + self.enabled = True + # setup events + gdb.events.cont.connect(self.on_continue) + gdb.events.stop.connect(self.on_stop) + gdb.events.exited.connect(self.on_exit) + + def disable(self): + if not self.enabled: + return + self.enabled = False + # setup events + gdb.events.cont.disconnect(self.on_continue) + gdb.events.stop.disconnect(self.on_stop) + gdb.events.exited.disconnect(self.on_exit) + + def load_modules(self, modules): + self.modules = [] + for module in modules: + info = Dashboard.ModuleInfo(self, module) + self.modules.append(info) + + def redisplay(self, style_changed=False): + # manually redisplay the dashboard + if self.is_running() and not self.inhibited: + self.render(True, style_changed) + + def inferior_pid(self): + return gdb.selected_inferior().pid + + def is_running(self): + return self.inferior_pid() != 0 + + def render(self, clear_screen, style_changed=False): + # fetch module content and info + all_disabled = True + display_map = dict() + for module in self.modules: + # fall back to the global value + output = module.output or self.output + # add the instance or None if disabled + if module.enabled: + all_disabled = False + instance = module.instance + else: + instance = None + display_map.setdefault(output, []).append(instance) + # process each display info + for output, instances in display_map.items(): + try: + buf = '' + # use GDB stream by default + fs = None + if output: + fs = open(output, 'w') + fd = fs.fileno() + fs.write(Dashboard.setup_terminal()) + else: + fs = gdb + fd = 1 # stdout + # get the terminal size (default main terminal if either the + # output is not a file) + try: + width, height = Dashboard.get_term_size(fd) + except: + width, height = Dashboard.get_term_size() + # clear the "screen" if requested for the main terminal, + # auxiliary terminals are always cleared + if fs is not gdb or clear_screen: + buf += Dashboard.clear_screen() + # show message if all the modules in this output are disabled + if not any(instances): + # write the error message + buf += divider(width, 'Warning', True) + buf += '\n' + if self.modules: + buf += 'No module to display (see `dashboard -layout`)' + else: + buf += 'No module loaded' + # write the terminator only in the main terminal + buf += '\n' + if fs is gdb: + buf += divider(width, primary=True) + buf += '\n' + fs.write(buf) + continue + # process all the modules for that output + for n, instance in enumerate(instances, 1): + # skip disabled modules + if not instance: + continue + try: + # ask the module to generate the content + lines = instance.lines(width, height, style_changed) + except Exception as e: + # allow to continue on exceptions in modules + stacktrace = traceback.format_exc().strip() + lines = [ansi(stacktrace, R.style_error)] + # create the divider accordingly + div = divider(width, instance.label(), True, lines) + # write the data + buf += '\n'.join([div] + lines) + # write the newline for all but last unless main terminal + if n != len(instances) or fs is gdb: + buf += '\n' + # write the final newline and the terminator only if it is the + # main terminal to allow the prompt to display correctly (unless + # there are no modules to display) + if fs is gdb and not all_disabled: + buf += divider(width, primary=True) + buf += '\n' + fs.write(buf) + except Exception as e: + cause = traceback.format_exc().strip() + Dashboard.err('Cannot write the dashboard\n{}'.format(cause)) + finally: + # don't close gdb stream + if fs and fs is not gdb: + fs.close() + +# Utility methods -------------------------------------------------------------- + + @staticmethod + def start(): + # initialize the dashboard + dashboard = Dashboard() + Dashboard.set_custom_prompt(dashboard) + # parse Python inits, load modules then parse GDB inits + dashboard.inhibited = True + Dashboard.parse_inits(True) + modules = Dashboard.get_modules() + dashboard.load_modules(modules) + Dashboard.parse_inits(False) + dashboard.inhibited = False + # GDB overrides + run('set pagination off') + # display if possible (program running and not explicitly disabled by + # some configuration file) + if dashboard.enabled: + dashboard.redisplay() + + @staticmethod + def get_term_size(fd=1): # defaults to the main terminal + try: + if sys.platform == 'win32': + import curses + # XXX always neglects the fd parameter + height, width = curses.initscr().getmaxyx() + curses.endwin() + return int(width), int(height) + else: + import termios + import fcntl + # first 2 shorts (4 byte) of struct winsize + raw = fcntl.ioctl(fd, termios.TIOCGWINSZ, ' ' * 4) + height, width = struct.unpack('hh', raw) + return int(width), int(height) + except (ImportError, OSError): + # this happens when no curses library is found on windows or when + # the terminal is not properly configured + return 80, 24 # hardcoded fallback value + + @staticmethod + def set_custom_prompt(dashboard): + def custom_prompt(_): + # render thread status indicator + if dashboard.is_running(): + pid = dashboard.inferior_pid() + status = R.prompt_running.format(pid=pid) + else: + status = R.prompt_not_running + # build prompt + prompt = R.prompt.format(status=status) + prompt = gdb.prompt.substitute_prompt(prompt) + return prompt + ' ' # force trailing space + gdb.prompt_hook = custom_prompt + + @staticmethod + def parse_inits(python): + for root, dirs, files in os.walk(os.path.expanduser('~/.gdbinit.d/')): + dirs.sort() + for init in sorted(files): + path = os.path.join(root, init) + _, ext = os.path.splitext(path) + # either load Python files or GDB + if python == (ext == '.py'): + gdb.execute('source ' + path) + + @staticmethod + def get_modules(): + # scan the scope for modules + modules = [] + for name in globals(): + obj = globals()[name] + try: + if issubclass(obj, Dashboard.Module): + modules.append(obj) + except TypeError: + continue + # sort modules alphabetically + modules.sort(key=lambda x: x.__name__) + return modules + + @staticmethod + def create_command(name, invoke, doc, is_prefix, complete=None): + Class = type('', (gdb.Command,), {'invoke': invoke, '__doc__': doc}) + Class(name, gdb.COMMAND_USER, complete or gdb.COMPLETE_NONE, is_prefix) + + @staticmethod + def err(string): + print(ansi(string, R.style_error)) + + @staticmethod + def complete(word, candidates): + return filter(lambda candidate: candidate.startswith(word), candidates) + + @staticmethod + def parse_arg(arg): + # encode unicode GDB command arguments as utf8 in Python 2.7 + if type(arg) is not str: + arg = arg.encode('utf8') + return arg + + @staticmethod + def clear_screen(): + # ANSI: move the cursor to top-left corner and clear the screen + # (optionally also clear the scrollback buffer if supported by the + # terminal) + return '\x1b[H\x1b[J' + '\x1b[3J' if R.discard_scrollback else '' + + @staticmethod + def setup_terminal(): + # ANSI: enable alternative screen buffer and hide cursor + return '\x1b[?1049h\x1b[?25l' + + @staticmethod + def reset_terminal(): + # ANSI: disable alternative screen buffer and show cursor + return '\x1b[?1049l\x1b[?25h' + +# Module descriptor ------------------------------------------------------------ + + class ModuleInfo: + + def __init__(self, dashboard, module): + self.name = module.__name__.lower() # from class to module name + self.enabled = True + self.output = None # value from the dashboard by default + self.instance = module() + self.doc = self.instance.__doc__ or '(no documentation)' + self.prefix = 'dashboard {}'.format(self.name) + # add GDB commands + self.add_main_command(dashboard) + self.add_output_command(dashboard) + self.add_style_command(dashboard) + self.add_subcommands(dashboard) + + def add_main_command(self, dashboard): + module = self + def invoke(self, arg, from_tty, info=self): + arg = Dashboard.parse_arg(arg) + if arg == '': + info.enabled ^= True + if dashboard.is_running(): + dashboard.redisplay() + else: + status = 'enabled' if info.enabled else 'disabled' + print('{} module {}'.format(module.name, status)) + else: + Dashboard.err('Wrong argument "{}"'.format(arg)) + doc_brief = 'Configure the {} module, with no arguments toggles its visibility.'.format(self.name) + doc = '{}\n\n{}'.format(doc_brief, self.doc) + Dashboard.create_command(self.prefix, invoke, doc, True) + + def add_output_command(self, dashboard): + Dashboard.OutputCommand(dashboard, self.prefix, self) + + def add_style_command(self, dashboard): + Dashboard.StyleCommand(dashboard, self.prefix, self.instance, self.instance.attributes()) + + def add_subcommands(self, dashboard): + for name, command in self.instance.commands().items(): + self.add_subcommand(dashboard, name, command) + + def add_subcommand(self, dashboard, name, command): + action = command['action'] + doc = command['doc'] + complete = command.get('complete') + def invoke(self, arg, from_tty, info=self): + arg = Dashboard.parse_arg(arg) + if info.enabled: + try: + action(arg) + except Exception as e: + Dashboard.err(e) + return + # don't catch redisplay errors + dashboard.redisplay() + else: + Dashboard.err('Module disabled') + prefix = '{} {}'.format(self.prefix, name) + Dashboard.create_command(prefix, invoke, doc, False, complete) + +# GDB commands ----------------------------------------------------------------- + + # handler for the `dashboard` command itself + def invoke(self, arg, from_tty): + arg = Dashboard.parse_arg(arg) + # show messages for checks in redisplay + if arg != '': + Dashboard.err('Wrong argument "{}"'.format(arg)) + elif not self.is_running(): + Dashboard.err('Is the target program running?') + else: + self.redisplay() + + class ConfigurationCommand(gdb.Command): + '''Dump or save the dashboard configuration. + +With an optional argument the configuration will be written to the specified +file. + +This command allows to configure the dashboard live then make the changes +permanent, for example: + + dashboard -configuration ~/.gdbinit.d/init + +At startup the `~/.gdbinit.d/` directory tree is walked and files are evaluated +in alphabetical order but giving priority to Python files. This is where user +configuration files must be placed.''' + + def __init__(self, dashboard): + gdb.Command.__init__(self, 'dashboard -configuration', + gdb.COMMAND_USER, gdb.COMPLETE_FILENAME) + self.dashboard = dashboard + + def invoke(self, arg, from_tty): + arg = Dashboard.parse_arg(arg) + if arg: + with open(os.path.expanduser(arg), 'w') as fs: + fs.write('# auto generated by GDB dashboard\n\n') + self.dump(fs) + self.dump(gdb) + + def dump(self, fs): + # dump layout + self.dump_layout(fs) + # dump styles + self.dump_style(fs, R) + for module in self.dashboard.modules: + self.dump_style(fs, module.instance, module.prefix) + # dump outputs + self.dump_output(fs, self.dashboard) + for module in self.dashboard.modules: + self.dump_output(fs, module, module.prefix) + + def dump_layout(self, fs): + layout = ['dashboard -layout'] + for module in self.dashboard.modules: + mark = '' if module.enabled else '!' + layout.append('{}{}'.format(mark, module.name)) + fs.write(' '.join(layout)) + fs.write('\n') + + def dump_style(self, fs, obj, prefix='dashboard'): + attributes = getattr(obj, 'attributes', lambda: dict())() + for name, attribute in attributes.items(): + real_name = attribute.get('name', name) + default = attribute.get('default') + value = getattr(obj, real_name) + if value != default: + fs.write('{} -style {} {!r}\n'.format(prefix, name, value)) + + def dump_output(self, fs, obj, prefix='dashboard'): + output = getattr(obj, 'output') + if output: + fs.write('{} -output {}\n'.format(prefix, output)) + + class OutputCommand(gdb.Command): + '''Set the output file/TTY for the whole dashboard or single modules. + +The dashboard/module will be written to the specified file, which will be +created if it does not exist. If the specified file identifies a terminal then +its geometry will be used, otherwise it falls back to the geometry of the main +GDB terminal. + +When invoked without argument on the dashboard, the output/messages and modules +which do not specify an output themselves will be printed on standard output +(default). + +When invoked without argument on a module, it will be printed where the +dashboard will be printed. + +An overview of all the outputs can be obtained with the `dashboard -layout` +command.''' + + def __init__(self, dashboard, prefix=None, obj=None): + if not prefix: + prefix = 'dashboard' + if not obj: + obj = dashboard + prefix = prefix + ' -output' + gdb.Command.__init__(self, prefix, gdb.COMMAND_USER, gdb.COMPLETE_FILENAME) + self.dashboard = dashboard + self.obj = obj # None means the dashboard itself + + def invoke(self, arg, from_tty): + arg = Dashboard.parse_arg(arg) + # reset the terminal status + if self.obj.output: + try: + with open(self.obj.output, 'w') as fs: + fs.write(Dashboard.reset_terminal()) + except: + # just do nothing if the file is not writable + pass + # set or open the output file + if arg == '': + self.obj.output = None + else: + self.obj.output = arg + # redisplay the dashboard in the new output + self.dashboard.redisplay() + + class EnabledCommand(gdb.Command): + '''Enable or disable the dashboard. + +The current status is printed if no argument is present.''' + + def __init__(self, dashboard): + gdb.Command.__init__(self, 'dashboard -enabled', gdb.COMMAND_USER) + self.dashboard = dashboard + + def invoke(self, arg, from_tty): + arg = Dashboard.parse_arg(arg) + if arg == '': + status = 'enabled' if self.dashboard.enabled else 'disabled' + print('The dashboard is {}'.format(status)) + elif arg == 'on': + self.dashboard.enable() + self.dashboard.redisplay() + elif arg == 'off': + self.dashboard.disable() + else: + msg = 'Wrong argument "{}"; expecting "on" or "off"' + Dashboard.err(msg.format(arg)) + + def complete(self, text, word): + return Dashboard.complete(word, ['on', 'off']) + + class LayoutCommand(gdb.Command): + '''Set or show the dashboard layout. + +Accepts a space-separated list of directive. Each directive is in the form +"[!]". Modules in the list are placed in the dashboard in the same order +as they appear and those prefixed by "!" are disabled by default. Omitted +modules are hidden and placed at the bottom in alphabetical order. + +Without arguments the current layout is shown where the first line uses the same +form expected by the input while the remaining depict the current status of +output files. + +Passing `!` as a single argument resets the dashboard original layout.''' + + def __init__(self, dashboard): + gdb.Command.__init__(self, 'dashboard -layout', gdb.COMMAND_USER) + self.dashboard = dashboard + + def invoke(self, arg, from_tty): + arg = Dashboard.parse_arg(arg) + directives = str(arg).split() + if directives: + # apply the layout + if directives == ['!']: + self.reset() + else: + if not self.layout(directives): + return # in case of errors + # redisplay or otherwise notify + if from_tty: + if self.dashboard.is_running(): + self.dashboard.redisplay() + else: + self.show() + else: + self.show() + + def reset(self): + modules = self.dashboard.modules + modules.sort(key=lambda module: module.name) + for module in modules: + module.enabled = True + + def show(self): + global_str = 'Dashboard' + default = '(default TTY)' + max_name_len = max(len(module.name) for module in self.dashboard.modules) + max_name_len = max(max_name_len, len(global_str)) + fmt = '{{}}{{:{}s}}{{}}'.format(max_name_len + 2) + print((fmt + '\n').format(' ', global_str, self.dashboard.output or default)) + for module in self.dashboard.modules: + mark = ' ' if module.enabled else '!' + style = R.style_high if module.enabled else R.style_low + line = fmt.format(mark, module.name, module.output or default) + print(ansi(line, style)) + + def layout(self, directives): + modules = self.dashboard.modules + # parse and check directives + parsed_directives = [] + selected_modules = set() + for directive in directives: + enabled = (directive[0] != '!') + name = directive[not enabled:] + if name in selected_modules: + Dashboard.err('Module "{}" already set'.format(name)) + return False + if next((False for module in modules if module.name == name), True): + Dashboard.err('Cannot find module "{}"'.format(name)) + return False + parsed_directives.append((name, enabled)) + selected_modules.add(name) + # reset visibility + for module in modules: + module.enabled = False + # move and enable the selected modules on top + last = 0 + for name, enabled in parsed_directives: + todo = enumerate(modules[last:], start=last) + index = next(index for index, module in todo if name == module.name) + modules[index].enabled = enabled + modules.insert(last, modules.pop(index)) + last += 1 + return True + + def complete(self, text, word): + all_modules = (m.name for m in self.dashboard.modules) + return Dashboard.complete(word, all_modules) + + class StyleCommand(gdb.Command): + '''Access the stylable attributes. + +Without arguments print all the stylable attributes. + +When only the name is specified show the current value. + +With name and value set the stylable attribute. Values are parsed as Python +literals and converted to the proper type. ''' + + def __init__(self, dashboard, prefix, obj, attributes): + self.prefix = prefix + ' -style' + gdb.Command.__init__(self, self.prefix, gdb.COMMAND_USER, gdb.COMPLETE_NONE, True) + self.dashboard = dashboard + self.obj = obj + self.attributes = attributes + self.add_styles() + + def add_styles(self): + this = self + for name, attribute in self.attributes.items(): + # fetch fields + attr_name = attribute.get('name', name) + attr_type = attribute.get('type', str) + attr_check = attribute.get('check', lambda _: True) + attr_default = attribute['default'] + # set the default value (coerced to the type) + value = attr_type(attr_default) + setattr(self.obj, attr_name, value) + # create the command + def invoke(self, arg, from_tty, + name=name, + attr_name=attr_name, + attr_type=attr_type, + attr_check=attr_check): + new_value = Dashboard.parse_arg(arg) + if new_value == '': + # print the current value + value = getattr(this.obj, attr_name) + print('{} = {!r}'.format(name, value)) + else: + try: + # convert and check the new value + parsed = ast.literal_eval(new_value) + value = attr_type(parsed) + if not attr_check(value): + msg = 'Invalid value "{}" for "{}"' + raise Exception(msg.format(new_value, name)) + except Exception as e: + Dashboard.err(e) + else: + # set and redisplay + setattr(this.obj, attr_name, value) + this.dashboard.redisplay(True) + prefix = self.prefix + ' ' + name + doc = attribute.get('doc', 'This style is self-documenting') + Dashboard.create_command(prefix, invoke, doc, False) + + def invoke(self, arg, from_tty): + # an argument here means that the provided attribute is invalid + if arg: + Dashboard.err('Invalid argument "{}"'.format(arg)) + return + # print all the pairs + for name, attribute in self.attributes.items(): + attr_name = attribute.get('name', name) + value = getattr(self.obj, attr_name) + print('{} = {!r}'.format(name, value)) + +# Base module ------------------------------------------------------------------ + + # just a tag + class Module(): + '''Base class for GDB dashboard modules. + + Modules are instantiated once at initialization time and kept during the + whole the GDB session. + + The name of a module is automatically obtained by the class name. + + Optionally, a module may include a description which will appear in the + GDB help system by specifying a Python docstring for the class. By + convention the first line should contain a brief description.''' + + def label(self): + '''Return the module label which will appear in the divider.''' + pass + + def lines(self, term_width, term_height, style_changed): + '''Return a list of strings which will form the module content. + + When a module is temporarily unable to produce its content, it + should return an empty list; its divider will then use the styles + with the "off" qualifier. + + term_width and term_height are the dimension of the terminal where + this module will be displayed. If `style_changed` is `True` then + some attributes have changed since the last time so the + implementation may want to update its status.''' + pass + + def attributes(self): + '''Return the dictionary of available attributes. + + The key is the attribute name and the value is another dictionary + with items: + + - `default` is the initial value for this attribute; + + - `doc` is the optional documentation of this attribute which will + appear in the GDB help system; + + - `name` is the name of the attribute of the Python object (defaults + to the key value); + + - `type` is the Python type of this attribute defaulting to the + `str` type, it is used to coerce the value passed as an argument + to the proper type, or raise an exception; + + - `check` is an optional control callback which accept the coerced + value and returns `True` if the value satisfies the constraint and + `False` otherwise. + + Those attributes can be accessed from the implementation using + instance variables named `name`.''' + return {} + + def commands(self): + '''Return the dictionary of available commands. + + The key is the attribute name and the value is another dictionary + with items: + + - `action` is the callback to be executed which accepts the raw + input string from the GDB prompt, exceptions in these functions + will be shown automatically to the user; + + - `doc` is the documentation of this command which will appear in + the GDB help system; + + - `completion` is the optional completion policy, one of the + `gdb.COMPLETE_*` constants defined in the GDB reference manual + (https://sourceware.org/gdb/onlinedocs/gdb/Commands-In-Python.html).''' + return {} + +# Default modules -------------------------------------------------------------- + +class Source(Dashboard.Module): + '''Show the program source code, if available.''' + + def __init__(self): + self.file_name = None + self.source_lines = [] + self.ts = None + self.highlighted = False + self.offset = 0 + + def label(self): + return 'Source' + + def lines(self, term_width, term_height, style_changed): + # skip if the current thread is not stopped + if not gdb.selected_thread().is_stopped(): + return [] + # try to fetch the current line (skip if no line information) + sal = gdb.selected_frame().find_sal() + current_line = sal.line + if current_line == 0: + return [] + # try to lookup the source file + candidates = [ + sal.symtab.fullname(), + sal.symtab.filename, + # XXX GDB also uses absolute filename but it is harder to implement + # properly and IMHO useless + os.path.basename(sal.symtab.filename)] + for candidate in candidates: + file_name = candidate + ts = None + try: + ts = os.path.getmtime(file_name) + break + except: + # try another or delay error check to open() + continue + # style changed, different file name or file modified in the meanwhile + if style_changed or file_name != self.file_name or ts and ts > self.ts: + try: + # reload the source file if changed + with open(file_name) as source_file: + highlighter = Beautifier(file_name, self.tab_size) + self.highlighted = highlighter.active + source = highlighter.process(source_file.read()) + self.source_lines = source.split('\n') + # store file name and timestamp only if success to have + # persistent errors + self.file_name = file_name + self.ts = ts + except IOError as e: + msg = 'Cannot display "{}"'.format(file_name) + return [ansi(msg, R.style_error)] + # compute the line range + height = self.height or (term_height - 1) + start = current_line - 1 - int(height / 2) + self.offset + end = start + height + # extra at start + extra_start = 0 + if start < 0: + extra_start = min(-start, height) + start = 0 + # extra at end + extra_end = 0 + if end > len(self.source_lines): + extra_end = min(end - len(self.source_lines), height) + end = len(self.source_lines) + else: + end = max(end, 0) + # return the source code listing + breakpoints = fetch_breakpoints() + out = [] + number_format = '{{:>{}}}'.format(len(str(end))) + for number, line in enumerate(self.source_lines[start:end], start + 1): + # properly handle UTF-8 source files + line = to_string(line) + if int(number) == current_line: + # the current line has a different style without ANSI + if R.ansi: + if self.highlighted: + line_format = '{}' + ansi(number_format, R.style_selected_1) + ' {}' + else: + line_format = '{}' + ansi(number_format + ' {}', R.style_selected_1) + else: + # just show a plain text indicator + line_format = '{}' + number_format + '> {}' + else: + line_format = '{}' + ansi(number_format, R.style_low) + ' {}' + # check for breakpoint presence + enabled = None + for breakpoint in breakpoints: + addresses = breakpoint['addresses'] + is_root_enabled = addresses[0]['enabled'] + for address in addresses: + # note, despite the lookup path always use the relative + # (sal.symtab.filename) file name to match source files with + # breakpoints + if address['file_line'] == number and address['file_name'] == sal.symtab.filename: + enabled = enabled or (address['enabled'] and is_root_enabled) + if enabled is None: + breakpoint = ' ' + else: + breakpoint = ansi('!', R.style_critical) if enabled else ansi('-', R.style_low) + out.append(line_format.format(breakpoint, number, line.rstrip('\n'))) + # return the output along with scroll indicators + if len(out) <= height: + extra = [ansi('~', R.style_low)] + return extra_start * extra + out + extra_end * extra + else: + return out + + def commands(self): + return { + 'scroll': { + 'action': self.scroll, + 'doc': 'Scroll by relative steps or reset if invoked without argument.' + } + } + + def attributes(self): + return { + 'height': { + 'doc': '''Height of the module. + +A value of 0 uses the whole height.''', + 'default': 10, + 'type': int, + 'check': check_ge_zero + }, + 'tab-size': { + 'doc': 'Number of spaces used to display the tab character.', + 'default': 4, + 'name': 'tab_size', + 'type': int, + 'check': check_gt_zero + } + } + + def scroll(self, arg): + if arg: + self.offset += int(arg) + else: + self.offset = 0 + +class Assembly(Dashboard.Module): + '''Show the disassembled code surrounding the program counter. + +The instructions constituting the current statement are marked, if available.''' + + def __init__(self): + self.offset = 0 + self.cache_key = None + self.cache_asm = None + + def label(self): + return 'Assembly' + + def lines(self, term_width, term_height, style_changed): + # skip if the current thread is not stopped + if not gdb.selected_thread().is_stopped(): + return [] + # flush the cache if the style is changed + if style_changed: + self.cache_key = None + # prepare the highlighter + try: + flavor = gdb.parameter('disassembly-flavor') + except: + flavor = 'att' # not always defined (see #36) + highlighter = Beautifier(flavor) + # fetch the assembly code + line_info = None + frame = gdb.selected_frame() # PC is here + height = self.height or (term_height - 1) + try: + # disassemble the current block (if function information is + # available then try to obtain the boundaries by looking at the + # superblocks) + block = frame.block() + if frame.function(): + while block and (not block.function or block.function.name != frame.function().name): + block = block.superblock + block = block or frame.block() + asm_start = block.start + asm_end = block.end - 1 + asm = self.fetch_asm(asm_start, asm_end, False, highlighter) + # find the location of the PC + pc_index = next(index for index, instr in enumerate(asm) + if instr['addr'] == frame.pc()) + # compute the instruction range + start = pc_index - int(height / 2) + self.offset + end = start + height + # extra at start + extra_start = 0 + if start < 0: + extra_start = min(-start, height) + start = 0 + # extra at end + extra_end = 0 + if end > len(asm): + extra_end = min(end - len(asm), height) + end = len(asm) + else: + end = max(end, 0) + # fetch actual interval + asm = asm[start:end] + # if there are line information then use it, it may be that + # line_info is not None but line_info.last is None + line_info = gdb.find_pc_line(frame.pc()) + line_info = line_info if line_info.last else None + except (gdb.error, RuntimeError, StopIteration): + # if it is not possible (stripped binary or the PC is not present in + # the output of `disassemble` as per issue #31) start from PC + try: + extra_start = 0 + extra_end = 0 + # allow to scroll down nevertheless + clamped_offset = min(self.offset, 0) + asm = self.fetch_asm(frame.pc(), height - clamped_offset, True, highlighter) + asm = asm[-clamped_offset:] + except gdb.error as e: + msg = '{}'.format(e) + return [ansi(msg, R.style_error)] + # fetch function start if available (e.g., not with @plt) + func_start = None + if self.show_function and frame.function(): + func_start = to_unsigned(frame.function().value()) + # compute the maximum offset size + if asm and func_start: + max_offset = max(len(str(abs(asm[0]['addr'] - func_start))), + len(str(abs(asm[-1]['addr'] - func_start)))) + # return the machine code + breakpoints = fetch_breakpoints() + max_length = max(instr['length'] for instr in asm) if asm else 0 + inferior = gdb.selected_inferior() + out = [] + for index, instr in enumerate(asm): + addr = instr['addr'] + length = instr['length'] + text = instr['asm'] + addr_str = format_address(addr) + if self.show_opcodes: + # fetch and format opcode + region = inferior.read_memory(addr, length) + opcodes = (' '.join('{:02x}'.format(ord(byte)) for byte in region)) + opcodes += (max_length - len(region)) * 3 * ' ' + ' ' + else: + opcodes = '' + # compute the offset if available + if self.show_function: + if func_start: + offset = '{:+d}'.format(addr - func_start) + offset = offset.ljust(max_offset + 1) # sign + func_info = '{}{}'.format(frame.function(), offset) + else: + func_info = '?' + else: + func_info = '' + format_string = '{}{}{}{}{}{}' + indicator = ' ' + text = ' ' + text + if addr == frame.pc(): + if not R.ansi: + indicator = '> ' + addr_str = ansi(addr_str, R.style_selected_1) + indicator = ansi(indicator, R.style_selected_1) + opcodes = ansi(opcodes, R.style_selected_1) + func_info = ansi(func_info, R.style_selected_1) + if not highlighter.active: + text = ansi(text, R.style_selected_1) + elif line_info and line_info.pc <= addr < line_info.last: + if not R.ansi: + indicator = ': ' + addr_str = ansi(addr_str, R.style_selected_2) + indicator = ansi(indicator, R.style_selected_2) + opcodes = ansi(opcodes, R.style_selected_2) + func_info = ansi(func_info, R.style_selected_2) + if not highlighter.active: + text = ansi(text, R.style_selected_2) + else: + addr_str = ansi(addr_str, R.style_low) + func_info = ansi(func_info, R.style_low) + # check for breakpoint presence + enabled = None + for breakpoint in breakpoints: + addresses = breakpoint['addresses'] + is_root_enabled = addresses[0]['enabled'] + for address in addresses: + if address['address'] == addr: + enabled = enabled or (address['enabled'] and is_root_enabled) + if enabled is None: + breakpoint = ' ' + else: + breakpoint = ansi('!', R.style_critical) if enabled else ansi('-', R.style_low) + out.append(format_string.format(breakpoint, addr_str, indicator, opcodes, func_info, text)) + # return the output along with scroll indicators + if len(out) <= height: + extra = [ansi('~', R.style_low)] + return extra_start * extra + out + extra_end * extra + else: + return out + + def commands(self): + return { + 'scroll': { + 'action': self.scroll, + 'doc': 'Scroll by relative steps or reset if invoked without argument.' + } + } + + def attributes(self): + return { + 'height': { + 'doc': '''Height of the module. + +A value of 0 uses the whole height.''', + 'default': 10, + 'type': int, + 'check': check_ge_zero + }, + 'opcodes': { + 'doc': 'Opcodes visibility flag.', + 'default': False, + 'name': 'show_opcodes', + 'type': bool + }, + 'function': { + 'doc': 'Function information visibility flag.', + 'default': True, + 'name': 'show_function', + 'type': bool + } + } + + def scroll(self, arg): + if arg: + self.offset += int(arg) + else: + self.offset = 0 + + def fetch_asm(self, start, end_or_count, relative, highlighter): + # fetch asm from cache or disassemble + if self.cache_key == (start, end_or_count): + asm = self.cache_asm + else: + kwargs = { + 'start_pc': start, + 'count' if relative else 'end_pc': end_or_count + } + asm = gdb.selected_frame().architecture().disassemble(**kwargs) + self.cache_key = (start, end_or_count) + self.cache_asm = asm + # syntax highlight the cached entry + for instr in asm: + instr['asm'] = highlighter.process(instr['asm']) + return asm + +class Variables(Dashboard.Module): + '''Show arguments and locals of the selected frame.''' + + def label(self): + return 'Variables' + + def lines(self, term_width, term_height, style_changed): + return Variables.format_frame( + gdb.selected_frame(), self.show_arguments, self.show_locals, self.compact, self.align, self.sort) + + def attributes(self): + return { + 'arguments': { + 'doc': 'Frame arguments visibility flag.', + 'default': True, + 'name': 'show_arguments', + 'type': bool + }, + 'locals': { + 'doc': 'Frame locals visibility flag.', + 'default': True, + 'name': 'show_locals', + 'type': bool + }, + 'compact': { + 'doc': 'Single-line display flag.', + 'default': True, + 'type': bool + }, + 'align': { + 'doc': 'Align variables in column flag (only if not compact).', + 'default': False, + 'type': bool + }, + 'sort': { + 'doc': 'Sort variables by name.', + 'default': False, + 'type': bool + } + } + + @staticmethod + def format_frame(frame, show_arguments, show_locals, compact, align, sort): + out = [] + # fetch frame arguments and locals + decorator = gdb.FrameDecorator.FrameDecorator(frame) + separator = ansi(', ', R.style_low) + if show_arguments: + def prefix(line): + return Stack.format_line('arg', line) + frame_args = decorator.frame_args() + args_lines = Variables.fetch(frame, frame_args, compact, align, sort) + if args_lines: + if compact: + args_line = separator.join(args_lines) + single_line = prefix(args_line) + out.append(single_line) + else: + out.extend(map(prefix, args_lines)) + if show_locals: + def prefix(line): + return Stack.format_line('loc', line) + frame_locals = decorator.frame_locals() + locals_lines = Variables.fetch(frame, frame_locals, compact, align, sort) + if locals_lines: + if compact: + locals_line = separator.join(locals_lines) + single_line = prefix(locals_line) + out.append(single_line) + else: + out.extend(map(prefix, locals_lines)) + return out + + @staticmethod + def fetch(frame, data, compact, align, sort): + lines = [] + name_width = 0 + if align and not compact: + name_width = max(len(str(elem.sym)) for elem in data) if data else 0 + for elem in data or []: + name = ansi(elem.sym, R.style_high) + ' ' * (name_width - len(str(elem.sym))) + equal = ansi('=', R.style_low) + value = format_value(elem.sym.value(frame), compact) + lines.append('{} {} {}'.format(name, equal, value)) + if sort: + lines.sort() + return lines + +class Stack(Dashboard.Module): + '''Show the current stack trace including the function name and the file location, if available. + +Optionally list the frame arguments and locals too.''' + + def label(self): + return 'Stack' + + def lines(self, term_width, term_height, style_changed): + # skip if the current thread is not stopped + if not gdb.selected_thread().is_stopped(): + return [] + # find the selected frame (i.e., the first to display) + selected_index = 0 + frame = gdb.newest_frame() + while frame: + if frame == gdb.selected_frame(): + break + frame = frame.older() + selected_index += 1 + # format up to "limit" frames + frames = [] + number = selected_index + more = False + while frame: + # the first is the selected one + selected = (len(frames) == 0) + # fetch frame info + style = R.style_selected_1 if selected else R.style_selected_2 + frame_id = ansi(str(number), style) + info = Stack.get_pc_line(frame, style) + frame_lines = [] + frame_lines.append('[{}] {}'.format(frame_id, info)) + # add frame arguments and locals + variables = Variables.format_frame( + frame, self.show_arguments, self.show_locals, self.compact, self.align, self.sort) + frame_lines.extend(variables) + # add frame + frames.append(frame_lines) + # next + frame = frame.older() + number += 1 + # check finished according to the limit + if self.limit and len(frames) == self.limit: + # more frames to show but limited + if frame: + more = True + break + # format the output + lines = [] + for frame_lines in frames: + lines.extend(frame_lines) + # add the placeholder + if more: + lines.append('[{}]'.format(ansi('+', R.style_selected_2))) + return lines + + def attributes(self): + return { + 'limit': { + 'doc': 'Maximum number of displayed frames (0 means no limit).', + 'default': 10, + 'type': int, + 'check': check_ge_zero + }, + 'arguments': { + 'doc': 'Frame arguments visibility flag.', + 'default': False, + 'name': 'show_arguments', + 'type': bool + }, + 'locals': { + 'doc': 'Frame locals visibility flag.', + 'default': False, + 'name': 'show_locals', + 'type': bool + }, + 'compact': { + 'doc': 'Single-line display flag.', + 'default': False, + 'type': bool + }, + 'align': { + 'doc': 'Align variables in column flag (only if not compact).', + 'default': False, + 'type': bool + }, + 'sort': { + 'doc': 'Sort variables by name.', + 'default': False, + 'type': bool + } + } + + @staticmethod + def format_line(prefix, line): + prefix = ansi(prefix, R.style_low) + return '{} {}'.format(prefix, line) + + @staticmethod + def get_pc_line(frame, style): + frame_pc = ansi(format_address(frame.pc()), style) + info = 'from {}'.format(frame_pc) + # if a frame function symbol is available then use it to fetch the + # current function name and address, otherwise fall back relying on the + # frame name + if frame.function(): + name = ansi(frame.function(), style) + func_start = to_unsigned(frame.function().value()) + offset = ansi(str(frame.pc() - func_start), style) + info += ' in {}+{}'.format(name, offset) + elif frame.name(): + name = ansi(frame.name(), style) + info += ' in {}'.format(name) + sal = frame.find_sal() + if sal and sal.symtab: + file_name = ansi(sal.symtab.filename, style) + file_line = ansi(str(sal.line), style) + info += ' at {}:{}'.format(file_name, file_line) + return info + +class History(Dashboard.Module): + '''List the last entries of the value history.''' + + def label(self): + return 'History' + + def lines(self, term_width, term_height, style_changed): + out = [] + # fetch last entries + for i in range(-self.limit + 1, 1): + try: + value = format_value(gdb.history(i)) + value_id = ansi('$${}', R.style_high).format(abs(i)) + equal = ansi('=', R.style_low) + line = '{} {} {}'.format(value_id, equal, value) + out.append(line) + except gdb.error: + continue + return out + + def attributes(self): + return { + 'limit': { + 'doc': 'Maximum number of values to show.', + 'default': 3, + 'type': int, + 'check': check_gt_zero + } + } + +class Memory(Dashboard.Module): + '''Allow to inspect memory regions.''' + + DEFAULT_LENGTH = 16 + + class Region(): + def __init__(self, expression, length, module): + self.expression = expression + self.length = length + self.module = module + self.original = None + self.latest = None + + def reset(self): + self.original = None + self.latest = None + + def format(self, per_line): + # fetch the memory content + try: + address = Memory.parse_as_address(self.expression) + inferior = gdb.selected_inferior() + memory = inferior.read_memory(address, self.length) + # set the original memory snapshot if needed + if not self.original: + self.original = memory + except gdb.error as e: + msg = 'Cannot access {} bytes starting at {}: {}' + msg = msg.format(self.length, self.expression, e) + return [ansi(msg, R.style_error)] + # format the memory content + out = [] + for i in range(0, len(memory), per_line): + region = memory[i:i + per_line] + pad = per_line - len(region) + address_str = format_address(address + i) + # compute changes + hexa = [] + text = [] + for j in range(len(region)): + rel = i + j + byte = memory[rel] + hexa_byte = '{:02x}'.format(ord(byte)) + text_byte = self.module.format_byte(byte) + # differences against the latest have the highest priority + if self.latest and memory[rel] != self.latest[rel]: + hexa_byte = ansi(hexa_byte, R.style_selected_1) + text_byte = ansi(text_byte, R.style_selected_1) + # cumulative changes if enabled + elif self.module.cumulative and memory[rel] != self.original[rel]: + hexa_byte = ansi(hexa_byte, R.style_selected_2) + text_byte = ansi(text_byte, R.style_selected_2) + # format the text differently for clarity + else: + text_byte = ansi(text_byte, R.style_high) + hexa.append(hexa_byte) + text.append(text_byte) + # output the formatted line + hexa_placeholder = ' {}'.format(self.module.placeholder[0] * 2) + text_placeholder = self.module.placeholder[0] + out.append('{} {}{} {}{}'.format( + ansi(address_str, R.style_low), + ' '.join(hexa), ansi(pad * hexa_placeholder, R.style_low), + ''.join(text), ansi(pad * text_placeholder, R.style_low))) + # update the latest memory snapshot + self.latest = memory + return out + + def __init__(self): + self.table = {} + + def label(self): + return 'Memory' + + def lines(self, term_width, term_height, style_changed): + out = [] + for expression, region in self.table.items(): + out.append(divider(term_width, expression)) + out.extend(region.format(self.get_per_line(term_width))) + return out + + def commands(self): + return { + 'watch': { + 'action': self.watch, + 'doc': '''Watch a memory region by expression and length. + +The length defaults to 16 bytes.''', + 'complete': gdb.COMPLETE_EXPRESSION + }, + 'unwatch': { + 'action': self.unwatch, + 'doc': 'Stop watching a memory region by expression.', + 'complete': gdb.COMPLETE_EXPRESSION + }, + 'clear': { + 'action': self.clear, + 'doc': 'Clear all the watched regions.' + } + } + + def attributes(self): + return { + 'cumulative': { + 'doc': 'Highlight changes cumulatively, watch again to reset.', + 'default': False, + 'type': bool + }, + 'full': { + 'doc': 'Take the whole horizontal space.', + 'default': False, + 'type': bool + }, + 'placeholder': { + 'doc': 'Placeholder used for missing items and unprintable characters.', + 'default': '·' + } + } + + def watch(self, arg): + if arg: + expression, _, length_str = arg.partition(' ') + length = Memory.parse_as_address(length_str) if length_str else Memory.DEFAULT_LENGTH + # keep the length when the memory is watched to reset the changes + region = self.table.get(expression) + if region and not length_str: + region.reset() + else: + self.table[expression] = Memory.Region(expression, length, self) + else: + raise Exception('Specify a memory location') + + def unwatch(self, arg): + if arg: + try: + del self.table[arg] + except KeyError: + raise Exception('Memory expression not watched') + else: + raise Exception('Specify a matched memory expression') + + def clear(self, arg): + self.table.clear() + + def format_byte(self, byte): + # `type(byte) is bytes` in Python 3 + if 0x20 < ord(byte) < 0x7f: + return chr(ord(byte)) + else: + return self.placeholder[0] + + def get_per_line(self, term_width): + if self.full: + padding = 3 # two double spaces separator (one is part of below) + elem_size = 4 # HH + 1 space + T + address_length = gdb.parse_and_eval('$pc').type.sizeof * 2 + 2 # 0x + return max(int((term_width - address_length - padding) / elem_size), 1) + else: + return Memory.DEFAULT_LENGTH + + @staticmethod + def parse_as_address(expression): + value = gdb.parse_and_eval(expression) + return to_unsigned(value) + +class Registers(Dashboard.Module): + '''Show the CPU registers and their values.''' + + def __init__(self): + self.table = {} + + def label(self): + return 'Registers' + + def lines(self, term_width, term_height, style_changed): + # skip if the current thread is not stopped + if not gdb.selected_thread().is_stopped(): + return [] + # obtain the registers to display + if style_changed: + self.table = {} + if self.register_list: + register_list = self.register_list.split() + else: + register_list = Registers.fetch_register_list() + # fetch registers status + registers = [] + for name in register_list: + # Exclude registers with a dot '.' or parse_and_eval() will fail + if '.' in name: + continue + value = gdb.parse_and_eval('${}'.format(name)) + string_value = Registers.format_value(value) + changed = self.table and (self.table.get(name, '') != string_value) + self.table[name] = string_value + registers.append((name, string_value, changed)) + # compute lengths considering an extra space between and around the + # entries (hence the +2 and term_width - 1) + max_name = max(len(name) for name, _, _ in registers) + max_value = max(len(value) for _, value, _ in registers) + max_width = max_name + max_value + 2 + columns = min(int((term_width - 1) / max_width) or 1, len(registers)) + rows = int(math.ceil(float(len(registers)) / columns)) + # build the registers matrix + if self.column_major: + matrix = list(registers[i:i + rows] for i in range(0, len(registers), rows)) + else: + matrix = list(registers[i::columns] for i in range(columns)) + # compute the lengths column wise + max_names_column = list(max(len(name) for name, _, _ in column) for column in matrix) + max_values_column = list(max(len(value) for _, value, _ in column) for column in matrix) + line_length = sum(max_names_column) + columns + sum(max_values_column) + extra = term_width - line_length + # compute padding as if there were one more column + base_padding = int(extra / (columns + 1)) + padding_column = [base_padding] * columns + # distribute the remainder among columns giving the precedence to + # internal padding + rest = extra % (columns + 1) + while rest: + padding_column[rest % columns] += 1 + rest -= 1 + # format the registers + out = [''] * rows + for i, column in enumerate(matrix): + max_name = max_names_column[i] + max_value = max_values_column[i] + for j, (name, value, changed) in enumerate(column): + name = ' ' * (max_name - len(name)) + ansi(name, R.style_low) + style = R.style_selected_1 if changed else '' + value = ansi(value, style) + ' ' * (max_value - len(value)) + padding = ' ' * padding_column[i] + item = '{}{} {}'.format(padding, name, value) + out[j] += item + return out + + def attributes(self): + return { + 'column-major': { + 'doc': 'Show registers in columns instead of rows.', + 'default': False, + 'name': 'column_major', + 'type': bool + }, + 'list': { + 'doc': '''String of space-separated register names to display. + +The empty list (default) causes to show all the available registers.''', + 'default': '', + 'name': 'register_list', + } + } + + @staticmethod + def format_value(value): + try: + if value.type.code in [gdb.TYPE_CODE_INT, gdb.TYPE_CODE_PTR]: + int_value = to_unsigned(value, value.type.sizeof) + value_format = '0x{{:0{}x}}'.format(2 * value.type.sizeof) + return value_format.format(int_value) + except (gdb.error, ValueError): + # convert to unsigned but preserve code and flags information + pass + return str(value) + + @staticmethod + def fetch_register_list(*match_groups): + names = [] + for line in run('maintenance print register-groups').split('\n'): + fields = line.split() + if len(fields) != 7: + continue + name, _, _, _, _, _, groups = fields + if not re.match('\w', name): + continue + for group in groups.split(','): + if group in (match_groups or ('general',)): + names.append(name) + break + return names + +class Threads(Dashboard.Module): + '''List the currently available threads.''' + + def label(self): + return 'Threads' + + def lines(self, term_width, term_height, style_changed): + out = [] + selected_thread = gdb.selected_thread() + # do not restore the selected frame if the thread is not stopped + restore_frame = gdb.selected_thread().is_stopped() + if restore_frame: + selected_frame = gdb.selected_frame() + # fetch the thread list + threads = [] + for inferior in gdb.inferiors(): + if self.all_inferiors or inferior == gdb.selected_inferior(): + threads += gdb.Inferior.threads(inferior) + for thread in threads: + # skip running threads if requested + if self.skip_running and thread.is_running(): + continue + is_selected = (thread.ptid == selected_thread.ptid) + style = R.style_selected_1 if is_selected else R.style_selected_2 + if self.all_inferiors: + number = '{}.{}'.format(thread.inferior.num, thread.num) + else: + number = str(thread.num) + number = ansi(number, style) + tid = ansi(str(thread.ptid[1] or thread.ptid[2]), style) + info = '[{}] id {}'.format(number, tid) + if thread.name: + info += ' name {}'.format(ansi(thread.name, style)) + # switch thread to fetch info (unless is running in non-stop mode) + try: + thread.switch() + frame = gdb.newest_frame() + info += ' ' + Stack.get_pc_line(frame, style) + except gdb.error: + info += ' (running)' + out.append(info) + # restore thread and frame + selected_thread.switch() + if restore_frame: + selected_frame.select() + return out + + def attributes(self): + return { + 'skip-running': { + 'doc': 'Skip running threads.', + 'default': False, + 'name': 'skip_running', + 'type': bool + }, + 'all-inferiors': { + 'doc': 'Show threads from all inferiors.', + 'default': False, + 'name': 'all_inferiors', + 'type': bool + }, + } + +class Expressions(Dashboard.Module): + '''Watch user expressions.''' + + def __init__(self): + self.table = set() + + def label(self): + return 'Expressions' + + def lines(self, term_width, term_height, style_changed): + out = [] + label_width = 0 + if self.align: + label_width = max(len(expression) for expression in self.table) if self.table else 0 + default_radix = Expressions.get_default_radix() + for expression in self.table: + label = expression + match = re.match('^/(\d+) +(.+)$', expression) + try: + if match: + radix, expression = match.groups() + run('set output-radix {}'.format(radix)) + value = format_value(gdb.parse_and_eval(expression)) + except gdb.error as e: + value = ansi(e, R.style_error) + finally: + if match: + run('set output-radix {}'.format(default_radix)) + label = ansi(expression, R.style_high) + ' ' * (label_width - len(expression)) + equal = ansi('=', R.style_low) + out.append('{} {} {}'.format(label, equal, value)) + return out + + def commands(self): + return { + 'watch': { + 'action': self.watch, + 'doc': 'Watch an expression using the format `[/] `.', + 'complete': gdb.COMPLETE_EXPRESSION + }, + 'unwatch': { + 'action': self.unwatch, + 'doc': 'Stop watching an expression.', + 'complete': gdb.COMPLETE_EXPRESSION + }, + 'clear': { + 'action': self.clear, + 'doc': 'Clear all the watched expressions.' + } + } + + def attributes(self): + return { + 'align': { + 'doc': 'Align variables in column flag.', + 'default': False, + 'type': bool + } + } + + def watch(self, arg): + if arg: + self.table.add(arg) + else: + raise Exception('Specify an expression') + + def unwatch(self, arg): + if arg: + try: + self.table.remove(arg) + except: + raise Exception('Expression not watched') + else: + raise Exception('Specify an expression') + + def clear(self, arg): + self.table.clear() + + @staticmethod + def get_default_radix(): + try: + return gdb.parameter('output-radix') + except RuntimeError: + # XXX this is a fix for GDB <8.1.x see #161 + message = run('show output-radix') + match = re.match('^Default output radix for printing of values is (\d+)\.$', message) + return match.groups()[0] if match else 10 # fallback + +class Breakpoints(Dashboard.Module): + '''Display the breakpoints list.''' + + NAMES = { + gdb.BP_BREAKPOINT: 'break', + gdb.BP_WATCHPOINT: 'watch', + gdb.BP_HARDWARE_WATCHPOINT: 'write watch', + gdb.BP_READ_WATCHPOINT: 'read watch', + gdb.BP_ACCESS_WATCHPOINT: 'access watch' + } + + def label(self): + return 'Breakpoints' + + def lines(self, term_width, term_height, style_changed): + out = [] + breakpoints = fetch_breakpoints(watchpoints=True, pending=self.show_pending) + for breakpoint in breakpoints: + sub_lines = [] + # format common information + style = R.style_selected_1 if breakpoint['enabled'] else R.style_selected_2 + number = ansi(breakpoint['number'], style) + bp_type = ansi(Breakpoints.NAMES[breakpoint['type']], style) + if breakpoint['temporary']: + bp_type = bp_type + ' {}'.format(ansi('once', style)) + if not R.ansi and breakpoint['enabled']: + bp_type = 'disabled ' + bp_type + line = '[{}] {}'.format(number, bp_type) + if breakpoint['type'] == gdb.BP_BREAKPOINT: + for i, address in enumerate(breakpoint['addresses']): + addr = address['address'] + if i == 0 and addr: + # this is a regular breakpoint + line += ' at {}'.format(ansi(format_address(addr), style)) + # format source information + file_name = address.get('file_name') + file_line = address.get('file_line') + if file_name and file_line: + file_name = ansi(file_name, style) + file_line = ansi(file_line, style) + line += ' in {}:{}'.format(file_name, file_line) + elif i > 0: + # this is a sub breakpoint + sub_style = R.style_selected_1 if address['enabled'] else R.style_selected_2 + sub_number = ansi('{}.{}'.format(breakpoint['number'], i), sub_style) + sub_line = '[{}]'.format(sub_number) + sub_line += ' at {}'.format(ansi(format_address(addr), sub_style)) + # format source information + file_name = address.get('file_name') + file_line = address.get('file_line') + if file_name and file_line: + file_name = ansi(file_name, sub_style) + file_line = ansi(file_line, sub_style) + sub_line += ' in {}:{}'.format(file_name, file_line) + sub_lines += [sub_line] + # format user location + location = breakpoint['location'] + line += ' for {}'.format(ansi(location, style)) + else: + # format user expression + expression = breakpoint['expression'] + line += ' for {}'.format(ansi(expression, style)) + # format condition + condition = breakpoint['condition'] + if condition: + line += ' if {}'.format(ansi(condition, style)) + # format hit count + hit_count = breakpoint['hit_count'] + if hit_count: + word = 'time{}'.format('s' if hit_count > 1 else '') + line += ' hit {} {}'.format(ansi(breakpoint['hit_count'], style), word) + # append the main line and possibly sub breakpoints + out.append(line) + out.extend(sub_lines) + return out + + def attributes(self): + return { + 'pending': { + 'doc': 'Also show pending breakpoints.', + 'default': True, + 'name': 'show_pending', + 'type': bool + } + } + +# XXX traceback line numbers in this Python block must be increased by 1 +end + +# Better GDB defaults ---------------------------------------------------------- + +set history save +set verbose off +set print pretty on +set print array off +set print array-indexes on +set python print-stack full + +# Start ------------------------------------------------------------------------ + +python Dashboard.start() + +# File variables --------------------------------------------------------------- + +# vim: filetype=python +# Local Variables: +# mode: python +# End: diff --git a/_vim/.vim/plugged/gdb-dashboard/LICENSE b/_vim/.vim/plugged/gdb-dashboard/LICENSE new file mode 100644 index 0000000..b543381 --- /dev/null +++ b/_vim/.vim/plugged/gdb-dashboard/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2015-2020 Andrea Cardaci + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/_vim/.vim/plugged/gdb-dashboard/README.md b/_vim/.vim/plugged/gdb-dashboard/README.md new file mode 100644 index 0000000..204daa6 --- /dev/null +++ b/_vim/.vim/plugged/gdb-dashboard/README.md @@ -0,0 +1,31 @@ +# GDB dashboard + +GDB dashboard is a standalone `.gdbinit` file written using the [Python API][] that enables a modular interface showing relevant information about the program being debugged. Its main goal is to reduce the number of GDB commands needed to inspect the status of current program thus allowing the developer to primarily focus on the control flow. + +![Screenshot](https://raw.githubusercontent.com/wiki/cyrus-and/gdb-dashboard/Screenshot.png) + +[Python API]: https://sourceware.org/gdb/onlinedocs/gdb/Python-API.html + +## Quickstart + +Just place [`.gdbinit`][] in your home directory, for example with: + +``` +wget -P ~ https://git.io/.gdbinit +``` + +Optionally install [Pygments][] to enable syntax highlighting: + +``` +pip install pygments +``` + +Then debug as usual, the dashboard will appear automatically every time the inferior program stops. + +Keep in mind that no GDB command has been redefined, instead all the features are available via the main `dashboard` command (see `help dashboard`). + +Head to the [wiki][] to learn how to perform the most important tasks. + +[`.gdbinit`]: https://raw.githubusercontent.com/cyrus-and/gdb-dashboard/master/.gdbinit +[Pygments]: http://pygments.org/ +[wiki]: https://github.com/cyrus-and/gdb-dashboard/wiki diff --git a/_vim/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/bug.md b/_vim/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/bug.md new file mode 100644 index 0000000..dd35135 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/bug.md @@ -0,0 +1,45 @@ +--- +name: "Bug Report" +about: "NERDTree is misbehaving? Tell us about it." +labels: bug +--- + + +#### Self-Diagnosis + +- [ ] I have searched the [issues](https://github.com/scrooloose/nerdtree/issues) for an answer to my question. +- [ ] I have reviewed the NERDTree documentation. `:h NERDTree` +- [ ] I have reviewed the [Wiki](https://github.com/scrooloose/nerdtree/wiki). +- [ ] I have searched the web for an answer to my question. + +#### Environment (for bug reports) +- [ ] Operating System: +- [ ] Vim/Neovim version `:echo v:version`: +- [ ] NERDTree version, found on 1st line in NERDTree quickhelp `?`: +- [ ] vimrc settings + - [ ] NERDTree variables + ```vim + ``` + - Other NERDTree-dependent Plugins + - [ ] jistr/vim-nerdtree-tabs + - [ ] ryanoasis/vim-devicons + - [ ] tiagofumo/vim-nerdtree-syntax-highlight + - [ ] Xuyuanp/nerdtree-git-plugin + - [ ] Others (specify): + - [ ] I've verified the issue occurs with only NERDTree installed. + +#### Steps to Reproduce the Issue +1. + +#### Current Result (Include screenshots where appropriate.) + +#### Expected Result + diff --git a/_vim/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/feature_request.md b/_vim/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/feature_request.md new file mode 100644 index 0000000..35db0f6 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/feature_request.md @@ -0,0 +1,8 @@ +--- +name: "Feature Request" +about: "What new feature are you requesting for NERDTree?" +labels: "feature request" +--- + +#### Description + diff --git a/_vim/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/question.md b/_vim/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/question.md new file mode 100644 index 0000000..25f15b0 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/.github/ISSUE_TEMPLATE/question.md @@ -0,0 +1,24 @@ +--- +name: "General Question" +about: "Having trouble setting up NERDTree? Need clarification on a setting? Ask your question here." +labels: "general question" +--- + + +#### Self-Diagnosis + +- [ ] I have searched the [issues](https://github.com/scrooloose/nerdtree/issues) for an answer to my question. +- [ ] I have reviewed the NERDTree documentation. `:h NERDTree` +- [ ] I have reviewed the [Wiki](https://github.com/scrooloose/nerdtree/wiki). +- [ ] I have searched the web for an answer to my question. + +#### State Your Question + diff --git a/_vim/.vim/plugged/nerdtree/.github/PULL_REQUEST_TEMPLATE.md b/_vim/.vim/plugged/nerdtree/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..24dba3f --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,16 @@ +### Description of Changes +Closes # + + +--- +### New Version Info + +#### Author's Instructions +- [ ] Derive a new `MAJOR.MINOR.PATCH` version number. Increment the: + - `MAJOR` version when you make incompatible API changes + - `MINOR` version when you add functionality in a backwards-compatible manner + - `PATCH` version when you make backwards-compatible bug fixes +- [ ] Update [CHANGELOG.md](https://github.com/scrooloose/nerdtree/blob/master/CHANGELOG.md), following the established pattern. +#### Collaborator's Instructions +- [ ] Review [CHANGELOG.md](https://github.com/scrooloose/nerdtree/blob/master/CHANGELOG.md), suggesting a different version number if necessary. +- [ ] After merge, tag the merge commit, e.g. `git tag -a 3.1.4 -m "v3.1.4" && git push origin --tags` diff --git a/_vim/.vim/plugged/nerdtree/.github/workflows/vint.yml b/_vim/.vim/plugged/nerdtree/.github/workflows/vint.yml new file mode 100644 index 0000000..36d7258 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/.github/workflows/vint.yml @@ -0,0 +1,15 @@ +name: Vint +on: [push, pull_request] +jobs: + vint: + strategy: + fail-fast: false + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@master + - name: Run vint with reviewdog + uses: reviewdog/action-vint@v1.0.1 + with: + github_token: ${{ secrets.github_token }} + reporter: github-pr-review diff --git a/_vim/.vim/plugged/nerdtree/.gitignore b/_vim/.vim/plugged/nerdtree/.gitignore new file mode 100644 index 0000000..3698c0e --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/.gitignore @@ -0,0 +1,3 @@ +*~ +*.swp +tags diff --git a/_vim/.vim/plugged/nerdtree/.vintrc.yaml b/_vim/.vim/plugged/nerdtree/.vintrc.yaml new file mode 100644 index 0000000..c44b6ab --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/.vintrc.yaml @@ -0,0 +1,5 @@ +cmdargs: + severity: style_problem + color: true + env: + neovim: false diff --git a/_vim/.vim/plugged/nerdtree/CHANGELOG.md b/_vim/.vim/plugged/nerdtree/CHANGELOG.md new file mode 100644 index 0000000..d0de2be --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/CHANGELOG.md @@ -0,0 +1,265 @@ +# NERDTree Change Log + +#### 6.7 +- **.7**: Put '%' argument in bufname() for backwards compatibility. (PhilRunninger) [#1105](https://github.com/preservim/nerdtree/pull/1105) +- **.6**: If a file's already open in the window, don't edit it again. (PhilRunninger) [#1103](https://github.com/preservim/nerdtree/pull/1103) +- **.5**: Prevent unneeded tree creation in `:NERDTreeToggle[VCS] ` (PhilRunninger) [#1101](https://github.com/preservim/nerdtree/pull/1101) +- **.4**: Add missing calls to the `shellescape()` function (lifecrisis) [#1099](https://github.com/preservim/nerdtree/pull/1099) +- **.3**: Fix vsplit to not open empty buffers when opening previously closed file (AwkwardKore) [#1098](https://github.com/preservim/nerdtree/pull/1098) +- **.2**: Fix infinity loop (on winvim) in FindParentVCSRoot (Eugenij-W) [#1095](https://github.com/preservim/nerdtree/pull/1095) +- **.1**: File Move: Escape existing directory name when looking for open files. (PhilRunninger) [#1094](https://github.com/preservim/nerdtree/pull/1094) +- **.0**: Open the parent directory when revealing a non-existent file with :NERDTreeFind (bouk) [#1090](https://github.com/preservim/nerdtree/pull/1090) +#### 6.6 +- **.1**: [add] How to install using dein.vim (kazukazuinaina) [#1087](https://github.com/preservim/nerdtree/pull/1087) +- **.0**: Add the ability to turn off directory arrows (PhilRunninger) [#1085](https://github.com/preservim/nerdtree/pull/1085) +#### 6.5 +- **.0**: `NERDTreeToggle ` always sets NERDTree root. (PhilRunninger) [#1083](https://github.com/preservim/nerdtree/pull/1083) +#### 6.4 +- **.6**: NERDTreeFind shows expected message if file doesn't exist e.g. with vim-startify (andys8). [#1081](https://github.com/preservim/nerdtree/pull/1081) +- **.5**: Ensure events are (or aren't) being ignored correctly. (PhilRunninger) [#1080](https://github.com/preservim/nerdtree/pull/1080) +- **.4**: Prevent overwriting existing files/dirs on node move. (PhilRunninger) [#1079](https://github.com/preservim/nerdtree/pull/1079) +- **.3**: Fix regex that finds keyword for minimal menu. (PhilRunninger) [#1075](https://github.com/preservim/nerdtree/pull/1075) +- **.2**: Lint vimscript, fix errors and warnings, add CI job to review PRs (Caleb Maclennan) [#1071](https://github.com/preservim/nerdtree/pull/1071) +- **.1**: Ensure backward compatibility. v:t_func is not available before Vim 8.0 (Phil Runninger) +- **.0**: Allow use of function references as callbacks (HiPhish) [#1067](https://github.com/preservim/nerdtree/pull/1067) +#### 6.3 +- **.0**: Add new command that behaves like NERDTreeToggle but defaults to the root of a VCS repository. (willfindlay) [#1060](https://github.com/preservim/nerdtree/pull/1060) +#### 6.2 +- **.1**: Menu option, 'copy path to clipboard' is aware of VIM clipboard option (jhzn) [#1056](https://github.com/preservim/nerdtree/pull/1056) +- **.0**: Support tab-specific CWDs (PhilRunninger) [#1032](https://github.com/preservim/nerdtree/pull/1032) +#### 6.1 +- **.4**: Add VIM built-in package management to read me file. (pesarkhobeee) [#1049](https://github.com/preservim/nerdtree/pull/1049) +- **.3**: Save/Set screen state also on WinLeave and WinEnter. (PhilRunninger) [#1048](https://github.com/preservim/nerdtree/pull/1048) +- **.2**: Wrap saveScreenState's statements in a try-catch block. (PhilRunninger) [#1047](https://github.com/preservim/nerdtree/pull/1047) +- **.1**: Catch errors when trying to read CHANGELOG.md. (PhilRunninger) [#1045](https://github.com/preservim/nerdtree/pull/1045) +- **.0**: If file path doesn't exist, :NERDTreeFind its parent directory instead. (PhilRunninger) [#1043](https://github.com/preservim/nerdtree/pull/1043) +#### 6.0 +- **.1**: Reintroduce necessary variable mistakenly removed. (PhilRunninger) [#1040](https://github.com/preservim/nerdtree/pull/1040) +- **.0**: Make the behavior of window splits consistent (dragonxlwang, PhilRunninger) [#1035](https://github.com/preservim/nerdtree/pull/1035) +#### 5.3 +- **.3**: Fix (p)ath not displaying in the minimal menu (tuzz) [#1038](https://github.com/preservim/nerdtree/pull/1038) +- **.2**: Enable events when closing NerdTree window. (PhilRunninger) [#1037](https://github.com/preservim/nerdtree/pull/1037) +- **.1**: Fix the `e` key mapping to use netrw if desired (PhilRunninger) [#1031](https://github.com/preservim/nerdtree/pull/1031) +- **.0**: Add file extension and size to sorting capabilities (PhilRunninger) [#1029](https://github.com/preservim/nerdtree/pull/1029) +#### 5.2 +- **.9**: Suppress events for intermediate window/tab/buffer changes (PhilRunninger) [#1026](https://github.com/preservim/nerdtree/pull/1026) +- **.8**: Revert [#1019](https://github.com/preservim/nerdtree/pull/1019) to fix nvim artifacts and flickering. (PhilRunninger) [#1021](https://github.com/preservim/nerdtree/pull/1021) +- **.7**: Use :mode only in neovim. MacVim still needs to use :redraw! (PhilRunninger) [#1019](https://github.com/preservim/nerdtree/pull/1019) +- **.6**: In CHANGELOG.md and PR template, make reference to PR a true HTML link. (PhilRunninger) [#1017](https://github.com/preservim/nerdtree/pull/1017) +- **.5**: Use `:mode` instead of `:redraw!` when updating menu. (PhilRunninger) [#1016](https://github.com/preservim/nerdtree/pull/1016) +- **.4**: When searching for root line num, stop at end of file. (PhilRunninger) [#1015](https://github.com/preservim/nerdtree/pull/1015) +- **.3**: Fix `` key map on the bookmark (lkebin) [#1014](https://github.com/preservim/nerdtree/pull/1014) +- **.2**: Make Enter work on the `.. ( up a dir )` line (PhilRunninger) [#1013](https://github.com/preservim/nerdtree/pull/1013) +- **.1**: Fix nerdtree#version() on Windows. (PhilRunninger) +- **.0**: Expand functionality of `` mapping. (PhilRunninger) [#1011](https://github.com/preservim/nerdtree/pull/1011) +#### 5.1 +- **.3**: Remove @mentions from PR template and change log. They weren't working. (PhilRunninger) [#1009](https://github.com/preservim/nerdtree/pull/1009) +- **.2**: Fix NERDTree opening with the wrong size. (PhilRunninger) [#1008](https://github.com/preservim/nerdtree/pull/1008) +- **.1**: Update Changelog and create PR Template (PhilRunninger) [#1007](https://github.com/preservim/nerdtree/pull/1007) +- **.0**: Too many changes for one patch... + - Refresh a dir_node if the file wasn't found in it, and look once more. (PhilRunninger) [#1005](https://github.com/preservim/nerdtree/pull/1005) + - Add a "copy path to clipboard" menu option (PhilRunninger) [#1002](https://github.com/preservim/nerdtree/pull/1002) + - Enable root refresh on "vim ." a different way than [#999](https://github.com/preservim/nerdtree/pull/999). (PhilRunninger) [#1001](https://github.com/preservim/nerdtree/pull/1001) + - Fix refreshroot (PhilRunninger) [#999](https://github.com/preservim/nerdtree/pull/999) + - Change version check to look for 703 not 730 (vhalis) [#994](https://github.com/preservim/nerdtree/pull/994) + - Change minimum vim (PhilRunninger) [#991](https://github.com/preservim/nerdtree/pull/991) + - Allow multi-character DirArrows (PhilRunninger) [#985](https://github.com/preservim/nerdtree/pull/985) + - Remove redraw! while still clearing last message empty string. (PhilRunninger) [#979](https://github.com/preservim/nerdtree/pull/979) + - fix `_initChildren` function value set to numChildrenCached error (terryding77) [#969](https://github.com/preservim/nerdtree/pull/969) + - On Windows, do a case-insensitive comparison of paths. (PhilRunninger) [#967](https://github.com/preservim/nerdtree/pull/967) + - Remove the **Please wait... DONE** messages. (PhilRunninger) [#966](https://github.com/preservim/nerdtree/pull/966) + - Smarter delimiter default (PhilRunninger) [#963](https://github.com/preservim/nerdtree/pull/963) + - Update directory .vimdc readme example (spencerdcarlson) [#961](https://github.com/preservim/nerdtree/pull/961) + - Preview bookmarks (PhilRunninger) [#956](https://github.com/preservim/nerdtree/pull/956) + - Add new value to NERDTreeQuitOnOpen to close bookmark table (PhilRunninger) [#955](https://github.com/preservim/nerdtree/pull/955) + - Add an :EditBookmarks command to edit the bookmarks file (PhilRunninger) [#954](https://github.com/preservim/nerdtree/pull/954) + - Before copying, turn off &shellslash. Restore after copy is finished. (PhilRunninger) [#952](https://github.com/preservim/nerdtree/pull/952) + - Set a maximum window size when zooming. (PhilRunninger) [#950](https://github.com/preservim/nerdtree/pull/950) + - Confirm the wipeout of a unsaved buffer whose file has been renamed. (PhilRunninger) [#949](https://github.com/preservim/nerdtree/pull/949) + - Escape a backslash so it can be used in a key mapping. (PhilRunninger) [#948](https://github.com/preservim/nerdtree/pull/948) + - Add a NERDTreeMinimalMenu feature (tuzz) [#938](https://github.com/preservim/nerdtree/pull/938) + - fixed root path error for windows (zcodes) [#935](https://github.com/preservim/nerdtree/pull/935) + - Restore getDirChildren for use in nerdtree-project-plugin. (PhilRunninger) [#929](https://github.com/preservim/nerdtree/pull/929) + - Document NERDTreeNodeDelimiter [#912](https://github.com/preservim/nerdtree/pull/912) (PhilRunninger) [#926](https://github.com/preservim/nerdtree/pull/926) + - Allow modification of menu keybindings (Leandros) [#923](https://github.com/preservim/nerdtree/pull/923) + - Add two more disqualifications for isCascadable(). (PhilRunninger) [#914](https://github.com/preservim/nerdtree/pull/914) + - Allow highlighting more than one flag. (kristijanhusak) [#908](https://github.com/preservim/nerdtree/pull/908) + - Support sorting files and directories by modification time. (PhilRunninger) [#901](https://github.com/preservim/nerdtree/pull/901) + - Parse . and .. from path string with trailing slash. (PhilRunninger) [#899](https://github.com/preservim/nerdtree/pull/899) + - Force sort to recalculate the cached sortKey. (PhilRunninger) [#898](https://github.com/preservim/nerdtree/pull/898) + - Add NERDTreeRefreshRoot command (wgfm) [#897](https://github.com/preservim/nerdtree/pull/897) + - Call Resolve on the file's path when calling :NERDTreeFind. (PhilRunninger) [#896](https://github.com/preservim/nerdtree/pull/896) + - Catch all errors, not just NERDTree errors. (PhilRunninger) [#894](https://github.com/preservim/nerdtree/pull/894) + - Fix typo in help file (lvoisin) [#892](https://github.com/preservim/nerdtree/pull/892) + - Make NERDTreeCreator set the `'nolist'` option (lifecrisis) [#889](https://github.com/preservim/nerdtree/pull/889) + - Refresh buffers after `m`, `m` operation on a folder (PhilRunninger) [#888](https://github.com/preservim/nerdtree/pull/888) + - Use a better arg for FINDSTR when using the m,l command in Windows. (PhilRunninger) [#887](https://github.com/preservim/nerdtree/pull/887) + - Fix the / motions, which currently fail with cascades (lifecrisis) [#886](https://github.com/preservim/nerdtree/pull/886) + - Function "s:UI.getLineNum()" doesn't always work on cascades. (lifecrisis) [#882](https://github.com/preservim/nerdtree/pull/882) + - NERDTreeCWD: reset CWD if changed by NERDTreeFocus (PhilRunninger) [#878](https://github.com/preservim/nerdtree/pull/878) + - Use tabnext instead of gt to allow users to remap gt. (PhilRunninger) [#877](https://github.com/preservim/nerdtree/pull/877) + - Do a case sensitive comparison of new/existing buffers. (PhilRunninger) [#875](https://github.com/preservim/nerdtree/pull/875) + - Fix opening sub-directories that have commas in their name. (PhilRunninger) [#873](https://github.com/preservim/nerdtree/pull/873) + - Add new command to open NERDTree in the root of a VCS repository. (PhilRunninger) [#872](https://github.com/preservim/nerdtree/pull/872) + - Make sure the path to the bookmarks file exists before writing it. (PhilRunninger) [#871](https://github.com/preservim/nerdtree/pull/871) + - Unzoom NERDTree when opening a file (PhilRunninger) [#870](https://github.com/preservim/nerdtree/pull/870) + - Support unusual characters in file and directory names (PhilRunninger) [#868](https://github.com/preservim/nerdtree/pull/868) + - Reword renamed-buffer prompt to be more clear (aflock) [#867](https://github.com/preservim/nerdtree/pull/867) + - Default to placing cursor on root when closing bookmark table (lifecrisis) [#866](https://github.com/preservim/nerdtree/pull/866) + - Fix issues with sorting of nodes (PhilRunninger) [#856](https://github.com/preservim/nerdtree/pull/856) + - Better OSX detection (bubba-h57) [#853](https://github.com/preservim/nerdtree/pull/853) + - Bugfix - ensure keymaps dictionary exists before using it (mnussbaum) [#852](https://github.com/preservim/nerdtree/pull/852) + - Decrease startup-time by avoiding linear-time iteration over key mappings (mnussbaum) [#851](https://github.com/preservim/nerdtree/pull/851) + - Add code to sort mappings in quickhelp (lifecrisis) [#849](https://github.com/preservim/nerdtree/pull/849) + - Use ":clearjumps" in new NERDTree windows (lifecrisis) [#844](https://github.com/preservim/nerdtree/pull/844) + - Like m-c did before, create parent directories if needed on m-m. (PhilRunninger) [#840](https://github.com/preservim/nerdtree/pull/840) + - BUGFIX: Repair a problem with the `'u'` mapping. (lifecrisis) [#838](https://github.com/preservim/nerdtree/pull/838) + - Make the NERDTree buffer writable when rendering it. (PhilRunninger) [#837](https://github.com/preservim/nerdtree/pull/837) + - Code cleanup: Remove unsupported bookmark table mappings (lifecrisis) [#835](https://github.com/preservim/nerdtree/pull/835) + - Replace strcharpart() with substitute() for backward compatibility (bravestarr) [#834](https://github.com/preservim/nerdtree/pull/834) + - Fixed error `unknown function strcharpart` for older versions of Vim (hav4ik) [#833](https://github.com/preservim/nerdtree/pull/833) + - Clear output when NERDTree menu is aborted (lifecrisis) [#832](https://github.com/preservim/nerdtree/pull/832) + - Display a path with multi-byte characters correctly when it is truncated (bravestarr) [#830](https://github.com/preservim/nerdtree/pull/830) + - Support revealing file and executing file with xdg-open for Linux (ngnmhieu) [#824](https://github.com/preservim/nerdtree/pull/824) + - If node isn't open, count children on disk before deleting. (PhilRunninger) [#822](https://github.com/preservim/nerdtree/pull/822) + - Add new variable g:NERDTreeRemoveFileCmd (kutsan) [#816](https://github.com/preservim/nerdtree/pull/816) + - Use a better check for existence of the NERDTree buffer. (PhilRunninger) [#814](https://github.com/preservim/nerdtree/pull/814) + - Fix focussing previous buffer when closing NERDTree (mrubli) [#801](https://github.com/preservim/nerdtree/pull/801) + - Update the docs for "NERDTreeStatusline" (lifecrisis) [#796](https://github.com/preservim/nerdtree/pull/796) + - BUGFIX: Unstable behavior in the "getPath()" method (lifecrisis) [#795](https://github.com/preservim/nerdtree/pull/795) + - Revert the bugfix from pull request [#785](https://github.com/preservim/nerdtree/pull/785) (lifecrisis) [#794](https://github.com/preservim/nerdtree/pull/794) + - BUGFIX: Allow ":NERDTreeFind" to discover hidden files (lifecrisis) [#786](https://github.com/preservim/nerdtree/pull/786) + - BUGFIX: Allow ":NERDTreeFind" to reveal new files (lifecrisis) [#785](https://github.com/preservim/nerdtree/pull/785) + - Add modelines (lifecrisis) [#782](https://github.com/preservim/nerdtree/pull/782) + - Change the type of completion used by NERDTreeFind (lifecrisis) [#781](https://github.com/preservim/nerdtree/pull/781) + - change NERDTreeFind with args (zhenyangze) [#778](https://github.com/preservim/nerdtree/pull/778) + - Style Choice: Using confirm() when deleting a bookmark (lifecrisis) [#777](https://github.com/preservim/nerdtree/pull/777) + - remove useless substitute when `file =~# "/$"` (skyblueee) [#773](https://github.com/preservim/nerdtree/pull/773) + - remove useless removeLeadingSpaces in _stripMarkup (skyblueee) [#772](https://github.com/preservim/nerdtree/pull/772) + - Make the "o" mapping consistent with "x" (lifecrisis) [#769](https://github.com/preservim/nerdtree/pull/769) + - Fix a problem with the "x" handler (lifecrisis) [#768](https://github.com/preservim/nerdtree/pull/768) + - Clean up the handler for the "x" mapping (lifecrisis) [#767](https://github.com/preservim/nerdtree/pull/767) + - Revert change to tab opening method (lifecrisis) [#766](https://github.com/preservim/nerdtree/pull/766) + - BUGFIX: Add back support for "b:NERDTreeRoot" (lifecrisis) [#765](https://github.com/preservim/nerdtree/pull/765) + - Fix broken "t" and "T" mappings, tabs now open at end (lifecrisis) [#759](https://github.com/preservim/nerdtree/pull/759) + - Update doc with already existing mapping variables (asnr) [#699](https://github.com/preservim/nerdtree/pull/699) + - Fix the broken g:NERDTreeBookmarksSort setting (lifecrisis) [#696](https://github.com/preservim/nerdtree/pull/696) + - Correct NERDTreeIgnore pattern in doc (cntoplolicon) [#648](https://github.com/preservim/nerdtree/pull/648) + - Remove empty segments when splitting path (sooth-sayer) [#574](https://github.com/preservim/nerdtree/pull/574) + - Suppress autocmds less agressively (wincent) [#578](https://github.com/preservim/nerdtree/pull/578) [#691](https://github.com/preservim/nerdtree/pull/691) + - Add an Issues template to ask for more info initially. + - Fix markdown headers in readme (josephfrazier) [#676](https://github.com/preservim/nerdtree/pull/676) + - Don't touch `@o` and `@h` registers when rendering + - Fix bug with files and directories with dollar signs (alegen) [#649](https://github.com/preservim/nerdtree/pull/649) + - Reuse/reopen existing window trees where possible [#244](https://github.com/preservim/nerdtree/pull/244) + - Remove NERDTree.previousBuf() + - Change color of arrow (Leeiio) [#630](https://github.com/preservim/nerdtree/pull/630) + - Improved a tip in README.markdown (ggicci) [#628](https://github.com/preservim/nerdtree/pull/628) + - Shorten delete confimration of empty directory to `y` (mikeperri) [#530](https://github.com/preservim/nerdtree/pull/530) + - Fix API call to open directory tree in window (devm33) [#533](https://github.com/preservim/nerdtree/pull/533) + - Change default arrows on non-Windows platforms (gwilk) [#546](https://github.com/preservim/nerdtree/pull/546) + - Update to README - combine cd and git clone (zwhitchcox) [#584](https://github.com/preservim/nerdtree/pull/584) + - Update to README - Tip: start NERDTree when vim starts (therealplato) [#593](https://github.com/preservim/nerdtree/pull/593) + - Escape filename when moving an open buffer (zacharyvoase) [#595](https://github.com/preservim/nerdtree/pull/595) + - Fixed incorrect :helptags command in README (curran) [#619](https://github.com/preservim/nerdtree/pull/619) + - Fixed incomplete escaping of folder arrows (adityanatraj) [#548](https://github.com/preservim/nerdtree/pull/548) + - Added NERDTreeCascadeSingleChildDir option (juanibiapina) [#558](https://github.com/preservim/nerdtree/pull/558) + - Replace strchars() with backward compatible workaround. + - Add support for copy command in Windows (SkylerLipthay) [#231](https://github.com/preservim/nerdtree/pull/231) + - Fixed typo in README.markdown - :Helptags -> :helptags + - Rename "primary" and "secondary" trees to "tab" and "window" trees. + - Move a bunch of buffer level variables into the NERDTree and UI classes. + - Display cascading dirs on one line to save vertical/horizontal space (matt-gardner: brainstorming/testing) + - Remove the old style UI - Remove `NERDTreeDirArrows` option. + - On windows default to + and ~ for expand/collapse directory symbols. + - Lots more refactoring. Move a bunch of b: level vars into b:NERDTree and friends. + +#### 5.0.0 +- Refactor the code significantly: + * Break the classes out into their own files. + * Make the majority of the code OO - previously large parts were effectively a tangle of "global" methods. +- Add an API to assign flags to nodes. This allows VCS plugins like https://github.com/Xuyuanp/nerdtree-git-plugin to exist. Thanks to **Xuyuanp** for helping design/test/build said API. +- add `scope` argument to the key map API see :help NERDTreeAddKeyMap() +- add magic [[dir]] and [[file]] flags to NERDTreeIgnore +- add support for custom path filters. See :help NERDTreeAddPathFilter() +- add path listener API. See :help NERDTreePathListenerAPI. +- expand the fs menu functionality to list file properties (PhilRunninger, apbarrero, JESii) +- make bookmarks work with `~` home shortcuts (hiberabyss) +- show OSX specific fsmenu options in regular vim on mac (evindor) +- make dir arrow icons configurable (PickRelated) +- optimise node sorting performance when opening large dirs (vtsang) +- make the root note render prettier by truncating it at a path slash (gcmt) +- remove NERDChristmasTree option - its always christmas now +- add "cascade" open and closing for dirs containing only another single dir. See :help NERDTreeCascadeOpenSingleChildDir (pendulm) +- Many other fixes, doc updates and contributions from: **actionshrimp**, **agrussellknives**, **alvan**, **AndrewRadev**, **cperl82** (*many small fixes*), **devmanhinton**, **egalpin**, **franksort**, **gastropoda**, **handcraftedbits**, **kelaban**, **lucascaton**, **mixvin**, **pendulm**, **SchDen**, **shanesmith**, **staeff**, **stephenprater**, **toiffel**, **Twinside**, **WoLpH**, **xiaodili**, **zhangoose** + +#### 4.2.0 +- Add NERDTreeDirArrows option to make the UI use pretty arrow chars instead of the old +~| chars to define the tree structure (sickill) +- shift the syntax highlighting out into its own syntax file (gnap) +- add some mac specific options to the filesystem menu - for macvim only (andersonfreitas) +- Add NERDTreeMinimalUI option to remove some non functional parts of the nerdtree ui (camthompson) +- tweak the behaviour of :NERDTreeFind - see :help :NERDTreeFind for the new behaviour (benjamingeiger) +- if no name is given to :Bookmark, make it default to the name of the target file/dir (minyoung) +- use `file` completion when doing copying, create, and move operations (EvanDotPro) +- lots of misc bug fixes from: **AndrewRadev**, **Bogdanov**, **camthompson**, **kml**, **mathias**, **paddyoloughlin**, **scottstvnsn**, **sdewald**, **Vitaly**, **wycats**, me RAWR! + +#### 4.1.0 +- features: + - NERDTreeFind to reveal the node for the current buffer in the tree, see `|NERDTreeFind|`. This effectively merges the FindInNERDTree plugin (by **Doug McInnes**) into the script. + - make NERDTreeQuitOnOpen apply to the t/T keymaps too. Thanks to **Stefan Ritter** and **Rémi Prévost**. + - truncate the root node if wider than the tree window. Thanks to **Victor Gonzalez**. + +- bugfixes: + - really fix window state restoring + - fix some win32 path escaping issues. Thanks to **Stephan Baumeister**, **Ricky**, **jfilip1024**, and **Chris Chambers**. + +#### 4.0.0 +- add a new programmable menu system (see `:help NERDTreeMenu`). +- add new APIs to add menus/menu-items to the menu system as well as custom key mappings to the NERD tree buffer (see `:help NERDTreeAPI`). +- removed the old API functions +- added a mapping to maximize/restore the size of nerd tree window, thanks to Guillaume Duranceau for the patch. See :help NERDTree-A for details. +- fix a bug where secondary nerd trees (netrw hijacked trees) and NERDTreeQuitOnOpen didnt play nicely, thanks to **Curtis Harvey**. +- fix a bug where the script ignored directories whose name ended in a dot, thanks to **Aggelos Orfanakos** for the patch. +- fix a bug when using the x mapping on the tree root, thanks to **Bryan Venteicher** for the patch. +- fix a bug where the cursor position/window size of the nerd tree buffer wasnt being stored on closing the window, thanks to **Richard Hart**. +- fix a bug where NERDTreeMirror would mirror the wrong tree + +#### 3.1.1 +- fix a bug where a non-listed no-name buffer was getting created every time the tree windows was created, thanks to **Derek Wyatt** and **owen1** +- make `` behave the same as the `o` mapping +- some helptag fixes in the doc, thanks **strull**. +- fix a bug when using `:set nohidden` and opening a file where the previous buf was modified. Thanks **iElectric**. +- other minor fixes + +#### 3.1.0 +- New features: + - add mappings to open files in a vsplit, see `:help NERDTree-s` and `:help NERDTree-gs` + - make the statusline for the nerd tree window default to something hopefully more useful. See `:help 'NERDTreeStatusline'` +- Bugfixes: + - make the hijack netrw functionality work when vim is started with `vim ` (thanks to **Alf Mikula** for the patch). + - fix a bug where the CWD wasnt being changed for some operations even when NERDTreeChDirMode==2 (thanks to **Lucas S. Buchala**) + - add -bar to all the nerd tree :commands so they can chain with other :commands (thanks to **tpope**) + - fix bugs when ignorecase was set (thanks to **nach**) + - fix a bug with the relative path code (thanks to **nach**) + - fix a bug where doing a `:cd` would cause `:NERDTreeToggle` to fail (thanks **nach**) + + +#### 3.0.1 +- Bugfixes: + - fix bugs with :NERDTreeToggle and :NERDTreeMirror when `'hidden'` was not set + - fix a bug where `:NERDTree ` would fail if `` was relative and didnt start with a `./` or `../` Thanks to **James Kanze**. + - make the `q` mapping work with secondary (`:e ` style) trees, thanks to **jamessan** + - fix a bunch of small bugs with secondary trees +- More insane refactoring. + +#### 3.0.0 +- hijack netrw so that doing an `:edit ` will put a NERD tree in the window rather than a netrw browser. See :help 'NERDTreeHijackNetrw' +- allow sharing of trees across tabs, see `:help :NERDTreeMirror` +- remove "top" and "bottom" as valid settings for NERDTreeWinPos +- change the `''` mapping to `'i'` +- change the `'H'` mapping to `'I'` +- lots of refactoring diff --git a/_vim/.vim/plugged/nerdtree/LICENCE b/_vim/.vim/plugged/nerdtree/LICENCE new file mode 100644 index 0000000..8b1a9d8 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/LICENCE @@ -0,0 +1,13 @@ + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + Version 2, December 2004 + +Copyright (C) 2004 Sam Hocevar + +Everyone is permitted to copy and distribute verbatim or modified +copies of this license document, and changing it is allowed as long +as the name is changed. + + DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. You just DO WHAT THE FUCK YOU WANT TO. diff --git a/_vim/.vim/plugged/nerdtree/README.markdown b/_vim/.vim/plugged/nerdtree/README.markdown new file mode 100644 index 0000000..09173a6 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/README.markdown @@ -0,0 +1,157 @@ +The NERDTree [![Vint](https://github.com/preservim/nerdtree/workflows/Vint/badge.svg)](https://github.com/preservim/nerdtree/actions?workflow=Vint) +============= + +Introduction +------------ + +The NERDTree is a file system explorer for the Vim editor. Using this plugin, +users can visually browse complex directory hierarchies, quickly open files for +reading or editing, and perform basic file system operations. + +This plugin can also be extended with custom mappings using a special API. The +details of this API and of other NERDTree features are described in the +included documentation. + +![NERDTree Screenshot](https://github.com/preservim/nerdtree/raw/master/screenshot.png) + +Installation +------------ + +Below are just some of the methods for installing NERDTree. Do not follow all of these instructions; just pick your favorite one. Other plugin managers exist, and NERDTree should install just fine with any of them. + +#### Vim 8+ packages + +If you are using VIM version 8 or higher you can use its built-in package management; see `:help packages` for more information. Just run these commands in your terminal: + +```bash +git clone https://github.com/preservim/nerdtree.git ~/.vim/pack/vendor/start/nerdtree +vim -u NONE -c "helptags ~/.vim/pack/vendor/start/nerdtree/doc" -c q +``` + +Otherwise, these are some of the several 3rd-party plugin managers you can choose from. Be sure you read the instructions for your chosen plugin, as there typically are additional steps you nee d to take. + +#### [pathogen.vim](https://github.com/tpope/vim-pathogen) + +In the terminal, +```bash +git clone https://github.com/preservim/nerdtree.git ~/.vim/bundle/nerdtree +``` +In your vimrc, +```vim +call pathogen#infect() +syntax on +filetype plugin indent on +``` + +Then reload vim, run `:helptags ~/.vim/bundle/nerdtree/doc/` or `:Helptags`. + +#### [Vundle.vim](https://github.com/VundleVim/Vundle.vim) +```vim +call vundle#begin() +Plugin 'preservim/nerdtree' +call vundle#end() +``` + +#### [vim-plug](https://github.com/junegunn/vim-plug) +```vim +call plug#begin() +Plug 'preservim/nerdtree' +call plug#end() +``` + +#### [dein.vim](https://github.com/Shougo/dein.vim) +```vim +call dein#begin() +call dein#add('preservim/nerdtree') +call dein#end() +``` + +#### [apt-vim](https://github.com/egalpin/apt-vim) +```bash +apt-vim install -y https://github.com/preservim/nerdtree.git +``` + +F.A.Q. (here, and in the [Wiki](https://github.com/preservim/nerdtree/wiki)) +------ + +#### Is there any support for `git` flags? + +Yes, install [nerdtree-git-plugin](https://github.com/Xuyuanp/nerdtree-git-plugin). + +--- +#### Can I have the nerdtree on every tab automatically? + +Nope. If this is something you want then chances are you aren't using tabs and +buffers as they were intended to be used. Read this +http://stackoverflow.com/questions/102384/using-vims-tabs-like-buffers + +If you are interested in this behaviour then consider [vim-nerdtree-tabs](https://github.com/jistr/vim-nerdtree-tabs) + +--- +#### How can I open a NERDTree automatically when vim starts up? + +Stick this in your vimrc: `autocmd vimenter * NERDTree` + +--- +#### How can I open a NERDTree automatically when vim starts up if no files were specified? + +Stick this in your vimrc: +```vim +autocmd StdinReadPre * let s:std_in=1 +autocmd VimEnter * if argc() == 0 && !exists("s:std_in") | NERDTree | endif +``` + +Note: Now start vim with plain `vim`, not `vim .` + +--- +#### What if I'm also opening a saved session, for example `vim -S session_file.vim`? I don't want NERDTree to open in that scenario. +```vim +autocmd StdinReadPre * let s:std_in=1 +autocmd VimEnter * if argc() == 0 && !exists("s:std_in") && v:this_session == "" | NERDTree | endif +``` + +--- +#### How can I open NERDTree automatically when vim starts up on opening a directory? +```vim +autocmd StdinReadPre * let s:std_in=1 +autocmd VimEnter * if argc() == 1 && isdirectory(argv()[0]) && !exists("s:std_in") | exe 'NERDTree' argv()[0] | wincmd p | ene | exe 'cd '.argv()[0] | endif +``` + +This window is tab-specific, meaning it's used by all windows in the tab. This trick also prevents NERDTree from hiding when first selecting a file. + +Note: Executing `vim ~/some-directory` will open NERDTree and a new edit window. `exe 'cd '.argv()[0]` sets the `pwd` of the new edit window to `~/some-directory` + +--- +#### How can I map a specific key or shortcut to open NERDTree? + +Stick this in your vimrc to open NERDTree with `Ctrl+n` (you can set whatever key you want): +```vim +map :NERDTreeToggle +``` + +--- +#### How can I close vim if the only window left open is a NERDTree? + +Stick this in your vimrc: +```vim +autocmd bufenter * if (winnr("$") == 1 && exists("b:NERDTree") && b:NERDTree.isTabTree()) | q | endif +``` + +--- +#### Can I have different highlighting for different file extensions? + +See here: https://github.com/preservim/nerdtree/issues/433#issuecomment-92590696 + +--- +#### How can I change default arrows? + +Use these variables in your vimrc. Note that below are default arrow symbols +```vim +let g:NERDTreeDirArrowExpandable = '▸' +let g:NERDTreeDirArrowCollapsible = '▾' +``` +You can remove the arrows altogether by setting these variables to empty strings, as shown below. This will remove not only the arrows, but a single space following them, shifting the whole tree two character positions to the left. +```vim +let g:NERDTreeDirArrowExpandable = '' +let g:NERDTreeDirArrowCollapsible = '' +``` diff --git a/_vim/.vim/plugged/nerdtree/_config.yml b/_vim/.vim/plugged/nerdtree/_config.yml new file mode 100644 index 0000000..c419263 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/_config.yml @@ -0,0 +1 @@ +theme: jekyll-theme-cayman \ No newline at end of file diff --git a/_vim/.vim/plugged/nerdtree/autoload/nerdtree.vim b/_vim/.vim/plugged/nerdtree/autoload/nerdtree.vim new file mode 100644 index 0000000..156b260 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/autoload/nerdtree.vim @@ -0,0 +1,259 @@ +if exists('g:loaded_nerdtree_autoload') + finish +endif +let g:loaded_nerdtree_autoload = 1 + +let s:rootNERDTreePath = resolve(expand(':p:h:h')) + +"FUNCTION: nerdtree#version(...) {{{1 +" If any value is given as an argument, the entire line of text from the +" change log is shown for the current version; otherwise, only the version +" number is shown. +function! nerdtree#version(...) abort + let l:text = 'Unknown' + try + let l:changelog = readfile(join([s:rootNERDTreePath, 'CHANGELOG.md'], nerdtree#slash())) + let l:line = 0 + while l:line <= len(l:changelog) + if l:changelog[l:line] =~# '\d\+\.\d\+' + let l:text = substitute(l:changelog[l:line], '.*\(\d\+.\d\+\).*', '\1', '') + let l:text .= substitute(l:changelog[l:line+1], '^.\{-}\(\.\d\+\).\{-}:\(.*\)', a:0>0 ? '\1:\2' : '\1', '') + break + endif + let l:line += 1 + endwhile + catch + endtry + return l:text +endfunction + +" SECTION: General Functions {{{1 +"============================================================ + +"FUNCTION: nerdtree#slash() {{{2 +function! nerdtree#slash() abort + + if nerdtree#runningWindows() + if exists('+shellslash') && &shellslash + return '/' + endif + + return '\' + endif + + return '/' +endfunction + +"FUNCTION: nerdtree#and(x,y) {{{2 +" Implements and() function for Vim <= 7.2 +function! nerdtree#and(x,y) abort + if exists('*and') + return and(a:x, a:y) + else + let l:x = a:x + let l:y = a:y + let l:n = 0 + let l:result = 0 + while l:x > 0 && l:y > 0 + if (l:x % 2) && (l:y % 2) + let l:result += float2nr(pow(2, l:n)) + endif + let l:x = float2nr(l:x / 2) + let l:y = float2nr(l:y / 2) + let l:n += 1 + endwhile + return l:result + endif +endfunction + +"FUNCTION: nerdtree#checkForBrowse(dir) {{{2 +"inits a window tree in the current buffer if appropriate +function! nerdtree#checkForBrowse(dir) abort + if !isdirectory(a:dir) + return + endif + + if s:reuseWin(a:dir) + return + endif + + call g:NERDTreeCreator.CreateWindowTree(a:dir) +endfunction + +"FUNCTION: s:reuseWin(dir) {{{2 +"finds a NERDTree buffer with root of dir, and opens it. +function! s:reuseWin(dir) abort + let path = g:NERDTreePath.New(fnamemodify(a:dir, ':p')) + + for i in range(1, bufnr('$')) + unlet! nt + let nt = getbufvar(i, 'NERDTree') + if empty(nt) + continue + endif + + if nt.isWinTree() && nt.root.path.equals(path) + call nt.setPreviousBuf(bufnr('#')) + exec 'buffer ' . i + return 1 + endif + endfor + + return 0 +endfunction + +" FUNCTION: nerdtree#completeBookmarks(A,L,P) {{{2 +" completion function for the bookmark commands +function! nerdtree#completeBookmarks(A,L,P) abort + return filter(g:NERDTreeBookmark.BookmarkNames(), 'v:val =~# "^' . a:A . '"') +endfunction + +"FUNCTION: nerdtree#compareNodes(dir) {{{2 +function! nerdtree#compareNodes(n1, n2) abort + return a:n1.path.compareTo(a:n2.path) +endfunction + +"FUNCTION: nerdtree#compareNodesBySortKey(n1, n2) {{{2 +function! nerdtree#compareNodesBySortKey(n1, n2) abort + let sortKey1 = a:n1.path.getSortKey() + let sortKey2 = a:n2.path.getSortKey() + let i = 0 + while i < min([len(sortKey1), len(sortKey2)]) + " Compare chunks upto common length. + " If chunks have different type, the one which has + " integer type is the lesser. + if type(sortKey1[i]) ==# type(sortKey2[i]) + if sortKey1[i] <# sortKey2[i] + return - 1 + elseif sortKey1[i] ># sortKey2[i] + return 1 + endif + elseif type(sortKey1[i]) ==# v:t_number + return -1 + elseif type(sortKey2[i]) ==# v:t_number + return 1 + endif + let i = i + 1 + endwhile + + " Keys are identical upto common length. + " The key which has smaller chunks is the lesser one. + if len(sortKey1) < len(sortKey2) + return -1 + elseif len(sortKey1) > len(sortKey2) + return 1 + else + return 0 + endif +endfunction + +" FUNCTION: nerdtree#deprecated(func, [msg]) {{{2 +" Issue a deprecation warning for a:func. If a second arg is given, use this +" as the deprecation message +function! nerdtree#deprecated(func, ...) abort + let msg = a:0 ? a:func . ' ' . a:1 : a:func . ' is deprecated' + + if !exists('s:deprecationWarnings') + let s:deprecationWarnings = {} + endif + if !has_key(s:deprecationWarnings, a:func) + let s:deprecationWarnings[a:func] = 1 + echomsg msg + endif +endfunction + +" FUNCTION: nerdtree#exec(cmd, ignoreAll) {{{2 +" Same as :exec cmd but, if ignoreAll is TRUE, set eventignore=all for the duration +function! nerdtree#exec(cmd, ignoreAll) abort + let old_ei = &eventignore + if a:ignoreAll + set eventignore=all + endif + try + exec a:cmd + finally + let &eventignore = old_ei + endtry +endfunction + +" FUNCTION: nerdtree#has_opt(options, name) {{{2 +function! nerdtree#has_opt(options, name) abort + return has_key(a:options, a:name) && a:options[a:name] ==# 1 +endfunction + +" FUNCTION: nerdtree#loadClassFiles() {{{2 +function! nerdtree#loadClassFiles() abort + runtime lib/nerdtree/path.vim + runtime lib/nerdtree/menu_controller.vim + runtime lib/nerdtree/menu_item.vim + runtime lib/nerdtree/key_map.vim + runtime lib/nerdtree/bookmark.vim + runtime lib/nerdtree/tree_file_node.vim + runtime lib/nerdtree/tree_dir_node.vim + runtime lib/nerdtree/opener.vim + runtime lib/nerdtree/creator.vim + runtime lib/nerdtree/flag_set.vim + runtime lib/nerdtree/nerdtree.vim + runtime lib/nerdtree/ui.vim + runtime lib/nerdtree/event.vim + runtime lib/nerdtree/notifier.vim +endfunction + +" FUNCTION: nerdtree#postSourceActions() {{{2 +function! nerdtree#postSourceActions() abort + call g:NERDTreeBookmark.CacheBookmarks(1) + call nerdtree#ui_glue#createDefaultBindings() + + "load all nerdtree plugins + runtime! nerdtree_plugin/**/*.vim +endfunction + +"FUNCTION: nerdtree#runningWindows(dir) {{{2 +function! nerdtree#runningWindows() abort + return has('win16') || has('win32') || has('win64') +endfunction + +"FUNCTION: nerdtree#runningCygwin(dir) {{{2 +function! nerdtree#runningCygwin() abort + return has('win32unix') +endfunction + +" SECTION: View Functions {{{1 +"============================================================ + +"FUNCTION: nerdtree#echo {{{2 +"A wrapper for :echo. Appends 'NERDTree:' on the front of all messages +" +"Args: +"msg: the message to echo +function! nerdtree#echo(msg) abort + redraw + echomsg empty(a:msg) ? '' : ('NERDTree: ' . a:msg) +endfunction + +"FUNCTION: nerdtree#echoError {{{2 +"Wrapper for nerdtree#echo, sets the message type to errormsg for this message +"Args: +"msg: the message to echo +function! nerdtree#echoError(msg) abort + echohl errormsg + call nerdtree#echo(a:msg) + echohl normal +endfunction + +"FUNCTION: nerdtree#echoWarning {{{2 +"Wrapper for nerdtree#echo, sets the message type to warningmsg for this message +"Args: +"msg: the message to echo +function! nerdtree#echoWarning(msg) abort + echohl warningmsg + call nerdtree#echo(a:msg) + echohl normal +endfunction + +"FUNCTION: nerdtree#renderView {{{2 +function! nerdtree#renderView() abort + call b:NERDTree.render() +endfunction + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/_vim/.vim/plugged/nerdtree/autoload/nerdtree/ui_glue.vim b/_vim/.vim/plugged/nerdtree/autoload/nerdtree/ui_glue.vim new file mode 100644 index 0000000..aef1b04 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/autoload/nerdtree/ui_glue.vim @@ -0,0 +1,698 @@ +if exists('g:loaded_nerdtree_ui_glue_autoload') + finish +endif +let g:loaded_nerdtree_ui_glue_autoload = 1 + +" FUNCTION: nerdtree#ui_glue#createDefaultBindings() {{{1 +function! nerdtree#ui_glue#createDefaultBindings() abort + let s = '' . s:SID() . '_' + + call NERDTreeAddKeyMap({ 'key': '', 'scope': 'all', 'callback': s . 'handleMiddleMouse' }) + call NERDTreeAddKeyMap({ 'key': '', 'scope': 'all', 'callback': s.'handleLeftClick' }) + call NERDTreeAddKeyMap({ 'key': '<2-LeftMouse>', 'scope': 'DirNode', 'callback': s.'activateDirNode' }) + call NERDTreeAddKeyMap({ 'key': '<2-LeftMouse>', 'scope': 'FileNode', 'callback': s.'activateFileNode' }) + call NERDTreeAddKeyMap({ 'key': '<2-LeftMouse>', 'scope': 'Bookmark', 'callback': s.'activateBookmark' }) + call NERDTreeAddKeyMap({ 'key': '<2-LeftMouse>', 'scope': 'all', 'callback': s.'activateAll' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapCustomOpen, 'scope':'FileNode', 'callback': s.'customOpenFile'}) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapCustomOpen, 'scope':'DirNode', 'callback': s.'customOpenDir'}) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapCustomOpen, 'scope':'Bookmark', 'callback': s.'customOpenBookmark'}) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapCustomOpen, 'scope':'all', 'callback': s.'activateAll' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapActivateNode, 'scope': 'DirNode', 'callback': s.'activateDirNode' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapActivateNode, 'scope': 'FileNode', 'callback': s.'activateFileNode' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapActivateNode, 'scope': 'Bookmark', 'callback': s.'activateBookmark' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapPreview, 'scope': 'Bookmark', 'callback': s.'previewBookmark' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapActivateNode, 'scope': 'all', 'callback': s.'activateAll' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenSplit, 'scope': 'Node', 'callback': s.'openHSplit' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenVSplit, 'scope': 'Node', 'callback': s.'openVSplit' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapPreview, 'scope': 'Node', 'callback': s.'previewNodeCurrent' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapPreviewVSplit, 'scope': 'Node', 'callback': s.'previewNodeVSplit' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapPreviewSplit, 'scope': 'Node', 'callback': s.'previewNodeHSplit' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenRecursively, 'scope': 'DirNode', 'callback': s.'openNodeRecursively' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapUpdir, 'scope': 'all', 'callback': s . 'upDirCurrentRootClosed' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapUpdirKeepOpen, 'scope': 'all', 'callback': s . 'upDirCurrentRootOpen' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapChangeRoot, 'scope': 'Node', 'callback': s . 'chRoot' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapChdir, 'scope': 'Node', 'callback': s.'chCwd' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapQuit, 'scope': 'all', 'callback': s.'closeTreeWindow' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapCWD, 'scope': 'all', 'callback': 'nerdtree#ui_glue#chRootCwd' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapRefreshRoot, 'scope': 'all', 'callback': s.'refreshRoot' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapRefresh, 'scope': 'Node', 'callback': s.'refreshCurrent' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapHelp, 'scope': 'all', 'callback': s.'displayHelp' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapToggleZoom, 'scope': 'all', 'callback': s.'toggleZoom' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapToggleHidden, 'scope': 'all', 'callback': s.'toggleShowHidden' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapToggleFilters, 'scope': 'all', 'callback': s.'toggleIgnoreFilter' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapToggleFiles, 'scope': 'all', 'callback': s.'toggleShowFiles' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapToggleBookmarks, 'scope': 'all', 'callback': s.'toggleShowBookmarks' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapCloseDir, 'scope': 'Node', 'callback': s.'closeCurrentDir' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapCloseChildren, 'scope': 'DirNode', 'callback': s.'closeChildren' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapMenu, 'scope': 'Node', 'callback': s.'showMenu' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapJumpParent, 'scope': 'Node', 'callback': s.'jumpToParent' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapJumpFirstChild, 'scope': 'Node', 'callback': s.'jumpToFirstChild' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapJumpLastChild, 'scope': 'Node', 'callback': s.'jumpToLastChild' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapJumpRoot, 'scope': 'all', 'callback': s.'jumpToRoot' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapJumpNextSibling, 'scope': 'Node', 'callback': s.'jumpToNextSibling' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapJumpPrevSibling, 'scope': 'Node', 'callback': s.'jumpToPrevSibling' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenInTab, 'scope': 'Node', 'callback': s . 'openInNewTab' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenInTabSilent, 'scope': 'Node', 'callback': s . 'openInNewTabSilent' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenInTab, 'scope': 'Bookmark', 'callback': s . 'openInNewTab' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenInTabSilent, 'scope': 'Bookmark', 'callback': s . 'openInNewTabSilent' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenExpl, 'scope': 'DirNode', 'callback': s.'openExplorer' }) + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapOpenExpl, 'scope': 'FileNode', 'callback': s.'openExplorer' }) + + call NERDTreeAddKeyMap({ 'key': g:NERDTreeMapDeleteBookmark, 'scope': 'Bookmark', 'callback': s.'deleteBookmark' }) +endfunction + + +"SECTION: Interface bindings {{{1 +"============================================================ + +"FUNCTION: s:customOpenFile() {{{1 +" Open file node with the 'custom' key, initially . +function! s:customOpenFile(node) abort + call a:node.activate(s:initCustomOpenArgs().file) +endfunction + +"FUNCTION: s:customOpenDir() {{{1 +" Open directory node with the 'custom' key, initially . +function! s:customOpenDir(node) abort + call s:activateDirNode(a:node, s:initCustomOpenArgs().dir) +endfunction + +"FUNCTION: s:customOpenBookmark() {{{1 +" Open bookmark node with the 'custom' key, initially . +function! s:customOpenBookmark(node) abort + if a:node.path.isDirectory + call a:node.activate(b:NERDTree, s:initCustomOpenArgs().dir) + else + call a:node.activate(b:NERDTree, s:initCustomOpenArgs().file) + endif +endfunction + +"FUNCTION: s:initCustomOpenArgs() {{{1 +" Make sure NERDTreeCustomOpenArgs has needed keys +function! s:initCustomOpenArgs() abort + let g:NERDTreeCustomOpenArgs = get(g:, 'NERDTreeCustomOpenArgs', {}) + return extend(g:NERDTreeCustomOpenArgs, {'file':{'reuse': 'all', 'where': 'p'}, 'dir':{}}, 'keep') +endfunction + +"FUNCTION: s:activateAll() {{{1 +"handle the user activating the updir line +function! s:activateAll() abort + if getline('.') ==# g:NERDTreeUI.UpDirLine() + return nerdtree#ui_glue#upDir(0) + endif +endfunction + +" FUNCTION: s:activateDirNode(directoryNode, options) {{{1 +" Open a directory with optional options +function! s:activateDirNode(directoryNode, ...) abort + + if a:directoryNode.isRoot() && a:directoryNode.isOpen + call nerdtree#echo('cannot close tree root') + return + endif + + call a:directoryNode.activate((a:0 > 0) ? a:1 : {}) +endfunction + +"FUNCTION: s:activateFileNode() {{{1 +"handle the user activating a tree node +function! s:activateFileNode(node) abort + call a:node.activate({'reuse': 'all', 'where': 'p'}) +endfunction + +"FUNCTION: s:activateBookmark(bookmark) {{{1 +"handle the user activating a bookmark +function! s:activateBookmark(bm) abort + call a:bm.activate(b:NERDTree, !a:bm.path.isDirectory ? {'where': 'p'} : {}) +endfunction + +" FUNCTION: nerdtree#ui_glue#bookmarkNode(name) {{{1 +" Associate the current node with the given name +function! nerdtree#ui_glue#bookmarkNode(...) abort + let currentNode = g:NERDTreeFileNode.GetSelected() + if currentNode !=# {} + let name = a:1 + if empty(name) + let name = currentNode.path.getLastPathComponent(0) + endif + try + call currentNode.bookmark(name) + call b:NERDTree.render() + catch /^NERDTree.IllegalBookmarkNameError/ + call nerdtree#echo('bookmark names must not contain spaces') + endtry + else + call nerdtree#echo('select a node first') + endif +endfunction + +" FUNCTION: s:chCwd(node) {{{1 +function! s:chCwd(node) abort + try + call a:node.path.changeToDir() + catch /^NERDTree.PathChangeError/ + call nerdtree#echoWarning('could not change cwd') + endtry +endfunction + +" FUNCTION: s:chRoot(node) {{{1 +" changes the current root to the selected one +function! s:chRoot(node) abort + call b:NERDTree.changeRoot(a:node) +endfunction + +" FUNCTION: s:nerdtree#ui_glue#chRootCwd() {{{1 +" Change the NERDTree root to match the current working directory. +function! nerdtree#ui_glue#chRootCwd() abort + NERDTreeCWD +endfunction + +" FUNCTION: nnerdtree#ui_glue#clearBookmarks(bookmarks) {{{1 +function! nerdtree#ui_glue#clearBookmarks(bookmarks) abort + if a:bookmarks ==# '' + let currentNode = g:NERDTreeFileNode.GetSelected() + if currentNode !=# {} + call currentNode.clearBookmarks() + endif + else + for name in split(a:bookmarks, ' ') + let bookmark = g:NERDTreeBookmark.BookmarkFor(name) + call bookmark.delete() + endfor + endif + call b:NERDTree.root.refresh() + call b:NERDTree.render() +endfunction + +" FUNCTION: s:closeChildren(node) {{{1 +" closes all childnodes of the current node +function! s:closeChildren(node) abort + call a:node.closeChildren() + call b:NERDTree.render() + call a:node.putCursorHere(0, 0) +endfunction + +" FUNCTION: s:closeCurrentDir(node) {{{1 +" Close the parent directory of the current node. +function! s:closeCurrentDir(node) abort + + if a:node.isRoot() + call nerdtree#echo('cannot close parent of tree root') + return + endif + + let l:parent = a:node.parent + + while l:parent.isCascadable() + let l:parent = l:parent.parent + endwhile + + if l:parent.isRoot() + call nerdtree#echo('cannot close tree root') + return + endif + + call l:parent.close() + call b:NERDTree.render() + call l:parent.putCursorHere(0, 0) +endfunction + +" FUNCTION: s:closeTreeWindow() {{{1 +" close the tree window +function! s:closeTreeWindow() abort + if b:NERDTree.isWinTree() && b:NERDTree.previousBuf() !=# -1 + exec 'buffer ' . b:NERDTree.previousBuf() + else + if winnr('$') > 1 + call g:NERDTree.Close() + else + call nerdtree#echo('Cannot close last window') + endif + endif +endfunction + +" FUNCTION: s:deleteBookmark(bookmark) {{{1 +" Prompt the user to confirm the deletion of the selected bookmark. +function! s:deleteBookmark(bookmark) abort + let l:message = 'Delete the bookmark "' . a:bookmark.name + \ . '" from the bookmark list?' + + let l:choices = "&Yes\n&No" + + echo | redraw + let l:selection = confirm(l:message, l:choices, 1, 'Warning') + + if l:selection !=# 1 + call nerdtree#echo('bookmark not deleted') + return + endif + + try + call a:bookmark.delete() + silent call b:NERDTree.root.refresh() + call b:NERDTree.render() + echo | redraw + catch /^NERDTree/ + call nerdtree#echoWarning('could not remove bookmark') + endtry +endfunction + +" FUNCTION: s:displayHelp() {{{1 +" toggles the help display +function! s:displayHelp() abort + call b:NERDTree.ui.toggleHelp() + call b:NERDTree.render() + call b:NERDTree.ui.centerView() +endfunction + +" FUNCTION: s:findAndRevealPath(pathStr) {{{1 +function! s:findAndRevealPath(pathStr) abort + let l:pathStr = !empty(a:pathStr) ? a:pathStr : expand('%:p') + let l:revealOpts = {} + + if empty(l:pathStr) + call nerdtree#echoWarning('no file for the current buffer') + return + endif + + if !filereadable(l:pathStr) + let l:pathStr = fnamemodify(l:pathStr, ':h') + let l:revealOpts['open'] = 1 + endif + + try + let l:pathStr = g:NERDTreePath.Resolve(l:pathStr) + let l:pathObj = g:NERDTreePath.New(l:pathStr) + catch /^NERDTree.InvalidArgumentsError/ + call nerdtree#echoWarning('invalid path') + return + endtry + + if !g:NERDTree.ExistsForTab() + try + let l:cwd = g:NERDTreePath.New(getcwd()) + catch /^NERDTree.InvalidArgumentsError/ + call nerdtree#echo('current directory does not exist.') + let l:cwd = l:pathObj.getParent() + endtry + + if l:pathObj.isUnder(l:cwd) + call g:NERDTreeCreator.CreateTabTree(l:cwd.str()) + else + call g:NERDTreeCreator.CreateTabTree(l:pathObj.getParent().str()) + endif + else + NERDTreeFocus + + if !l:pathObj.isUnder(b:NERDTree.root.path) + call s:chRoot(g:NERDTreeDirNode.New(l:pathObj.getParent(), b:NERDTree)) + endif + endif + + if l:pathObj.isHiddenUnder(b:NERDTree.root.path) + call b:NERDTree.ui.setShowHidden(1) + endif + + let l:node = b:NERDTree.root.reveal(l:pathObj, l:revealOpts) + call b:NERDTree.render() + call l:node.putCursorHere(1, 0) +endfunction + +"FUNCTION: s:handleLeftClick() {{{1 +"Checks if the click should open the current node +function! s:handleLeftClick() abort + let currentNode = g:NERDTreeFileNode.GetSelected() + if currentNode !=# {} + + "the dir arrows are multibyte chars, and vim's string functions only + "deal with single bytes - so split the line up with the hack below and + "take the line substring manually + let line = split(getline(line('.')), '\zs') + let startToCur = '' + for i in range(0,len(line)-1) + let startToCur .= line[i] + endfor + + if currentNode.path.isDirectory + if startToCur =~# g:NERDTreeUI.MarkupReg() && startToCur =~# '[+~'.g:NERDTreeDirArrowExpandable.g:NERDTreeDirArrowCollapsible.'] \?$' + call currentNode.activate() + return + endif + endif + + if (g:NERDTreeMouseMode ==# 2 && currentNode.path.isDirectory) || g:NERDTreeMouseMode ==# 3 + let char = strpart(startToCur, strlen(startToCur)-1, 1) + if char !~# g:NERDTreeUI.MarkupReg() + if currentNode.path.isDirectory + call currentNode.activate() + else + call currentNode.activate({'reuse': 'all', 'where': 'p'}) + endif + return + endif + endif + endif +endfunction + +" FUNCTION: s:handleMiddleMouse() {{{1 +function! s:handleMiddleMouse() abort + + " A middle mouse click does not automatically position the cursor as one + " would expect. Forcing the execution of a regular left mouse click here + " fixes this problem. + execute "normal! \" + + let l:currentNode = g:NERDTreeFileNode.GetSelected() + if empty(l:currentNode) + call nerdtree#echoError('use the pointer to select a node') + return + endif + + if l:currentNode.path.isDirectory + call l:currentNode.openExplorer() + else + call l:currentNode.open({'where': 'h'}) + endif +endfunction + +" FUNCTION: nerdtree#ui_glue#invokeKeyMap(key) {{{1 +"this is needed since I cant figure out how to invoke dict functions from a +"key map +function! nerdtree#ui_glue#invokeKeyMap(key) abort + call g:NERDTreeKeyMap.Invoke(a:key) +endfunction + +" FUNCTION: s:jumpToFirstChild(node) {{{1 +function! s:jumpToFirstChild(node) abort + call s:jumpToChild(a:node, 0) +endfunction + +" FUNCTION: s:jumpToLastChild(node) {{{1 +function! s:jumpToLastChild(node) abort + call s:jumpToChild(a:node, 1) +endfunction + +" FUNCTION: s:jumpToChild(node, last) {{{1 +" Jump to the first or last child node at the same file system level. +" +" Args: +" node: the node on which the cursor currently sits +" last: 1 (true) if jumping to last child, 0 (false) if jumping to first +function! s:jumpToChild(node, last) abort + let l:node = a:node.path.isDirectory ? a:node.getCascadeRoot() : a:node + + if l:node.isRoot() + return + endif + + let l:parent = l:node.parent + let l:children = l:parent.getVisibleChildren() + + let l:target = a:last ? l:children[len(l:children) - 1] : l:children[0] + + call l:target.putCursorHere(1, 0) + call b:NERDTree.ui.centerView() +endfunction + +" FUNCTION: s:jumpToParent(node) {{{1 +" Move the cursor to the parent of the specified node. For a cascade, move to +" the parent of the cascade's first node. At the root node, do nothing. +function! s:jumpToParent(node) abort + let l:node = a:node.path.isDirectory ? a:node.getCascadeRoot() : a:node + + if l:node.isRoot() + return + endif + + if empty(l:node.parent) + call nerdtree#echo('could not jump to parent node') + return + endif + + call l:node.parent.putCursorHere(1, 0) + call b:NERDTree.ui.centerView() +endfunction + +" FUNCTION: s:jumpToRoot() {{{1 +" moves the cursor to the root node +function! s:jumpToRoot() abort + call b:NERDTree.root.putCursorHere(1, 0) + call b:NERDTree.ui.centerView() +endfunction + +" FUNCTION: s:jumpToNextSibling(node) {{{1 +function! s:jumpToNextSibling(node) abort + call s:jumpToSibling(a:node, 1) +endfunction + +" FUNCTION: s:jumpToPrevSibling(node) {{{1 +function! s:jumpToPrevSibling(node) abort + call s:jumpToSibling(a:node, 0) +endfunction + +" FUNCTION: s:jumpToSibling(node, forward) {{{1 +" Move the cursor to the next or previous node at the same file system level. +" +" Args: +" node: the node on which the cursor currently sits +" forward: 0 to jump to previous sibling, 1 to jump to next sibling +function! s:jumpToSibling(node, forward) abort + let l:node = a:node.path.isDirectory ? a:node.getCascadeRoot() : a:node + let l:sibling = l:node.findSibling(a:forward) + + if empty(l:sibling) + return + endif + + call l:sibling.putCursorHere(1, 0) + call b:NERDTree.ui.centerView() +endfunction + +" FUNCTION: nerdtree#ui_glue#openBookmark(name) {{{1 +" Open the Bookmark that has the specified name. This function provides the +" implementation for the :OpenBookmark command. +function! nerdtree#ui_glue#openBookmark(name) abort + try + let l:bookmark = g:NERDTreeBookmark.BookmarkFor(a:name) + catch /^NERDTree.BookmarkNotFoundError/ + call nerdtree#echoError('bookmark "' . a:name . '" not found') + return + endtry + if l:bookmark.path.isDirectory + call l:bookmark.open(b:NERDTree) + else + call l:bookmark.open(b:NERDTree, {'where': 'p'}) + endif +endfunction + +" FUNCTION: s:openHSplit(target) {{{1 +function! s:openHSplit(target) abort + call a:target.activate({'where': 'h'}) +endfunction + +" FUNCTION: s:openVSplit(target) {{{1 +function! s:openVSplit(target) abort + call a:target.activate({'where': 'v'}) +endfunction + +" FUNCTION: s:openExplorer(node) {{{1 +function! s:openExplorer(node) abort + call a:node.openExplorer() +endfunction + +" FUNCTION: s:openInNewTab(target) {{{1 +function! s:openInNewTab(target) abort + let l:opener = g:NERDTreeOpener.New(a:target.path, {'where': 't'}) + call l:opener.open(a:target) +endfunction + +" FUNCTION: s:openInNewTabSilent(target) {{{1 +function! s:openInNewTabSilent(target) abort + let l:opener = g:NERDTreeOpener.New(a:target.path, {'where': 't', 'stay': 1}) + call l:opener.open(a:target) +endfunction + +" FUNCTION: s:openNodeRecursively(node) {{{1 +function! s:openNodeRecursively(node) abort + call nerdtree#echo('Recursively opening node. Please wait...') + call a:node.openRecursively() + call b:NERDTree.render() + call nerdtree#echo('') +endfunction + +" FUNCTION: s:previewBookmark(bookmark) {{{1 +function! s:previewBookmark(bookmark) abort + if a:bookmark.path.isDirectory + execute 'NERDTreeFind '.a:bookmark.path.str() + else + call a:bookmark.activate(b:NERDTree, {'stay': 1, 'where': 'p', 'keepopen': 1}) + endif +endfunction + +"FUNCTION: s:previewNodeCurrent(node) {{{1 +function! s:previewNodeCurrent(node) abort + call a:node.open({'stay': 1, 'where': 'p', 'keepopen': 1}) +endfunction + +"FUNCTION: s:previewNodeHSplit(node) {{{1 +function! s:previewNodeHSplit(node) abort + call a:node.open({'stay': 1, 'where': 'h', 'keepopen': 1}) +endfunction + +"FUNCTION: s:previewNodeVSplit(node) {{{1 +function! s:previewNodeVSplit(node) abort + call a:node.open({'stay': 1, 'where': 'v', 'keepopen': 1}) +endfunction + +" FUNCTION: nerdtree#ui_glue#revealBookmark(name) {{{1 +" put the cursor on the node associate with the given name +function! nerdtree#ui_glue#revealBookmark(name) abort + try + let targetNode = g:NERDTreeBookmark.GetNodeForName(a:name, 0, b:NERDTree) + call targetNode.putCursorHere(0, 1) + catch /^NERDTree.BookmarkNotFoundError/ + call nerdtree#echo('Bookmark isnt cached under the current root') + endtry +endfunction + +" FUNCTION: s:refreshRoot() {{{1 +" Reloads the current root. All nodes below this will be lost and the root dir +" will be reloaded. +function! s:refreshRoot() abort + if !g:NERDTree.IsOpen() + return + endif + call nerdtree#echo('Refreshing the root node. This could take a while...') + + let l:curWin = winnr() + call nerdtree#exec(g:NERDTree.GetWinNum() . 'wincmd w', 1) + call b:NERDTree.root.refresh() + call b:NERDTree.render() + redraw + call nerdtree#exec(l:curWin . 'wincmd w', 1) + call nerdtree#echo('') +endfunction + +" FUNCTION: s:refreshCurrent(node) {{{1 +" refreshes the root for the current node +function! s:refreshCurrent(node) abort + let node = a:node + if !node.path.isDirectory + let node = node.parent + endif + + call nerdtree#echo('Refreshing node. This could take a while...') + call node.refresh() + call b:NERDTree.render() + call nerdtree#echo('') +endfunction + +" FUNCTION: nerdtree#ui_glue#setupCommands() {{{1 +function! nerdtree#ui_glue#setupCommands() abort + command! -n=? -complete=dir -bar NERDTree :call g:NERDTreeCreator.CreateTabTree('') + command! -n=? -complete=dir -bar NERDTreeToggle :call g:NERDTreeCreator.ToggleTabTree('') + command! -n=0 -bar NERDTreeClose :call g:NERDTree.Close() + command! -n=1 -complete=customlist,nerdtree#completeBookmarks -bar NERDTreeFromBookmark call g:NERDTreeCreator.CreateTabTree('') + command! -n=0 -bar NERDTreeMirror call g:NERDTreeCreator.CreateMirror() + command! -n=? -complete=file -bar NERDTreeFind call s:findAndRevealPath('') + command! -n=0 -bar NERDTreeRefreshRoot call s:refreshRoot() + command! -n=0 -bar NERDTreeFocus call NERDTreeFocus() + command! -n=0 -bar NERDTreeCWD call NERDTreeCWD() +endfunction + +" Function: s:SID() {{{1 +function! s:SID() abort + if !exists('s:sid') + let s:sid = matchstr(expand(''), '\zs\d\+\ze_SID$') + endif + return s:sid +endfun + +" FUNCTION: s:showMenu(node) {{{1 +function! s:showMenu(node) abort + let mc = g:NERDTreeMenuController.New(g:NERDTreeMenuItem.AllEnabled()) + call mc.showMenu() +endfunction + +" FUNCTION: s:toggleIgnoreFilter() {{{1 +function! s:toggleIgnoreFilter() abort + call b:NERDTree.ui.toggleIgnoreFilter() +endfunction + +" FUNCTION: s:toggleShowBookmarks() {{{1 +function! s:toggleShowBookmarks() abort + call b:NERDTree.ui.toggleShowBookmarks() +endfunction + +" FUNCTION: s:toggleShowFiles() {{{1 +function! s:toggleShowFiles() abort + call b:NERDTree.ui.toggleShowFiles() +endfunction + +" FUNCTION: s:toggleShowHidden() {{{1 +" toggles the display of hidden files +function! s:toggleShowHidden() abort + call b:NERDTree.ui.toggleShowHidden() +endfunction + +" FUNCTION: s:toggleZoom() {{{1 +function! s:toggleZoom() abort + call b:NERDTree.ui.toggleZoom() +endfunction + +" FUNCTION: nerdtree#ui_glue#upDir(preserveState) {{{1 +" Move the NERDTree up one level. +" +" Args: +" preserveState: if 1, the current root is left open when the new tree is +" rendered; if 0, the current root node is closed +function! nerdtree#ui_glue#upDir(preserveState) abort + + try + call b:NERDTree.root.cacheParent() + catch /^NERDTree.CannotCacheParentError/ + call nerdtree#echo('already at root directory') + return + endtry + + let l:oldRoot = b:NERDTree.root + let l:newRoot = b:NERDTree.root.parent + + call l:newRoot.open() + call l:newRoot.transplantChild(l:oldRoot) + + if !a:preserveState + call l:oldRoot.close() + endif + + call b:NERDTree.changeRoot(l:newRoot) + call l:oldRoot.putCursorHere(0, 0) +endfunction + +" FUNCTION: s:upDirCurrentRootOpen() {{{1 +function! s:upDirCurrentRootOpen() abort + call nerdtree#ui_glue#upDir(1) +endfunction + +" FUNCTION: s:upDirCurrentRootClosed() {{{1 +function! s:upDirCurrentRootClosed() abort + call nerdtree#ui_glue#upDir(0) +endfunction + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/_vim/.vim/plugged/nerdtree/doc/NERDTree.txt b/_vim/.vim/plugged/nerdtree/doc/NERDTree.txt new file mode 100644 index 0000000..47d65cc --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/doc/NERDTree.txt @@ -0,0 +1,1528 @@ +*NERDTree.txt* A tree explorer plugin to rule the Vim world. Bwahahaha!! + + # #### #### ~ + ### \/#|### |/#### ~ + d8 888 ##\/#/ \||/##/_/##/_# ~ + d88 888 ee ,e e, ### \/###|/ \/ # ### ~ + d88888 888 88b d88 88b ##_\_#\_\## | #/###_/_#### ~ + 888 888 888 888 , ## #### # \ #| / #### ##/## ~ + 888 888 888 "YeeP" __#_--###`. |{,###---###-~ ~ + \ % @% ~ + Y88b Y88 888'Y88 888 88e 888 88e \%@% 88P'888'Y88 ~ + Y88b Y8 888 ,'Y 888 888D 888 888b %o% P' 888 'Y 888,8, ,e e, ,e e, ~ + b Y88b Y 888C8 888 88" 888 8888D %@% 888 888 " d88 88b d88 88b ~ + 8b Y88b 888 ",d 888 b, 888 888P %@% 888 888 888 , 888 , ~ + 88b Y88b 888,d88 888 88b, 888 88" %@% 888 888 "YeeP" "YeeP" ~ + , -=-%{@%-^- _ ~ + ejm `} Reference Manual ~ + { ~ +============================================================================== +CONTENTS *NERDTree-contents* + + 1.Intro...................................|NERDTree| + 2.Functionality provided..................|NERDTreeFunctionality| + 2.1.Global commands...................|NERDTreeGlobalCommands| + 2.2.Bookmarks.........................|NERDTreeBookmarks| + 2.2.1.The bookmark table..........|NERDTreeBookmarkTable| + 2.2.2.Bookmark commands...........|NERDTreeBookmarkCommands| + 2.2.3.Invalid bookmarks...........|NERDTreeInvalidBookmarks| + 2.3.NERDTree mappings.................|NERDTreeMappings| + 2.4.The NERDTree menu.................|NERDTreeMenu| + 3.Settings................................|NERDTreeSettings| + 3.1.Settings summary..................|NERDTreeSettingsSummary| + 3.2.Settings details..................|NERDTreeSettingsDetails| + 4.The NERDTree API........................|NERDTreeAPI| + 4.1.Key map API.......................|NERDTreeKeymapAPI| + 4.2.Menu API..........................|NERDTreeMenuAPI| + 4.3.Menu API..........................|NERDTreeAddPathFilter()| + 4.4.Path Listener API.................|NERDTreePathListenerAPI| + 5.About...................................|NERDTreeAbout| + 6.License.................................|NERDTreeLicense| + +============================================================================== +1. Intro *NERDTree* + +What is this "NERDTree"?? + +The NERDTree allows you to explore your filesystem and to open files and +directories. It presents the filesystem to you in the form of a tree which you +manipulate with the keyboard and/or mouse. It also allows you to perform +simple filesystem operations. + +The following features and functionality are provided by the NERDTree: + * Files and directories are displayed in a hierarchical tree structure + * Different highlighting is provided for the following types of nodes: + * files + * directories + * sym-links + * windows .lnk files + * read-only files + * executable files + * Many (customisable) mappings are provided to manipulate the tree: + * Mappings to open/close/explore directory nodes + * Mappings to open files in new/existing windows/tabs + * Mappings to change the current root of the tree + * Mappings to navigate around the tree + * ... + * Directories and files can be bookmarked. + * Most NERDTree navigation can also be done with the mouse + * Filtering of tree content (can be toggled at runtime) + * custom file filters to prevent e.g. vim backup files being displayed + * optional displaying of hidden files (. files) + * files can be "turned off" so that only directories are displayed + * The position and size of the NERDTree window can be customised + * The order in which the nodes in the tree are listed can be customised. + * A model of your filesystem is created/maintained as you explore it. This + has several advantages: + * All filesystem information is cached and is only re-read on demand + * If you revisit a part of the tree that you left earlier in your + session, the directory nodes will be opened/closed as you left them + * The script remembers the cursor position and window position in the NERD + tree so you can toggle it off (or just close the tree window) and then + reopen it (with NERDTreeToggle) the NERDTree window will appear exactly + as you left it + * You can have a separate NERDTree for each tab, share trees across tabs, + or a mix of both. + * By default the script overrides the default file browser (netrw), so if + you :edit a directory a (slightly modified) NERDTree will appear in the + current window + * A programmable menu system is provided (simulates right clicking on a + node) + * one default menu plugin is provided to perform basic filesystem + operations (create/delete/move/copy files/directories) + * There's an API for adding your own keymappings + + +============================================================================== +2. Functionality provided *NERDTreeFunctionality* + +------------------------------------------------------------------------------ +2.1. Global Commands *NERDTreeGlobalCommands* + +:NERDTree [ | ] *:NERDTree* + Opens a fresh NERDTree. The root of the tree depends on the argument + given. There are 3 cases: If no argument is given, the current directory + will be used. If a directory is given, that will be used. If a bookmark + name is given, the corresponding directory will be used. For example: > + :NERDTree /home/marty/vim7/src + :NERDTree foo (foo is the name of a bookmark) +< +:NERDTreeVCS [ | ] *:NERDTreeVCS* + Like |:NERDTree|, but searches up the directory tree to find the top of + the version control system repository, and roots the NERDTree there. It + works with Git, Subversion, Mercurial, Bazaar, and Darcs repositories. A + couple of examples: > + :NERDTreeVCS /home/marty/nerdtree/doc (opens /home/marty/nerdtree) + :NERDTreeVCS (opens root of repository containing CWD) +< +:NERDTreeFromBookmark *:NERDTreeFromBookmark* + Opens a fresh NERDTree with the root initialized to the dir for + . The only reason to use this command over :NERDTree is for + the completion (which is for bookmarks rather than directories). + +:NERDTreeToggle [ | ] *:NERDTreeToggle* + If a NERDTree already exists for this tab, it is reopened and rendered + again. If or is given, the root of NERDTree + is set to that path. If no NERDTree exists for this tab then this command + acts the same as the |:NERDTree| command. + +:NERDTreeToggleVCS [ | ] *:NERDTreeToggleVCS* + Like |:NERDTreeToggle|, but searches up the directory tree to find the top of + the version control system repository, and roots the NERDTree there. It + works with Git, Subversion, Mercurial, Bazaar, and Darcs repositories. A + couple of examples: > + :NERDTreeToggleVCS /home/marty/nerdtree/doc (opens /home/marty/nerdtree) + :NERDTreeToggleVCS (opens root of repository containing CWD) + +:NERDTreeFocus *:NERDTreeFocus* + Opens (or reopens) the NERDTree if it is not currently visible; + otherwise, the cursor is moved to the already-open NERDTree. + +:NERDTreeMirror *:NERDTreeMirror* + Shares an existing NERDTree, from another tab, in the current tab. + Changes made to one tree are reflected in both as they are actually the + same buffer. + + If only one other NERDTree exists, that tree is automatically mirrored. + If more than one exists, the script will ask which tree to mirror. + +:NERDTreeClose *:NERDTreeClose* + Close the NERDTree in this tab. + +:NERDTreeFind [] *:NERDTreeFind* + Without the optional argument, find and reveal the file for the active + buffer in the NERDTree window. With the argument, find and + reveal the specified path. + + Focus will be shifted to the NERDTree window, and the cursor will be + placed on the tree node for the determined path. If a NERDTree for the + current tab does not exist, a new one will be initialized. + +:NERDTreeCWD *:NERDTreeCWD* + Change the NERDTree root to the current working directory. If no + NERDTree exists for this tab, a new one is opened. + +:NERDTreeRefreshRoot *:NERDTreeRefreshRoot* + Refreshes the NERDTree root node. + +------------------------------------------------------------------------------ +2.2. Bookmarks *NERDTreeBookmarks* + +Bookmarks in the NERDTree are a way to tag files or directories of interest. +For example, you could use bookmarks to tag all of your project directories. + +------------------------------------------------------------------------------ +2.2.1. The Bookmark Table *NERDTreeBookmarkTable* + +If the bookmark table is active (see |NERDTree-B| and +|NERDTreeShowBookmarks|), it will be rendered above the tree. You can double +click bookmarks or use the |NERDTree-o| mapping to activate them. See also, +|NERDTree-t| and |NERDTree-T| + +------------------------------------------------------------------------------ +2.2.2. Bookmark commands *NERDTreeBookmarkCommands* + +Note: The following commands are only available within the NERDTree buffer. + +:Bookmark [] + Bookmark the current node as . If there is already a + bookmark, it is overwritten. must not contain spaces. + If is not provided, it defaults to the file or directory name. + For directories, a trailing slash is present. + +:BookmarkToRoot + Make the directory corresponding to the new root. If a treenode + corresponding to is already cached somewhere in the tree then + the current tree will be used, otherwise a fresh tree will be opened. + Note that if points to a file then its parent will be used + instead. + +:RevealBookmark + If the node is cached under the current root then it will be revealed + (i.e. directory nodes above it will be opened) and the cursor will be + placed on it. + +:OpenBookmark + The Bookmark named is opened as if |NERDTree-o| was applied to + its entry in the Bookmark table. If the Bookmark points to a directory, + it is made the new root of the current NERDTree. If the Bookmark points + to a file, that file is opened for editing in another window. + +:ClearBookmarks [] + Remove all the given bookmarks. If no bookmarks are given then remove all + bookmarks on the current node. + +:ClearAllBookmarks + Remove all bookmarks. + +:EditBookmarks + Opens the bookmarks file for manual editing, e.g. for removing invalid + bookmarks. + +:ReadBookmarks + Re-read the bookmarks in the |NERDTreeBookmarksFile|. + +See also |:NERDTree| and |:NERDTreeFromBookmark|. + +------------------------------------------------------------------------------ +2.2.3. Invalid Bookmarks *NERDTreeInvalidBookmarks* + +If invalid bookmarks are detected, the script will issue an error message and +the invalid bookmarks will become unavailable for use. + +These bookmarks will still be stored in the bookmarks file (see +|NERDTreeBookmarksFile|), down at the bottom. There will always be a blank line +after the valid bookmarks but before the invalid ones. + +Each line in the bookmarks file represents one bookmark. The proper format is: + + +You can use the :EditBookmarks command to open the bookmarks file for editing. +After you have corrected any invalid bookmarks, either restart vim, or run +:ReadBookmarks from the NERDTree window. + +------------------------------------------------------------------------------ +2.3. NERDTree Mappings *NERDTreeMappings* + +Default~ +Key Description help-tag~ + +o........Open files, directories and bookmarks......................|NERDTree-o| +go.......Open selected file, but leave cursor in the NERDTree......|NERDTree-go| + Open selected bookmark dir in current NERDTree +t........Open selected node/bookmark in a new tab...................|NERDTree-t| +T........Same as 't' but keep the focus on the current tab..........|NERDTree-T| +i........Open selected file in a split window.......................|NERDTree-i| +gi.......Same as i, but leave the cursor on the NERDTree...........|NERDTree-gi| +s........Open selected file in a new vsplit.........................|NERDTree-s| +gs.......Same as s, but leave the cursor on the NERDTree...........|NERDTree-gs| +.....User-definable custom open action.......................|NERDTree-| +O........Recursively open the selected directory....................|NERDTree-O| +x........Close the current nodes parent.............................|NERDTree-x| +X........Recursively close all children of the current node.........|NERDTree-X| +e........Edit the current dir.......................................|NERDTree-e| + +double-click....same as |NERDTree-o|. +middle-click....same as |NERDTree-i| for files, and |NERDTree-e| for dirs. + +D........Delete the current bookmark ...............................|NERDTree-D| + +P........Jump to the root node......................................|NERDTree-P| +p........Jump to current nodes parent...............................|NERDTree-p| +K........Jump up inside directories at the current tree depth.......|NERDTree-K| +J........Jump down inside directories at the current tree depth.....|NERDTree-J| +....Jump down to next sibling of the current directory.......|NERDTree-C-J| +....Jump up to previous sibling of the current directory.....|NERDTree-C-K| + +C........Change the tree root to the selected dir...................|NERDTree-C| +u........Move the tree root up one directory........................|NERDTree-u| +U........Same as 'u' except the old root node is left open..........|NERDTree-U| +r........Recursively refresh the current directory..................|NERDTree-r| +R........Recursively refresh the current root.......................|NERDTree-R| +m........Display the NERDTree menu..................................|NERDTree-m| +cd.......Change the CWD to the dir of the selected node............|NERDTree-cd| +CD.......Change tree root to the CWD...............................|NERDTree-CD| + +I........Toggle whether hidden files displayed......................|NERDTree-I| +f........Toggle whether the file filters are used...................|NERDTree-f| +F........Toggle whether files are displayed.........................|NERDTree-F| +B........Toggle whether the bookmark table is displayed.............|NERDTree-B| + +q........Close the NERDTree window..................................|NERDTree-q| +A........Zoom (maximize/minimize) the NERDTree window...............|NERDTree-A| +?........Toggle the display of the quick help.......................|NERDTree-?| + +------------------------------------------------------------------------------ + *NERDTree-o* +Default key: o +Map setting: NERDTreeMapActivateNode +Applies to: files and directories. + +If a file node is selected, it is opened in the previous window. + +If a directory is selected it is opened or closed depending on its current +state. + +If a bookmark that links to a directory is selected then that directory +becomes the new root. + +If a bookmark that links to a file is selected then that file is opened in the +previous window. + +------------------------------------------------------------------------------ + *NERDTree-go* +Default key: go +Map setting: NERDTreeMapPreview +Applies to: files. + +If a file node or a bookmark that links to a file is selected, it is opened in +the previous window, but the cursor does not move. + +If a bookmark that links to a directory is selected, that directory is found +in the current NERDTree. If the directory couldn't be found, a new NERDTree is +created. + +The default key combo for this mapping is "g" + NERDTreeMapActivateNode (see +|NERDTree-o|). + +------------------------------------------------------------------------------ + *NERDTree-t* +Default key: t +Map setting: *NERDTreeMapOpenInTab* +Applies to: files and directories. + +Opens the selected file in a new tab. If a directory is selected, a fresh +NERDTree for that directory is opened in a new tab. + +If a bookmark which points to a directory is selected, open a NERDTree for +that directory in a new tab. If the bookmark points to a file, open that file +in a new tab. + +------------------------------------------------------------------------------ + *NERDTree-T* +Default key: T +Map setting: *NERDTreeMapOpenInTabSilent* +Applies to: files and directories. + +The same as |NERDTree-t| except that the focus is kept in the current tab. + +------------------------------------------------------------------------------ + *NERDTree-i* +Default key: i +Map setting: *NERDTreeMapOpenSplit* +Applies to: files. + +Opens the selected file in a new split window and puts the cursor in the new +window. + +------------------------------------------------------------------------------ + *NERDTree-gi* +Default key: gi +Map setting: *NERDTreeMapPreviewSplit* +Applies to: files. + +The same as |NERDTree-i| except that the cursor is not moved. + +The default key combo for this mapping is "g" + NERDTreeMapOpenSplit (see +|NERDTree-i|). + +------------------------------------------------------------------------------ + *NERDTree-s* +Default key: s +Map setting: *NERDTreeMapOpenVSplit* +Applies to: files. + +Opens the selected file in a new vertically split window and puts the cursor +in the new window. + +------------------------------------------------------------------------------ + *NERDTree-gs* +Default key: gs +Map setting: *NERDTreeMapPreviewVSplit* +Applies to: files. + +The same as |NERDTree-s| except that the cursor is not moved. + +The default key combo for this mapping is "g" + NERDTreeMapOpenVSplit (see +|NERDTree-s|). + +------------------------------------------------------------------------------ + *NERDTree-* +Default key: +Map setting: *NERDTreeMapCustomOpen* +Applies to: files, directories, and bookmarks + +Performs a customized open action on the selected node. This allows the user +to define an action that behaves differently from any of the standard +keys. See |NERDTreeCustomOpenArgs| for more details. +------------------------------------------------------------------------------ + *NERDTree-O* +Default key: O +Map setting: *NERDTreeMapOpenRecursively* +Applies to: directories. + +Recursively opens the selected directory. + +All files and directories are cached, but if a directory would not be +displayed due to file filters (see |NERDTreeIgnore| |NERDTree-f|) or the +hidden file filter (see |NERDTreeShowHidden|) then its contents are not +cached. This is handy, especially if you have .svn directories. + +------------------------------------------------------------------------------ + *NERDTree-x* +Default key: x +Map setting: *NERDTreeMapCloseDir* +Applies to: files and directories. + +Closes the parent of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-X* +Default key: X +Map setting: *NERDTreeMapCloseChildren* +Applies to: directories. + +Recursively closes all children of the selected directory. + +Tip: To quickly "reset" the tree, use |NERDTree-P| with this mapping. + +------------------------------------------------------------------------------ + *NERDTree-e* +Default key: e +Map setting: *NERDTreeMapOpenExpl* +Applies to: files and directories. + +|:edit|s the selected directory, or the selected file's directory. This could +result in a NERDTree or a netrw being opened, depending on +|NERDTreeHijackNetrw|. + +------------------------------------------------------------------------------ + *NERDTree-D* +Default key: D +Map setting: *NERDTreeMapDeleteBookmark* +Applies to: lines in the bookmarks table + +Deletes the currently selected bookmark. + +------------------------------------------------------------------------------ + *NERDTree-P* +Default key: P +Map setting: *NERDTreeMapJumpRoot* +Applies to: no restrictions. + +Jump to the tree root. + +------------------------------------------------------------------------------ + *NERDTree-p* +Default key: p +Map setting: *NERDTreeMapJumpParent* +Applies to: files and directories. + +Jump to the parent node of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-K* +Default key: K +Map setting: *NERDTreeMapJumpFirstChild* +Applies to: files and directories. + +Jump to the first child of the current nodes parent. + +If the cursor is already on the first node then do the following: + * loop back thru the siblings of the current nodes parent until we find an + open dir with children + * go to the first child of that node + +------------------------------------------------------------------------------ + *NERDTree-J* +Default key: J +Map setting: *NERDTreeMapJumpLastChild* +Applies to: files and directories. + +Jump to the last child of the current nodes parent. + +If the cursor is already on the last node then do the following: + * loop forward thru the siblings of the current nodes parent until we find + an open dir with children + * go to the last child of that node + +------------------------------------------------------------------------------ + *NERDTree-C-J* +Default key: +Map setting: *NERDTreeMapJumpNextSibling* +Applies to: files and directories. + +Jump to the next sibling of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-C-K* +Default key: +Map setting: *NERDTreeMapJumpPrevSibling* +Applies to: files and directories. + +Jump to the previous sibling of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-C* +Default key: C +Map setting: *NERDTreeMapChangeRoot* +Applies to: files and directories. + +Make the selected directory node the new tree root. If a file is selected, its +parent is used. + +------------------------------------------------------------------------------ + *NERDTree-u* +Default key: u +Map setting: *NERDTreeMapUpdir* +Applies to: no restrictions. + +Move the tree root up a dir (like doing a "cd .."). + +------------------------------------------------------------------------------ + *NERDTree-U* +Default key: U +Map setting: *NERDTreeMapUpdirKeepOpen* +Applies to: no restrictions. + +Like |NERDTree-u| except that the old tree root is kept open. + +------------------------------------------------------------------------------ + *NERDTree-r* +Default key: r +Map setting: *NERDTreeMapRefresh* +Applies to: files and directories. + +If a dir is selected, recursively refresh that dir, i.e. scan the filesystem +for changes and represent them in the tree. + +If a file node is selected then the above is done on it's parent. + +------------------------------------------------------------------------------ + *NERDTree-R* +Default key: R +Map setting: *NERDTreeMapRefreshRoot* +Applies to: no restrictions. + +Recursively refresh the tree root. + +------------------------------------------------------------------------------ + *NERDTree-m* +Default key: m +Map setting: *NERDTreeMapMenu* +Applies to: files and directories. + +Display the NERDTree menu. See |NERDTreeMenu| for details. + +------------------------------------------------------------------------------ + *NERDTree-cd* +Default key: cd +Map setting: *NERDTreeMapChdir* +Applies to: files and directories. + +Change Vim's current working directory to that of the selected node. + +------------------------------------------------------------------------------ + *NERDTree-CD* +Default key: CD +Map setting: *NERDTreeMapCWD* +Applies to: no restrictions. + +Change the NERDTree root to Vim's current working directory. + +------------------------------------------------------------------------------ + *NERDTree-I* +Default key: I +Map setting: *NERDTreeMapToggleHidden* +Applies to: no restrictions. + +Toggles whether hidden files (i.e. "dot files") are displayed. + +------------------------------------------------------------------------------ + *NERDTree-f* +Default key: f +Map setting: *NERDTreeMapToggleFilters* +Applies to: no restrictions. + +Toggles whether file filters are used. See |NERDTreeIgnore| for details. + +------------------------------------------------------------------------------ + *NERDTree-F* +Default key: F +Map setting: *NERDTreeMapToggleFiles* +Applies to: no restrictions. + +Toggles whether file nodes are displayed. + +------------------------------------------------------------------------------ + *NERDTree-B* +Default key: B +Map setting: *NERDTreeMapToggleBookmarks* +Applies to: no restrictions. + +Toggles whether the bookmarks table is displayed. + +------------------------------------------------------------------------------ + *NERDTree-q* +Default key: q +Map setting: *NERDTreeMapQuit* +Applies to: no restrictions. + +Closes the NERDTree window. + +------------------------------------------------------------------------------ + *NERDTree-A* +Default key: A +Map setting: *NERDTreeMapToggleZoom* +Applies to: no restrictions. + +Maximize (zoom) and minimize the NERDTree window. + +------------------------------------------------------------------------------ + *NERDTree-?* +Default key: ? +Map setting: *NERDTreeMapHelp* +Applies to: no restrictions. + +Toggles whether the quickhelp is displayed. + +------------------------------------------------------------------------------ + 2.3. The NERDTree menu *NERDTreeMenu* + +The NERDTree has a menu that can be programmed via the an API (see +|NERDTreeMenuAPI|). The idea is to simulate the "right click" menus that most +file explorers have. + +The script comes with two default menu plugins: exec_menuitem.vim and +fs_menu.vim. fs_menu.vim adds some basic filesystem operations to the menu for +creating/deleting/moving/copying files and dirs. exec_menuitem.vim provides a +menu item to execute executable files. + +Related tags: |NERDTree-m| |NERDTreeApi| + +------------------------------------------------------------------------------ + *NERDTreeMenu-j* +Default key: j +Map option: *NERDTreeMenuDown* +Applies to: The NERDTree menu. + +Moves the cursor down. + +------------------------------------------------------------------------------ + *NERDTreeMenu-k* +Default key: k +Map option: *NERDTreeMenuUp* +Applies to: The NERDTree menu. + +Moves the cursor up. + +============================================================================== +3. Customisation *NERDTreeSettings* + + +------------------------------------------------------------------------------ +3.1. Customisation summary *NERDTreeSettingsSummary* + +The plugin provides the following settings that can customise the behaviour +the NERDTree. These settings should be set in your vimrc, using `:let`. + +|loaded_nerd_tree| Turns off the script. + +|NERDTreeAutoCenter| Controls whether the NERDTree window centers + when the cursor moves within a specified + distance to the top/bottom of the window. + +|NERDTreeAutoCenterThreshold| Controls the sensitivity of autocentering. + +|NERDTreeCaseSensitiveSort| Tells the NERDTree whether to be case + sensitive or not when sorting nodes. + +|NERDTreeNaturalSort| Tells the NERDTree whether to use natural sort + order or not when sorting nodes. + +|NERDTreeSortHiddenFirst| Tells the NERDTree whether to take the dot at + the beginning of the hidden file names into + account when sorting nodes. + +|NERDTreeChDirMode| Tells the NERDTree if/when it should change + vim's current working directory. + +|NERDTreeHighlightCursorline| Tell the NERDTree whether to highlight the + current cursor line. + +|NERDTreeHijackNetrw| Tell the NERDTree whether to replace the netrw + autocommands for exploring local directories. + +|NERDTreeIgnore| Tells the NERDTree which files to ignore. + +|NERDTreeRespectWildIgnore| Tells the NERDTree to respect `'wildignore'`. + +|NERDTreeBookmarksFile| Where the bookmarks are stored. + +|NERDTreeBookmarksSort| Control how the Bookmark table is sorted. + +|NERDTreeMarkBookmarks| Render bookmarked nodes with markers. + +|NERDTreeMouseMode| Manage the interpretation of mouse clicks. + +|NERDTreeQuitOnOpen| Closes the tree window or bookmark table after + opening a file. + +|NERDTreeShowBookmarks| Tells the NERDTree whether to display the + bookmarks table on startup. + +|NERDTreeShowFiles| Tells the NERDTree whether to display files in + the tree on startup. + +|NERDTreeShowHidden| Tells the NERDTree whether to display hidden + files on startup. + +|NERDTreeShowLineNumbers| Tells the NERDTree whether to display line + numbers in the tree window. + +|NERDTreeSortOrder| Tell the NERDTree how to sort the nodes in the + tree. + +|NERDTreeStatusline| Set a statusline for NERDTree windows. + +|NERDTreeWinPos| Tells the script where to put the NERDTree + window. + +|NERDTreeWinSize| Sets the window size when the NERDTree is + opened. + +|NERDTreeWinSizeMax| Sets the maximum window size when the NERDTree + is zoomed. + +|NERDTreeMinimalUI| Disables display of the 'Bookmarks' label and + 'Press ? for help' text. + +|NERDTreeMinimalMenu| Use a compact menu that fits on a single line + for adding, copying, deleting, etc + +|NERDTreeCascadeSingleChildDir| + Collapses on the same line directories that have + only one child directory. + +|NERDTreeCascadeOpenSingleChildDir| + Cascade open while selected directory has only + one child that also is a directory. + +|NERDTreeAutoDeleteBuffer| Tells the NERDTree to automatically remove a + buffer when a file is being deleted or renamed + via a context menu command. + +|NERDTreeCreatePrefix| Specify a prefix to be used when creating the + NERDTree window. + +|NERDTreeRemoveFileCmd| Specify a custom shell command to be used when + deleting files. Note that it should include one + space character at the end of the command and it + applies only to files. + +|NERDTreeRemoveDirCmd| Specify a custom shell command to be used when + deleting directories. Note that it should + include one space character at the end of the + command and it applies only to directories. + +|NERDTreeDirArrowCollapsible| These characters indicate when a directory is +|NERDTreeDirArrowExpandable| either collapsible or expandable. + +|NERDTreeNodeDelimiter| A single character that is used to separate the + file or directory name from the rest of the + characters on the line of text. + +|NERDTreeCustomOpenArgs| A dictionary with values that control how a node + is opened with the |NERDTree-| key. + +------------------------------------------------------------------------------ +3.2. Customisation details *NERDTreeSettingsDetails* + +To enable any of the below settings you should put an appropriate > + let = + + let loaded_nerd_tree=1 +< +------------------------------------------------------------------------------ + *NERDTreeAutoCenter* +Values: 0 or 1. +Default: 1 + +If set to 1, the NERDTree window will center around the cursor if it moves to +within |NERDTreeAutoCenterThreshold| lines of the top/bottom of the window. + +This is ONLY done in response to tree navigation mappings, +i.e. |NERDTree-J| |NERDTree-K| |NERDTree-C-J| |NERDTree-C-K| |NERDTree-p| +|NERDTree-P| + +The centering is done with a |zz| operation. + +------------------------------------------------------------------------------ + *NERDTreeAutoCenterThreshold* +Values: Any natural number. +Default: 3 + +This setting controls the "sensitivity" of the NERDTree auto centering. See +|NERDTreeAutoCenter| for details. + +------------------------------------------------------------------------------ + *NERDTreeCaseSensitiveSort* +Values: 0 or 1. +Default: 0. + +By default the NERDTree does not sort nodes case sensitively, i.e. nodes +could appear like this: > + bar.c + Baz.c + blarg.c + boner.c + Foo.c +< +But, if you set this setting to 1 then the case of the nodes will be taken +into account. The above nodes would then be sorted like this: > + Baz.c + Foo.c + bar.c + blarg.c + boner.c +< +------------------------------------------------------------------------------ + *NERDTreeNaturalSort* +Values: 0 or 1. +Default: 0. + +By default the NERDTree does not sort nodes in natural sort order, i.e. nodes +could appear like this: > + z1.txt + z10.txt + z100.txt + z11.txt + z110.txt + z2.txt + z20.txt + z3.txt +< +But if you set this setting to 1 then the natural sort order will be used. The +above nodes would then be sorted like this: > + z1.txt + z2.txt + z3.txt + z10.txt + z11.txt + z20.txt + z100.txt + z110.txt +< +------------------------------------------------------------------------------ + *NERDTreeUseTCD* +Values: 0 or 1. +Default: 0. + +By default, NERDTree will use the `:cd` command to change the current working +directory. If this setting is turned on, and the `:tcd` command is available, it +will be used instead. + +------------------------------------------------------------------------------ + *NERDTreeChDirMode* +Values: 0, 1, 2, or 3. +Default: 0. + +Use this setting to tell the script when (if at all) to change the current +working directory (CWD) for vim. + +If it is set to 0 then the CWD is never changed by the NERDTree. + +If set to 1 then the CWD is changed when the NERDTree is first loaded to the +directory it is initialized in. For example, if you start the NERDTree with > + :NERDTree /home/marty/foobar +< +then the CWD will be changed to /home/marty/foobar and will not be changed +again unless you init another NERDTree with a similar command. + +If the setting is set to 2 then it behaves the same as if set to 1 except that +the CWD is changed whenever the tree root is changed. For example, if the CWD +is /home/marty/foobar and you make the node for /home/marty/foobar/baz the new +root then the CWD will become /home/marty/foobar/baz. + +If the set to 3, then it behaves the same as if set to 2, and the CWD is +changed whenever changing tabs to whatever the tree root is on that tab. + +------------------------------------------------------------------------------ + *NERDTreeHighlightCursorline* +Values: 0 or 1. +Default: 1. + +If set to 1, the current cursor line in the NERDTree buffer will be +highlighted. This is done using the `'cursorline'` Vim option. + +------------------------------------------------------------------------------ + *NERDTreeHijackNetrw* +Values: 0 or 1. +Default: 1. + +If set to 1, doing a > + :edit +< +will open up a window level NERDTree instead of a netrw in the target window. + +Window level trees behaves slightly different from a regular trees in the +following respects: + 1. 'o' will open the selected file in the same window as the tree, + replacing it. + 2. you can have one tree per window - instead of per tab. + +------------------------------------------------------------------------------ + *NERDTreeIgnore* +Values: a list of regular expressions. +Default: ['\~$']. + +This setting is used to specify which files the NERDTree should ignore. It +must be a list of regular expressions. When the NERDTree is rendered, any +files/dirs that match any of the regex's in NERDTreeIgnore won't be +displayed. + +For example if you put the following line in your vimrc: > + let NERDTreeIgnore=['\.vim$', '\~$'] +< +then all files ending in .vim or ~ will be ignored. + +There are 2 magic flags that can be appended to the end of each regular +expression to specify that the regex should match only files or only dirs. +These flags are "[[dir]]" and "[[file]]". Example: > + let NERDTreeIgnore=['\.d$[[dir]]', '\.o$[[file]]'] +< +This will cause all dirs ending in ".d" to be ignored and all files ending in +".o" to be ignored. + +Note: to tell the NERDTree not to ignore any files you must use the following +line: > + let NERDTreeIgnore=[] +< +The file filters can be turned on and off dynamically with the |NERDTree-f| +mapping. + +------------------------------------------------------------------------------ + *NERDTreeRespectWildIgnore* +Values: 0 or 1. +Default: 0. + +If set to 1, the `'wildignore'` setting is respected. + +------------------------------------------------------------------------------ + *NERDTreeBookmarksFile* +Values: a path +Default: $HOME/.NERDTreeBookmarks + +This is where bookmarks are saved. See |NERDTreeBookmarkCommands|. + +------------------------------------------------------------------------------ + *NERDTreeBookmarksSort* +Values: 0, 1, or 2 +Default: 1 + +This setting controls the method by which the list of user bookmarks is +sorted. When sorted, bookmarks will render in alphabetical order by name. + +If set to 0, the bookmarks list is not sorted. +If set to 1, the bookmarks list is sorted in a case-insensitive manner. +If set to 2, the bookmarks list is sorted in a case-sensitive manner. + +------------------------------------------------------------------------------ + *NERDTreeMarkBookmarks* +Values: 0 or 1 +Default: 1 + +If set to 1, Bookmarks will be specially marked whenever the NERDTree is +rendered. Users of the |NERDTreeMinimalUI| setting may prefer to disable +this setting for even less visual clutter. + +------------------------------------------------------------------------------ + *NERDTreeMouseMode* +Values: 1, 2 or 3. +Default: 1. + +If set to 1 then a double click on a node is required to open it. +If set to 2 then a single click will open directory nodes, while a double +click will still be required for file nodes. +If set to 3 then a single click will open any node. + +Note: a double click anywhere on a line that a tree node is on will +activate it, but all single-click activations must be done on name of the node +itself. For example, if you have the following node: > + | | |-application.rb +< +then (to single click activate it) you must click somewhere in +'application.rb'. + +------------------------------------------------------------------------------ + *NERDTreeQuitOnOpen* +Values: 0,1,2 or 3. +Default: 0 + +This setting governs whether the NERDTree window or the bookmarks table closes +after opening a file with the |NERDTree-o|, |NERDTree-i|, |NERDTree-t| and +|NERDTree-T| mappings. + + Value | NERDTree Window Behavior + -------+------------------------------------------------------- + 0 | No change + 1 | Closes after opening a file + 2 | Closes the bookmark table after opening a bookmark + 3(1+2) | Same as both 1 and 2 + +------------------------------------------------------------------------------ + *NERDTreeShowBookmarks* +Values: 0 or 1. +Default: 0. + +If this setting is set to 1 then the bookmarks table will be displayed. + +This setting can be toggled dynamically, per tree, with the |NERDTree-B| +mapping. + +------------------------------------------------------------------------------ + *NERDTreeShowFiles* +Values: 0 or 1. +Default: 1. + +If this setting is set to 1 then files are displayed in the NERDTree. If it +is set to 0 then only directories are displayed. + +This setting can be toggled dynamically, per tree, with the |NERDTree-F| +mapping and is useful for drastically shrinking the tree when you are +navigating to a different part of the tree. + +------------------------------------------------------------------------------ + *NERDTreeShowHidden* +Values: 0 or 1. +Default: 0. + +This setting tells vim whether to display hidden files by default. This +setting can be dynamically toggled, per tree, with the |NERDTree-I| mapping. +Use one of the follow lines for this setting: > + let NERDTreeShowHidden=0 + let NERDTreeShowHidden=1 +< +------------------------------------------------------------------------------ + *NERDTreeShowLineNumbers* +Values: 0 or 1. +Default: 0. + +This setting tells vim whether to display line numbers for the NERDTree +window. Use one of the follow lines for this setting: > + let NERDTreeShowLineNumbers=0 + let NERDTreeShowLineNumbers=1 +< +------------------------------------------------------------------------------ + *NERDTreeSortOrder* +Values: a list of regular expressions. +Default: ['\/$', '*', '\.swp$', '\.bak$', '\~$'] + +This setting is a list of regular expressions which are used to group or sort +the nodes under their parent. + +For example, if the setting is: > + ['\.vim$', '\.c$', '\.h$', '*', 'foobar'] +< +then all .vim files will be grouped at the top, followed by all .c files then +all .h files. All files containing the string 'foobar' will be placed at the +end. The star is a special flag: it tells the script that every node that +doesn't match any of the other regexps should be placed here. + +If no star is present in NERDTreeSortOrder, then one is automatically +appended to the end of the list. + +The regex '\/$' should be used to match directory nodes. + +Files can also be sorted by 1) the modification timestamp, 2) the size, or 3) +the extension. Directories are always sorted by name. To accomplish this, the +following special flags are used: + [[timestamp]] [[-timestamp]] [[size]] [[-size]] [[extension]] +The hyphen specifies a descending sort; extensions are sorted in ascending +order only. If placed at the beginning of the list, files are sorted according +to these flags first, and then grouped by the remaining items in the list. If +the flags are in any other position of the list, this special sorting is done +secondarily. See examples 4, 5, and 6 below. + +After this sorting is done, the files in each group are sorted alphabetically. + +Examples: > + (1) ['*', '\/$'] + (2) [] + (3) ['\/$', '\.rb$', '\.php$', '*', '\.swp$', '\.bak$', '\~$'] + (4) ['[[-size]]'] + (5) ['\/$', '*', '[[timestamp]]'] + (6) ['foo','\/$','[[extension]]'] +< +1. Directories will appear last, everything else will appear above. +2. Everything will simply appear in alphabetical order. +3. Dirs will appear first, then ruby and php. Swap files, bak files and vim + backup files will appear last with everything else preceding them. +4. Everything is sorted by size, largest to smallest, with directories + considered to have size 0 bytes. +5. Directories will appear first alphabetically, followed by files, sorted by + timestamp, oldest first. +6. Files and directories matching 'foo' first, followed by other directories, + then all other files. Each section of files is sorted by file extension. + +------------------------------------------------------------------------------ + *NERDTreeStatusline* +Values: Any valid `'statusline'` setting. +Default: %{exists('b:NERDTree')?b:NERDTree.root.path.str():''} + +Defines the value for the `'statusline'` setting in NERDTree windows. + +Note: The setting is actually applied using |:let-&|, not |:set|, so +escaping spaces is not necessary. + +Setting this to -1 will deactivate it so that your global `'statusline'` +setting is used. + +------------------------------------------------------------------------------ + *NERDTreeWinPos* +Values: "left" or "right" +Default: "left". + +This setting is used to determine where NERDTree window is placed on the +screen. + +This setting makes it possible to use two different explorer plugins +simultaneously. For example, you could have the taglist plugin on the left of +the window and the NERDTree on the right. + +------------------------------------------------------------------------------ + *NERDTreeWinSize* +Values: a positive integer. +Default: 31. + +This setting is used to change the size of the NERDTree when it is loaded. + +------------------------------------------------------------------------------ + *NERDTreeMinimalUI* +Values: 0 or 1 +Default: 0 + +This setting disables the 'Bookmarks' label 'Press ? for help' text. Use one +of the following lines for this setting: > + let NERDTreeMinimalUI=0 + let NERDTreeMinimalUI=1 +< +------------------------------------------------------------------------------ + *NERDTreeMinimalMenu* +Values: 0 or 1 +Default: 0 + +This setting makes NERDTree use a smaller, more compact menu for adding, +copying, deleting nodes. This menu fits on a single line so Vim doesn't need to +scroll down to present it. This setting is recommended for users already +familiar with the menu items. It will look similar to this: + + Menu: [ (a)dd ,m,d,r,o,q,c,l] (Use j/k/enter or shortcut): + +An action can be selected with its shortcut key or with the NERDTreeMenuUp and +NERDTreeMenuDown keys, then pressing enter. + +Use one of the following lines for this setting: > + let NERDTreeMinimalMenu=0 + let NERDTreeMinimalMenu=1 +< +------------------------------------------------------------------------------ + *NERDTreeCascadeSingleChildDir* +Values: 0 or 1 +Default: 1. + +When displaying dir nodes, this setting tells NERDTree to collapse dirs that +have only one child. Use one of the following lines for this setting: > + let NERDTreeCascadeSingleChildDir=0 + let NERDTreeCascadeSingleChildDir=1 +< +------------------------------------------------------------------------------ + *NERDTreeCascadeOpenSingleChildDir* +Values: 0 or 1 +Default: 1. + +When opening dir nodes, this setting tells NERDTree to recursively open dirs +that have only one child which is also a dir. NERDTree will stop when it finds +a dir that contains anything but another single dir. This setting also causes +the |NERDTree-x| mapping to close dirs in the same manner. This setting may be +useful for Java projects. Use one of the following lines for this setting: > + let NERDTreeCascadeOpenSingleChildDir=0 + let NERDTreeCascadeOpenSingleChildDir=1 +< +------------------------------------------------------------------------------ + *NERDTreeAutoDeleteBuffer* +Values: 0 or 1 +Default: 0. + +When using a context menu to delete or rename a file you may also want to +delete the buffer which is no more valid. If the setting is not set you will +see a confirmation if you really want to delete an old buffer. If you always +press 'y' then it's worth it to set this setting to 1. Use one of the +following lines for this setting: > + let NERDTreeAutoDeleteBuffer=0 + let NERDTreeAutoDeleteBuffer=1 +< +------------------------------------------------------------------------------ + *NERDTreeCreatePrefix* +Values: Any valid command prefix. +Default: "silent". + +Internally, NERDTree uses the |:edit| command to create a buffer in which to +display its tree view. You can augment this behavior by specifying a prefix +string such as "keepalt" or similar. For example, to have NERDTree create its +tree window using `silent keepalt keepjumps edit`: > + let NERDTreeCreatePrefix='silent keepalt keepjumps' +< +------------------------------------------------------------------------------ + *NERDTreeDirArrowCollapsible* *NERDTreeDirArrowExpandable* +Values: Any single character. +Defaults: Windows: ~ and + Others: ▾ and ▸ + +These characters indicate whether a directory is collapsible or expandable. +Example: > + let NERDTreeDirArrowExpandable=">" + let NERDTreeDirArrowCollapsible="v" +< +They can be set to "\u00a0" to replace the arrows with a non-breaking space. +If you do this you may need to change the node delimiter. See +|NERDTreeNodeDelimiter|. You cannot use the same character for both the arrows +and the delimiter. + +Alternatively, they can be set to '' (an empty string). This removes the +arrows and the single space that follows them, shifting the entire tree two +character positions to the left. + +------------------------------------------------------------------------------ + *NERDTreeNodeDelimiter* +Values: Any single character. +Default: varies (see below) + +This character is used to separate the file or directory name from the rest of +the characters in the line of text. It allows filenames to contain special +characters that are otherwise used in the NERDTree, such as square brackets, +braces, trailing asterisk, and leading space. For more details, see the +responsible pull request: https://github.com/preservim/nerdtree/pull/868. + +The default value of this variable depends on the features compiled into your +vim and the values of |NERDTreeDirArrowCollapsible| and +|NERDTreeDirArrowExpandable|. + * If your vim is compiled with the +conceal feature, it is the "\x07" (BELL) + character, and it is hidden by setting 'conceallevel' to 3. If you use + autocommands, make sure none of them change that setting in the NERDTree_* + buffers. + * If your vim does NOT have the +conceal feature and you're using "\u00a0" + (non-breaking space) to hide the directory arrows, "\u00b7" (middle dot) + is used as the default delimiter. + * If neither condition above applies, NERDTree uses "\u00a0" (non-breaking + space) as the default delimiter. + +In the 2nd and 3rd cases, NERDTree will use the Ignore highlight group to +"hide" the delimiter. It should appear as an empty space. + +Other plugins can interfere with these defaults, so if you need to change the +delimiter, be sure to choose a character that won't appear in your filenames +or any of the flags set by your installed NERDTree plugins. The suggestions +below are but a few of the many possibilities. Remember to use double quotes +when specifying by hex or Unicode. > + let NERDTreeNodeDelimiter="\x07" "bell + let NERDTreeNodeDelimiter="\u00b7" "middle dot + let NERDTreeNodeDelimiter="\u00a0" "non-breaking space + let NERDTreeNodeDelimiter="😀" "smiley face +< +------------------------------------------------------------------------------ + *NERDTreeCustomOpenArgs* +Values: A nested dictionary, as described below +Default: {'file': {'reuse': 'all', 'where': 'p'}, 'dir': {}} + +This dictionary contains two keys, 'file' and 'dir', whose values each are +another dictionary. The inner dictionary is a set of parameters used by +|NERDTree-| to open a file or directory. Setting these parameters allows you +to customize the way the node is opened. The default value matches what +|NERDTree-o| does. To change that behavior, use these keys and +values in the inner dictionaries: + +'where': specifies whether the node should be opened in a new split ("h" or + "v"), in a new tab ("t") or, in the last window ("p"). +'reuse': if file is already shown in a window, jump there; takes values + "all", "currenttab", or empty +'keepopen': boolean (0 or 1); if true, the tree window will not be closed +'stay': boolean (0 or 1); if true, remain in tree window after opening + +For example: +To open files and directories (creating a new NERDTree) in a new tab, > + {'file':{'where': 't'}, 'dir':{'where':'t'}} +< +To open a file always in the current tab, and expand directories in place, > + {'file': {'reuse':'currenttab', 'where':'p', 'keepopen':1, 'stay':1}} +< +============================================================================== +4. The NERDTree API *NERDTreeAPI* + +The NERDTree script allows you to add custom key mappings and menu items via +a set of API calls. Any scripts that use this API should be placed in +~/.vim/nerdtree_plugin/ (*nix) or ~/vimfiles/nerdtree_plugin (windows). + +The script exposes some prototype objects that can be used to manipulate the +tree and/or get information from it: > + g:NERDTreePath + g:NERDTreeDirNode + g:NERDTreeFileNode + g:NERDTreeBookmark +< +See the code/comments in NERD_tree.vim to find how to use these objects. The +following code conventions are used: + * class members start with a capital letter + * instance members start with a lower case letter + * private members start with an underscore + +See this blog post for more details: + http://got-ravings.blogspot.com/2008/09/vim-pr0n-prototype-based-objects.html + +A number of API functions take a callback argument to call. The callback can +be either a string with the name of a function to call, or a |Funcref| object +which will be called directly. + +------------------------------------------------------------------------------ +4.1. Key map API *NERDTreeKeymapAPI* + +NERDTreeAddKeyMap({options}) *NERDTreeAddKeyMap()* + Adds a new keymapping for all NERDTree buffers. + {options} must be a dictionary, and must contain the following keys: + "key" - the trigger key for the new mapping + "callback" - the function the new mapping will be bound to + "quickhelpText" - the text that will appear in the quickhelp (see + |NERDTree-?|) + "override" - if 1 then this new mapping will override whatever previous + mapping was defined for the key/scope combo. Useful for overriding the + default mappings. + + Additionally, a "scope" argument may be supplied. This constrains the + mapping so that it is only activated if the cursor is on a certain object. + That object is then passed into the handling method. Possible values are: + + "FileNode" .... a file node + "DirNode" ..... a directory node + "Node" ........ a file node OR a directory node + "Bookmark" .... a bookmark + "all" ......... global scope; handler receives no arguments (default) + + Example: > + call NERDTreeAddKeyMap({ + \ 'key': 'foo', + \ 'callback': 'NERDTreeCDHandler', + \ 'quickhelpText': 'echo full path of current node', + \ 'scope': 'DirNode' }) + + function! NERDTreeCDHandler(dirnode) + call a:dirnode.changeToDir() + endfunction +< + This code should sit in a file like ~/.vim/nerdtree_plugin/mymapping.vim. + It adds a (redundant) mapping on 'foo' which changes vim's CWD to that of + the current dir node. Note this mapping will only fire when the cursor is + on a directory node. + +------------------------------------------------------------------------------ +4.2. Menu API *NERDTreeMenuAPI* + +NERDTreeAddSubmenu({options}) *NERDTreeAddSubmenu()* + Creates and returns a new submenu. + + {options} must be a dictionary and must contain the following keys: + "text" - the text of the submenu that the user will see + "shortcut" - a shortcut key for the submenu (need not be unique) + + The following keys are optional: + "isActiveCallback" - a function that will be called to determine whether + this submenu item will be displayed or not. The callback function must + return 0 or 1. + "parent" - the parent submenu of the new submenu (returned from a previous + invocation of NERDTreeAddSubmenu()). If this key is left out then the new + submenu will sit under the top level menu. + + See below for an example. + +NERDTreeAddMenuItem({options}) *NERDTreeAddMenuItem()* + Adds a new menu item to the NERDTree menu (see |NERDTreeMenu|). + + {options} must be a dictionary and must contain the + following keys: + "text" - the text of the menu item which the user will see + "shortcut" - a shortcut key for the menu item (need not be unique) + "callback" - the function that will be called when the user activates the + menu item. + + The following keys are optional: + "isActiveCallback" - a function that will be called to determine whether + this menu item will be displayed or not. The callback function must return + 0 or 1. + "parent" - if the menu item belongs under a submenu then this key must be + specified. This value for this key will be the object that + was returned when the submenu was created with |NERDTreeAddSubmenu()|. + + See below for an example. + +NERDTreeAddMenuSeparator([{options}]) *NERDTreeAddMenuSeparator()* + Adds a menu separator (a row of dashes). + + {options} is an optional dictionary that may contain the following keys: + "isActiveCallback" - see description in |NERDTreeAddMenuItem()|. + +Below is an example of the menu API in action. > + call NERDTreeAddMenuSeparator() + + call NERDTreeAddMenuItem({ + \ 'text': 'a (t)op level menu item', + \ 'shortcut': 't', + \ 'callback': 'SomeFunction' }) + + let submenu = NERDTreeAddSubmenu({ + \ 'text': 'a (s)ub menu', + \ 'shortcut': 's' }) + + call NERDTreeAddMenuItem({ + \ 'text': '(n)ested item 1', + \ 'shortcut': 'n', + \ 'callback': 'SomeFunction', + \ 'parent': submenu }) + + call NERDTreeAddMenuItem({ + \ 'text': '(n)ested item 2', + \ 'shortcut': 'n', + \ 'callback': 'SomeFunction', + \ 'parent': submenu }) +< +This will create the following menu: > + -------------------- + a (t)op level menu item + a (s)ub menu +< +Where selecting "a (s)ub menu" will lead to a second menu: > + (n)ested item 1 + (n)ested item 2 +< +When any of the 3 concrete menu items are selected the function "SomeFunction" +will be called. + +------------------------------------------------------------------------------ +4.3 NERDTreeAddPathFilter(callback) *NERDTreeAddPathFilter()* + +Path filters are essentially a more powerful version of |NERDTreeIgnore|. +If the simple regex matching in |NERDTreeIgnore| is not enough then use +|NERDTreeAddPathFilter()| to add a callback function that paths will be +checked against when the decision to ignore them is made. Example > + + call NERDTreeAddPathFilter('MyFilter') + + function! MyFilter(params) + "params is a dict containing keys: 'nerdtree' and 'path' which are + "g:NERDTree and g:NERDTreePath objects + + "return 1 to ignore params['path'] or 0 otherwise + endfunction +< +------------------------------------------------------------------------------ +4.4 Path Listener API *NERDTreePathListenerAPI* + +Use this API if you want to run a callback for events on Path objects. E.G > + + call g:NERDTreePathNotifier.AddListener("init", "MyListener") + + ".... + + function! MyListener(event) + "This function will be called whenever a Path object is created. + + "a:event is an object that contains a bunch of relevant info - + "including the affected path. See lib/nerdtree/event.vim for details. + endfunction +< +Current events supported: + init ~ + refresh ~ + refreshFlags ~ + +------------------------------------------------------------------------------ +NERDTreeRender() *NERDTreeRender()* + Re-renders the NERDTree buffer. Useful if you change the state of the + tree and you want to it to be reflected in the UI. + +============================================================================== +5. About *NERDTreeAbout* + +The author of the NERDTree is a terrible terrible monster called Martyzilla +who gobbles up small children with milk and sugar for breakfast. + +He can be reached at martin.grenfell at gmail dot com. He would love to hear +from you, so feel free to send him suggestions and/or comments about this +plugin. Don't be shy --- the worst he can do is slaughter you and stuff you +in the fridge for later ;) + +Martyzilla recruited two other unwitting accomplices to become his minions in +his quest to conquer the Vim plugin world. While he may still love to receive +your emails, the best way to send suggestions, bug reports, and questions is +to submit an issue at http://github.com/preservim/nerdtree/issues. + +The latest stable and development versions are on Github. + Stable: http://github.com/preservim/nerdtree (master branch) + Development: http://github.com/preservim/nerdtree/branches + +Title Credit: + * http://ascii.co.uk/art/tree + + * Patrick Gillespie's Text ASCII Art Generator + http://patorjk.com/software/taag + http://patorjk.com/software/taag/#p=display&f=Rozzo&t=the%20NERD%20Tree + +============================================================================== +6. License *NERDTreeLicense* + +The NERDTree is released under the wtfpl. +See http://sam.zoy.org/wtfpl/COPYING. + +------------------------------------------------------------------------------ + vim:tw=78:ts=8:ft=help:noet:nospell diff --git a/_vim/.vim/plugged/nerdtree/nerdtree_plugin/exec_menuitem.vim b/_vim/.vim/plugged/nerdtree/nerdtree_plugin/exec_menuitem.vim new file mode 100644 index 0000000..fb6c486 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/nerdtree_plugin/exec_menuitem.vim @@ -0,0 +1,40 @@ +" ============================================================================ +" File: exec_menuitem.vim +" Description: plugin for NERD Tree that provides an execute file menu item +" Maintainer: Martin Grenfell +" License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +" ============================================================================ +if exists('g:loaded_nerdtree_exec_menuitem') + finish +endif +let g:loaded_nerdtree_exec_menuitem = 1 + +call NERDTreeAddMenuItem({ + \ 'text': '(!)Execute file', + \ 'shortcut': '!', + \ 'callback': 'NERDTreeExecFile', + \ 'isActiveCallback': 'NERDTreeExecFileActive' }) + +function! NERDTreeExecFileActive() + let node = g:NERDTreeFileNode.GetSelected() + return !node.path.isDirectory && node.path.isExecutable +endfunction + +function! NERDTreeExecFile() + let treenode = g:NERDTreeFileNode.GetSelected() + echo "==========================================================\n" + echo "Complete the command to execute (add arguments etc):\n" + let cmd = treenode.path.str({'escape': 1}) + let cmd = input(':!', cmd . ' ') + + if cmd !=# '' + exec ':!' . cmd + else + echo 'Aborted' + endif +endfunction diff --git a/_vim/.vim/plugged/nerdtree/nerdtree_plugin/fs_menu.vim b/_vim/.vim/plugged/nerdtree/nerdtree_plugin/fs_menu.vim new file mode 100644 index 0000000..9750976 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/nerdtree_plugin/fs_menu.vim @@ -0,0 +1,454 @@ +" ============================================================================ +" File: fs_menu.vim +" Description: plugin for the NERD Tree that provides a file system menu +" Maintainer: Martin Grenfell +" License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +" ============================================================================ +if exists('g:loaded_nerdtree_fs_menu') + finish +endif +let g:loaded_nerdtree_fs_menu = 1 + +"Automatically delete the buffer after deleting or renaming a file +if !exists('g:NERDTreeAutoDeleteBuffer') + let g:NERDTreeAutoDeleteBuffer = 0 +endif + +call NERDTreeAddMenuItem({'text': '(a)dd a childnode', 'shortcut': 'a', 'callback': 'NERDTreeAddNode'}) +call NERDTreeAddMenuItem({'text': '(m)ove the current node', 'shortcut': 'm', 'callback': 'NERDTreeMoveNode'}) +call NERDTreeAddMenuItem({'text': '(d)elete the current node', 'shortcut': 'd', 'callback': 'NERDTreeDeleteNode'}) + +if has('gui_mac') || has('gui_macvim') || has('mac') + call NERDTreeAddMenuItem({'text': '(r)eveal in Finder the current node', 'shortcut': 'r', 'callback': 'NERDTreeRevealInFinder'}) + call NERDTreeAddMenuItem({'text': '(o)pen the current node with system editor', 'shortcut': 'o', 'callback': 'NERDTreeExecuteFile'}) + call NERDTreeAddMenuItem({'text': '(q)uicklook the current node', 'shortcut': 'q', 'callback': 'NERDTreeQuickLook'}) +endif + +if executable('xdg-open') + call NERDTreeAddMenuItem({'text': '(r)eveal the current node in file manager', 'shortcut': 'r', 'callback': 'NERDTreeRevealFileLinux'}) + call NERDTreeAddMenuItem({'text': '(o)pen the current node with system editor', 'shortcut': 'o', 'callback': 'NERDTreeExecuteFileLinux'}) +endif + +if g:NERDTreePath.CopyingSupported() + call NERDTreeAddMenuItem({'text': '(c)opy the current node', 'shortcut': 'c', 'callback': 'NERDTreeCopyNode'}) +endif +call NERDTreeAddMenuItem({'text': (has('clipboard')?'copy (p)ath to clipboard':'print (p)ath to screen'), 'shortcut': 'p', 'callback': 'NERDTreeCopyPath'}) + +if has('unix') || has('osx') + call NERDTreeAddMenuItem({'text': '(l)ist the current node', 'shortcut': 'l', 'callback': 'NERDTreeListNode'}) +else + call NERDTreeAddMenuItem({'text': '(l)ist the current node', 'shortcut': 'l', 'callback': 'NERDTreeListNodeWin32'}) +endif + +"FUNCTION: s:inputPrompt(action){{{1 +"returns the string that should be prompted to the user for the given action +" +"Args: +"action: the action that is being performed, e.g. 'delete' +function! s:inputPrompt(action) + if a:action ==# 'add' + let title = 'Add a childnode' + let info = "Enter the dir/file name to be created. Dirs end with a '/'" + let minimal = 'Add node:' + + elseif a:action ==# 'copy' + let title = 'Copy the current node' + let info = 'Enter the new path to copy the node to:' + let minimal = 'Copy to:' + + elseif a:action ==# 'delete' + let title = 'Delete the current node' + let info = 'Are you sure you wish to delete the node:' + let minimal = 'Delete?' + + elseif a:action ==# 'deleteNonEmpty' + let title = 'Delete the current node' + let info = "STOP! Directory is not empty! To delete, type 'yes'" + let minimal = 'Delete directory?' + + elseif a:action ==# 'move' + let title = 'Rename the current node' + let info = 'Enter the new path for the node:' + let minimal = 'Move to:' + endif + + if g:NERDTreeMenuController.isMinimal() + redraw! " Clear the menu + return minimal . ' ' + else + let divider = '==========================================================' + return title . "\n" . divider . "\n" . info . "\n" + end +endfunction + +"FUNCTION: s:promptToDelBuffer(bufnum, msg){{{1 +"prints out the given msg and, if the user responds by pushing 'y' then the +"buffer with the given bufnum is deleted +" +"Args: +"bufnum: the buffer that may be deleted +"msg: a message that will be echoed to the user asking them if they wish to +" del the buffer +function! s:promptToDelBuffer(bufnum, msg) + echo a:msg + if g:NERDTreeAutoDeleteBuffer || nr2char(getchar()) ==# 'y' + " 1. ensure that all windows which display the just deleted filename + " now display an empty buffer (so a layout is preserved). + " Is not it better to close single tabs with this file only ? + let s:originalTabNumber = tabpagenr() + let s:originalWindowNumber = winnr() + " Go to the next buffer in buffer list if at least one extra buffer is listed + " Otherwise open a new empty buffer + if v:version >= 800 + let l:listedBufferCount = len(getbufinfo({'buflisted':1})) + elseif v:version >= 702 + let l:listedBufferCount = len(filter(range(1, bufnr('$')), 'buflisted(v:val)')) + else + " Ignore buffer count in this case to make sure we keep the old + " behavior + let l:listedBufferCount = 0 + endif + if l:listedBufferCount > 1 + call nerdtree#exec('tabdo windo if winbufnr(0) ==# ' . a:bufnum . " | exec ':bnext! ' | endif", 1) + else + call nerdtree#exec('tabdo windo if winbufnr(0) ==# ' . a:bufnum . " | exec ':enew! ' | endif", 1) + endif + call nerdtree#exec('tabnext ' . s:originalTabNumber, 1) + call nerdtree#exec(s:originalWindowNumber . 'wincmd w', 1) + " 3. We don't need a previous buffer anymore + call nerdtree#exec('bwipeout! ' . a:bufnum, 0) + endif +endfunction + +"FUNCTION: s:renameBuffer(bufNum, newNodeName, isDirectory){{{1 +"The buffer with the given bufNum is replaced with a new one +" +"Args: +"bufNum: the buffer that may be deleted +"newNodeName: the name given to the renamed node +"isDirectory: determines how to do the create the new filenames +function! s:renameBuffer(bufNum, newNodeName, isDirectory) + if a:isDirectory + let quotedFileName = fnameescape(a:newNodeName . '/' . fnamemodify(bufname(a:bufNum),':t')) + let editStr = g:NERDTreePath.New(a:newNodeName . '/' . fnamemodify(bufname(a:bufNum),':t')).str({'format': 'Edit'}) + else + let quotedFileName = fnameescape(a:newNodeName) + let editStr = g:NERDTreePath.New(a:newNodeName).str({'format': 'Edit'}) + endif + " 1. ensure that a new buffer is loaded + call nerdtree#exec('badd ' . quotedFileName, 0) + " 2. ensure that all windows which display the just deleted filename + " display a buffer for a new filename. + let s:originalTabNumber = tabpagenr() + let s:originalWindowNumber = winnr() + call nerdtree#exec('tabdo windo if winbufnr(0) ==# ' . a:bufNum . " | exec ':e! " . editStr . "' | endif", 0) + call nerdtree#exec('tabnext ' . s:originalTabNumber, 1) + call nerdtree#exec(s:originalWindowNumber . 'wincmd w', 1) + " 3. We don't need a previous buffer anymore + try + call nerdtree#exec('confirm bwipeout ' . a:bufNum, 0) + catch + " This happens when answering Cancel if confirmation is needed. Do nothing. + endtry +endfunction + +"FUNCTION: NERDTreeAddNode(){{{1 +function! NERDTreeAddNode() + let curDirNode = g:NERDTreeDirNode.GetSelected() + let prompt = s:inputPrompt('add') + let newNodeName = input(prompt, curDirNode.path.str() . g:NERDTreePath.Slash(), 'file') + + if newNodeName ==# '' + call nerdtree#echo('Node Creation Aborted.') + return + endif + + try + let newPath = g:NERDTreePath.Create(newNodeName) + let parentNode = b:NERDTree.root.findNode(newPath.getParent()) + + let newTreeNode = g:NERDTreeFileNode.New(newPath, b:NERDTree) + " Emptying g:NERDTreeOldSortOrder forces the sort to + " recalculate the cached sortKey so nodes sort correctly. + let g:NERDTreeOldSortOrder = [] + if empty(parentNode) + call b:NERDTree.root.refresh() + call b:NERDTree.render() + elseif parentNode.isOpen || !empty(parentNode.children) + call parentNode.addChild(newTreeNode, 1) + call NERDTreeRender() + call newTreeNode.putCursorHere(1, 0) + endif + + redraw! + catch /^NERDTree/ + call nerdtree#echoWarning('Node Not Created.') + endtry +endfunction + +"FUNCTION: NERDTreeMoveNode(){{{1 +function! NERDTreeMoveNode() + let curNode = g:NERDTreeFileNode.GetSelected() + let prompt = s:inputPrompt('move') + let newNodePath = input(prompt, curNode.path.str(), 'file') + while filereadable(newNodePath) + call nerdtree#echoWarning('This destination already exists. Try again.') + let newNodePath = input(prompt, curNode.path.str(), 'file') + endwhile + + + if newNodePath ==# '' + call nerdtree#echo('Node Renaming Aborted.') + return + endif + + try + if curNode.path.isDirectory + let l:curPath = escape(curNode.path.str(),'\') . (nerdtree#runningWindows()?'\\':'/') . '.*' + let l:openBuffers = filter(range(1,bufnr('$')),'bufexists(v:val) && fnamemodify(bufname(v:val),":p") =~# "'.escape(l:curPath,'\').'"') + else + let l:openBuffers = filter(range(1,bufnr('$')),'bufexists(v:val) && fnamemodify(bufname(v:val),":p") ==# curNode.path.str()') + endif + + call curNode.rename(newNodePath) + " Emptying g:NERDTreeOldSortOrder forces the sort to + " recalculate the cached sortKey so nodes sort correctly. + let g:NERDTreeOldSortOrder = [] + call b:NERDTree.root.refresh() + call NERDTreeRender() + + " If the file node is open, or files under the directory node are + " open, ask the user if they want to replace the file(s) with the + " renamed files. + if !empty(l:openBuffers) + if curNode.path.isDirectory + echo "\nDirectory renamed.\n\nFiles with the old directory name are open in buffers " . join(l:openBuffers, ', ') . '. Replace these buffers with the new files? (yN)' + else + echo "\nFile renamed.\n\nThe old file is open in buffer " . l:openBuffers[0] . '. Replace this buffer with the new file? (yN)' + endif + if g:NERDTreeAutoDeleteBuffer || nr2char(getchar()) ==# 'y' + for bufNum in l:openBuffers + call s:renameBuffer(bufNum, newNodePath, curNode.path.isDirectory) + endfor + endif + endif + + call curNode.putCursorHere(1, 0) + + redraw! + catch /^NERDTree/ + call nerdtree#echoWarning('Node Not Renamed.') + endtry +endfunction + +" FUNCTION: NERDTreeDeleteNode() {{{1 +function! NERDTreeDeleteNode() + let l:shellslash = &shellslash + let &shellslash = 0 + let currentNode = g:NERDTreeFileNode.GetSelected() + let confirmed = 0 + + if currentNode.path.isDirectory && ((currentNode.isOpen && currentNode.getChildCount() > 0) || + \ (len(currentNode._glob('*', 1)) > 0)) + let prompt = s:inputPrompt('deleteNonEmpty') . currentNode.path.str() . ': ' + let choice = input(prompt) + let confirmed = choice ==# 'yes' + else + let prompt = s:inputPrompt('delete') . currentNode.path.str() . ' (yN): ' + echo prompt + let choice = nr2char(getchar()) + let confirmed = choice ==# 'y' + endif + + if confirmed + try + call currentNode.delete() + call NERDTreeRender() + + "if the node is open in a buffer, ask the user if they want to + "close that buffer + let bufnum = bufnr('^'.currentNode.path.str().'$') + if buflisted(bufnum) + let prompt = "\nNode deleted.\n\nThe file is open in buffer ". bufnum . (bufwinnr(bufnum) ==# -1 ? ' (hidden)' : '') .'. Delete this buffer? (yN)' + call s:promptToDelBuffer(bufnum, prompt) + endif + + redraw! + catch /^NERDTree/ + call nerdtree#echoWarning('Could not remove node') + endtry + else + call nerdtree#echo('delete aborted') + endif + let &shellslash = l:shellslash +endfunction + +" FUNCTION: NERDTreeListNode() {{{1 +function! NERDTreeListNode() + let treenode = g:NERDTreeFileNode.GetSelected() + if !empty(treenode) + let s:uname = system('uname') + let stat_cmd = 'stat -c "%s" ' + + if s:uname =~? 'Darwin' + let stat_cmd = 'stat -f "%z" ' + endif + + let cmd = 'size=$(' . stat_cmd . shellescape(treenode.path.str()) . ') && ' . + \ 'size_with_commas=$(echo $size | sed -e :a -e "s/\(.*[0-9]\)\([0-9]\{3\}\)/\1,\2/;ta") && ' . + \ 'ls -ld ' . shellescape(treenode.path.str()) . ' | sed -e "s/ $size / $size_with_commas /"' + + let metadata = split(system(cmd),'\n') + call nerdtree#echo(metadata[0]) + else + call nerdtree#echo('No information available') + endif +endfunction + +" FUNCTION: NERDTreeListNodeWin32() {{{1 +function! NERDTreeListNodeWin32() + let l:node = g:NERDTreeFileNode.GetSelected() + + if !empty(l:node) + let l:path = l:node.path.str() + call nerdtree#echo(printf('%s:%s MOD:%s BYTES:%d PERMISSIONS:%s', + \ toupper(getftype(l:path)), + \ fnamemodify(l:path, ':t'), + \ strftime('%c', getftime(l:path)), + \ getfsize(l:path), + \ getfperm(l:path))) + return + endif + + call nerdtree#echo('node not recognized') +endfunction + +" FUNCTION: NERDTreeCopyNode() {{{1 +function! NERDTreeCopyNode() + let l:shellslash = &shellslash + let &shellslash = 0 + let currentNode = g:NERDTreeFileNode.GetSelected() + let prompt = s:inputPrompt('copy') + let newNodePath = input(prompt, currentNode.path.str(), 'file') + + if newNodePath !=# '' + "strip trailing slash + let newNodePath = substitute(newNodePath, '\/$', '', '') + + let confirmed = 1 + if currentNode.path.copyingWillOverwrite(newNodePath) + call nerdtree#echo('Warning: copying may overwrite files! Continue? (yN)') + let choice = nr2char(getchar()) + let confirmed = choice ==# 'y' + endif + + if confirmed + try + let newNode = currentNode.copy(newNodePath) + " Emptying g:NERDTreeOldSortOrder forces the sort to + " recalculate the cached sortKey so nodes sort correctly. + let g:NERDTreeOldSortOrder = [] + if empty(newNode) + call b:NERDTree.root.refresh() + call b:NERDTree.render() + else + call NERDTreeRender() + call newNode.putCursorHere(0, 0) + endif + catch /^NERDTree/ + call nerdtree#echoWarning('Could not copy node') + endtry + endif + else + call nerdtree#echo('Copy aborted.') + endif + let &shellslash = l:shellslash + redraw! +endfunction + +" FUNCTION: NERDTreeCopyPath() {{{1 +function! NERDTreeCopyPath() + let l:nodePath = g:NERDTreeFileNode.GetSelected().path.str() + if has('clipboard') + if &clipboard ==# 'unnamedplus' + let @+ = l:nodePath + else + let @* = l:nodePath + endif + call nerdtree#echo('The path [' . l:nodePath . '] was copied to your clipboard.') + else + call nerdtree#echo('The full path is: ' . l:nodePath) + endif +endfunction + +" FUNCTION: NERDTreeQuickLook() {{{1 +function! NERDTreeQuickLook() + let l:node = g:NERDTreeFileNode.GetSelected() + + if empty(l:node) + return + endif + + call system('qlmanage -p 2>/dev/null ' . shellescape(l:node.path.str())) +endfunction + +" FUNCTION: NERDTreeRevealInFinder() {{{1 +function! NERDTreeRevealInFinder() + let l:node = g:NERDTreeFileNode.GetSelected() + + if empty(l:node) + return + endif + + call system('open -R ' . shellescape(l:node.path.str())) +endfunction + +" FUNCTION: NERDTreeExecuteFile() {{{1 +function! NERDTreeExecuteFile() + let l:node = g:NERDTreeFileNode.GetSelected() + + if empty(l:node) + return + endif + + call system('open ' . shellescape(l:node.path.str())) +endfunction + +" FUNCTION: NERDTreeRevealFileLinux() {{{1 +function! NERDTreeRevealFileLinux() + let l:node = g:NERDTreeFileNode.GetSelected() + + if empty(l:node) + return + endif + + " Handle the edge case of "/", which has no parent. + if l:node.path.str() ==# '/' + call system('xdg-open /') + return + endif + + if empty(l:node.parent) + return + endif + + call system('xdg-open ' . shellescape(l:node.parent.path.str())) +endfunction + +" FUNCTION: NERDTreeExecuteFileLinux() {{{1 +function! NERDTreeExecuteFileLinux() + let l:node = g:NERDTreeFileNode.GetSelected() + + if empty(l:node) + return + endif + + call system('xdg-open ' . shellescape(l:node.path.str())) +endfunction + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/_vim/.vim/plugged/nerdtree/nerdtree_plugin/vcs.vim b/_vim/.vim/plugged/nerdtree/nerdtree_plugin/vcs.vim new file mode 100644 index 0000000..d20e35e --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/nerdtree_plugin/vcs.vim @@ -0,0 +1,47 @@ +" ============================================================================ +" File: vcs.vim +" Description: NERDTree plugin that provides a command to open on the root of +" a version control system repository. +" Maintainer: Phil Runninger +" License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +" ============================================================================ +command! -n=? -complete=dir -bar NERDTreeVCS :call CreateTabTreeVCS('') +command! -n=? -complete=dir -bar NERDTreeToggleVCS :call ToggleTabTreeVCS('') + +" FUNCTION: s:CreateTabTreeVCS(a:name) {{{1 +function! s:CreateTabTreeVCS(name) + let l:path = g:NERDTreeCreator._pathForString(a:name) + let l:path = s:FindParentVCSRoot(l:path) + call g:NERDTreeCreator.createTabTree(empty(l:path) ? '' : l:path._str()) +endfunction + +" FUNCTION: s:ToggleTabTreeVCS(a:name) {{{1 +" Behaves the same as ToggleTabTree except roots directory at VCS root +function! s:ToggleTabTreeVCS(name) + let l:path = g:NERDTreeCreator._pathForString(a:name) + let l:path = s:FindParentVCSRoot(l:path) + call g:NERDTreeCreator.toggleTabTree(empty(l:path) ? '' : l:path._str()) +endfunction + +" FUNCTION: s:FindParentVCSRoot(a:path) {{{1 +" Finds the root version control system folder of the given path. If a:path is +" not part of a repository, return the original path. +function! s:FindParentVCSRoot(path) + let l:path = a:path + while !empty(l:path) && + \ l:path._str() !~# '^\(\a:[\\\/]\|\/\)$' && + \ !isdirectory(l:path._str() . '/.git') && + \ !isdirectory(l:path._str() . '/.svn') && + \ !isdirectory(l:path._str() . '/.hg') && + \ !isdirectory(l:path._str() . '/.bzr') && + \ !isdirectory(l:path._str() . '/_darcs') + let l:path = l:path.getParent() + endwhile + return (empty(l:path) || l:path._str() =~# '^\(\a:[\\\/]\|\/\)$') ? a:path : l:path +endfunction + diff --git a/_vim/.vim/plugged/nerdtree/plugin/NERD_tree.vim b/_vim/.vim/plugged/nerdtree/plugin/NERD_tree.vim new file mode 100644 index 0000000..639f87b --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/plugin/NERD_tree.vim @@ -0,0 +1,261 @@ +" ============================================================================ +" File: NERD_tree.vim +" Maintainer: Martin Grenfell +" License: This program is free software. It comes without any warranty, +" to the extent permitted by applicable law. You can redistribute +" it and/or modify it under the terms of the Do What The Fuck You +" Want To Public License, Version 2, as published by Sam Hocevar. +" See http://sam.zoy.org/wtfpl/COPYING for more details. +" +" ============================================================================ +" +" SECTION: Script init stuff {{{1 +"============================================================ +scriptencoding utf-8 + +if exists('loaded_nerd_tree') + finish +endif +if v:version < 703 + echoerr "NERDTree: this plugin requires vim >= 7.3. DOWNLOAD IT! You'll thank me later!" + finish +endif +let loaded_nerd_tree = 1 + +"for line continuation - i.e dont want C in &cpoptions +let s:old_cpo = &cpoptions +set cpoptions&vim + +"Function: s:initVariable() function {{{2 +"This function is used to initialise a given variable to a given value. The +"variable is only initialised if it does not exist prior +" +"Args: +"var: the name of the var to be initialised +"value: the value to initialise var to +" +"Returns: +"1 if the var is set, 0 otherwise +function! s:initVariable(var, value) + if !exists(a:var) + exec 'let ' . a:var . ' = ' . "'" . substitute(a:value, "'", "''", 'g') . "'" + return 1 + endif + return 0 +endfunction + +"SECTION: Init variable calls and other random constants {{{2 +call s:initVariable('g:NERDTreeAutoCenter', 1) +call s:initVariable('g:NERDTreeAutoCenterThreshold', 3) +call s:initVariable('g:NERDTreeCaseSensitiveSort', 0) +call s:initVariable('g:NERDTreeNaturalSort', 0) +call s:initVariable('g:NERDTreeSortHiddenFirst', 1) +call s:initVariable('g:NERDTreeUseTCD', 0) +call s:initVariable('g:NERDTreeChDirMode', 0) +call s:initVariable('g:NERDTreeCreatePrefix', 'silent') +call s:initVariable('g:NERDTreeMinimalUI', 0) +call s:initVariable('g:NERDTreeMinimalMenu', 0) +if !exists('g:NERDTreeIgnore') + let g:NERDTreeIgnore = ['\~$'] +endif +call s:initVariable('g:NERDTreeBookmarksFile', expand('$HOME') . '/.NERDTreeBookmarks') +call s:initVariable('g:NERDTreeBookmarksSort', 1) +call s:initVariable('g:NERDTreeHighlightCursorline', 1) +call s:initVariable('g:NERDTreeHijackNetrw', 1) +call s:initVariable('g:NERDTreeMarkBookmarks', 1) +call s:initVariable('g:NERDTreeMouseMode', 1) +call s:initVariable('g:NERDTreeNotificationThreshold', 100) +call s:initVariable('g:NERDTreeQuitOnOpen', 0) +call s:initVariable('g:NERDTreeRespectWildIgnore', 0) +call s:initVariable('g:NERDTreeShowBookmarks', 0) +call s:initVariable('g:NERDTreeShowFiles', 1) +call s:initVariable('g:NERDTreeShowHidden', 0) +call s:initVariable('g:NERDTreeShowLineNumbers', 0) +call s:initVariable('g:NERDTreeSortDirs', 1) + +if !nerdtree#runningWindows() && !nerdtree#runningCygwin() + call s:initVariable('g:NERDTreeDirArrowExpandable', '▸') + call s:initVariable('g:NERDTreeDirArrowCollapsible', '▾') +else + call s:initVariable('g:NERDTreeDirArrowExpandable', '+') + call s:initVariable('g:NERDTreeDirArrowCollapsible', '~') +endif + +call s:initVariable('g:NERDTreeCascadeOpenSingleChildDir', 1) +call s:initVariable('g:NERDTreeCascadeSingleChildDir', 1) + +if !exists('g:NERDTreeSortOrder') + let g:NERDTreeSortOrder = ['\/$', '*', '\.swp$', '\.bak$', '\~$'] +endif +let g:NERDTreeOldSortOrder = [] + +call s:initVariable('g:NERDTreeGlyphReadOnly', 'RO') + +if has('conceal') + call s:initVariable('g:NERDTreeNodeDelimiter', "\x07") +elseif (g:NERDTreeDirArrowExpandable ==# "\u00a0" || g:NERDTreeDirArrowCollapsible ==# "\u00a0") + call s:initVariable('g:NERDTreeNodeDelimiter', "\u00b7") +else + call s:initVariable('g:NERDTreeNodeDelimiter', "\u00a0") +endif + +if !exists('g:NERDTreeStatusline') + + "the exists() crap here is a hack to stop vim spazzing out when + "loading a session that was created with an open nerd tree. It spazzes + "because it doesnt store b:NERDTree(its a b: var, and its a hash) + let g:NERDTreeStatusline = "%{exists('b:NERDTree')?b:NERDTree.root.path.str():''}" + +endif +call s:initVariable('g:NERDTreeWinPos', 'left') +call s:initVariable('g:NERDTreeWinSize', 31) + +"init the shell commands that will be used to copy nodes, and remove dir trees +" +"Note: the space after the command is important +if nerdtree#runningWindows() + call s:initVariable('g:NERDTreeRemoveDirCmd', 'rmdir /s /q ') + call s:initVariable('g:NERDTreeCopyDirCmd', 'xcopy /s /e /i /y /q ') + call s:initVariable('g:NERDTreeCopyFileCmd', 'copy /y ') +else + call s:initVariable('g:NERDTreeRemoveDirCmd', 'rm -rf ') + call s:initVariable('g:NERDTreeCopyCmd', 'cp -r ') +endif + + +"SECTION: Init variable calls for key mappings {{{2 +call s:initVariable('g:NERDTreeMapCustomOpen', '') +call s:initVariable('g:NERDTreeMapActivateNode', 'o') +call s:initVariable('g:NERDTreeMapChangeRoot', 'C') +call s:initVariable('g:NERDTreeMapChdir', 'cd') +call s:initVariable('g:NERDTreeMapCloseChildren', 'X') +call s:initVariable('g:NERDTreeMapCloseDir', 'x') +call s:initVariable('g:NERDTreeMapDeleteBookmark', 'D') +call s:initVariable('g:NERDTreeMapMenu', 'm') +call s:initVariable('g:NERDTreeMapHelp', '?') +call s:initVariable('g:NERDTreeMapJumpFirstChild', 'K') +call s:initVariable('g:NERDTreeMapJumpLastChild', 'J') +call s:initVariable('g:NERDTreeMapJumpNextSibling', '') +call s:initVariable('g:NERDTreeMapJumpParent', 'p') +call s:initVariable('g:NERDTreeMapJumpPrevSibling', '') +call s:initVariable('g:NERDTreeMapJumpRoot', 'P') +call s:initVariable('g:NERDTreeMapOpenExpl', 'e') +call s:initVariable('g:NERDTreeMapOpenInTab', 't') +call s:initVariable('g:NERDTreeMapOpenInTabSilent', 'T') +call s:initVariable('g:NERDTreeMapOpenRecursively', 'O') +call s:initVariable('g:NERDTreeMapOpenSplit', 'i') +call s:initVariable('g:NERDTreeMapOpenVSplit', 's') +call s:initVariable('g:NERDTreeMapPreview', 'g' . NERDTreeMapActivateNode) +call s:initVariable('g:NERDTreeMapPreviewSplit', 'g' . NERDTreeMapOpenSplit) +call s:initVariable('g:NERDTreeMapPreviewVSplit', 'g' . NERDTreeMapOpenVSplit) +call s:initVariable('g:NERDTreeMapQuit', 'q') +call s:initVariable('g:NERDTreeMapRefresh', 'r') +call s:initVariable('g:NERDTreeMapRefreshRoot', 'R') +call s:initVariable('g:NERDTreeMapToggleBookmarks', 'B') +call s:initVariable('g:NERDTreeMapToggleFiles', 'F') +call s:initVariable('g:NERDTreeMapToggleFilters', 'f') +call s:initVariable('g:NERDTreeMapToggleHidden', 'I') +call s:initVariable('g:NERDTreeMapToggleZoom', 'A') +call s:initVariable('g:NERDTreeMapUpdir', 'u') +call s:initVariable('g:NERDTreeMapUpdirKeepOpen', 'U') +call s:initVariable('g:NERDTreeMapCWD', 'CD') +call s:initVariable('g:NERDTreeMenuDown', 'j') +call s:initVariable('g:NERDTreeMenuUp', 'k') + +"SECTION: Load class files{{{2 +call nerdtree#loadClassFiles() + +" SECTION: Commands {{{1 +"============================================================ +call nerdtree#ui_glue#setupCommands() + +" SECTION: Auto commands {{{1 +"============================================================ +augroup NERDTree + "Save the cursor position whenever we close the nerd tree + exec 'autocmd BufLeave,WinLeave '. g:NERDTreeCreator.BufNamePrefix() .'* if g:NERDTree.IsOpen() | call b:NERDTree.ui.saveScreenState() | endif' + + "disallow insert mode in the NERDTree + exec 'autocmd BufEnter,WinEnter '. g:NERDTreeCreator.BufNamePrefix() .'* stopinsert' +augroup END + +if g:NERDTreeHijackNetrw + augroup NERDTreeHijackNetrw + autocmd VimEnter * silent! autocmd! FileExplorer + au BufEnter,VimEnter * call nerdtree#checkForBrowse(expand('')) + augroup END +endif + +if g:NERDTreeChDirMode ==# 3 + augroup NERDTreeChDirOnTabSwitch + autocmd TabEnter * if g:NERDTree.ExistsForTab()|call g:NERDTree.ForCurrentTab().getRoot().path.changeToDir()|endif + augroup END +endif + +" SECTION: Public API {{{1 +"============================================================ +function! NERDTreeAddMenuItem(options) + call g:NERDTreeMenuItem.Create(a:options) +endfunction + +function! NERDTreeAddMenuSeparator(...) + let opts = a:0 ? a:1 : {} + call g:NERDTreeMenuItem.CreateSeparator(opts) +endfunction + +function! NERDTreeAddSubmenu(options) + return g:NERDTreeMenuItem.Create(a:options) +endfunction + +function! NERDTreeAddKeyMap(options) + call g:NERDTreeKeyMap.Create(a:options) +endfunction + +function! NERDTreeRender() + call nerdtree#renderView() +endfunction + +function! NERDTreeFocus() + if g:NERDTree.IsOpen() + call g:NERDTree.CursorToTreeWin() + else + call g:NERDTreeCreator.ToggleTabTree('') + endif +endfunction + +function! NERDTreeCWD() + + if empty(getcwd()) + call nerdtree#echoWarning('current directory does not exist') + return + endif + + try + let l:cwdPath = g:NERDTreePath.New(getcwd()) + catch /^NERDTree.InvalidArgumentsError/ + call nerdtree#echoWarning('current directory does not exist') + return + endtry + + call NERDTreeFocus() + + if b:NERDTree.root.path.equals(l:cwdPath) + return + endif + + let l:newRoot = g:NERDTreeFileNode.New(l:cwdPath, b:NERDTree) + call b:NERDTree.changeRoot(l:newRoot) + normal! ^ +endfunction + +function! NERDTreeAddPathFilter(callback) + call g:NERDTree.AddPathFilter(a:callback) +endfunction + +" SECTION: Post Source Actions {{{1 +call nerdtree#postSourceActions() + +"reset &cpoptions back to users setting +let &cpoptions = s:old_cpo + +" vim: set sw=4 sts=4 et fdm=marker: diff --git a/_vim/.vim/plugged/nerdtree/screenshot.png b/_vim/.vim/plugged/nerdtree/screenshot.png new file mode 100644 index 0000000..c410c5d Binary files /dev/null and b/_vim/.vim/plugged/nerdtree/screenshot.png differ diff --git a/_vim/.vim/plugged/nerdtree/syntax/nerdtree.vim b/_vim/.vim/plugged/nerdtree/syntax/nerdtree.vim new file mode 100644 index 0000000..df0c804 --- /dev/null +++ b/_vim/.vim/plugged/nerdtree/syntax/nerdtree.vim @@ -0,0 +1,95 @@ +let s:tree_up_dir_line = '.. (up a dir)' +syn match NERDTreeIgnore #\~# +exec 'syn match NERDTreeIgnore #\['.g:NERDTreeGlyphReadOnly.'\]#' + +"highlighting for the .. (up dir) line at the top of the tree +execute "syn match NERDTreeUp #\\V". s:tree_up_dir_line .'#' + +"quickhelp syntax elements +syn match NERDTreeHelpKey #" \{1,2\}[^ ]*:#ms=s+2,me=e-1 +syn match NERDTreeHelpKey #" \{1,2\}[^ ]*,#ms=s+2,me=e-1 +syn match NERDTreeHelpTitle #" .*\~$#ms=s+2,me=e-1 +syn match NERDTreeToggleOn #(on)#ms=s+1,he=e-1 +syn match NERDTreeToggleOff #(off)#ms=e-3,me=e-1 +syn match NERDTreeHelpCommand #" :.\{-}\>#hs=s+3 +syn match NERDTreeHelp #^".*# contains=NERDTreeHelpKey,NERDTreeHelpTitle,NERDTreeIgnore,NERDTreeToggleOff,NERDTreeToggleOn,NERDTreeHelpCommand + +"highlighting for sym links +syn match NERDTreeLinkTarget #->.*# containedin=NERDTreeDir,NERDTreeFile +syn match NERDTreeLinkFile #.* ->#me=e-3 containedin=NERDTreeFile +syn match NERDTreeLinkDir #.*/ ->#me=e-3 containedin=NERDTreeDir + +"highlighting to conceal the delimiter around the file/dir name +if has('conceal') + exec 'syn match NERDTreeNodeDelimiters #\%d' . char2nr(g:NERDTreeNodeDelimiter) . '# conceal containedin=ALL' + setlocal conceallevel=3 concealcursor=nvic +else + exec 'syn match NERDTreeNodeDelimiters #\%d' . char2nr(g:NERDTreeNodeDelimiter) . '# containedin=ALL' + hi! link NERDTreeNodeDelimiters Ignore +endif + +"highlighing for directory nodes and file nodes +syn match NERDTreeDirSlash #/# containedin=NERDTreeDir + +if g:NERDTreeDirArrowExpandable !=# '' + exec 'syn match NERDTreeClosable #' . escape(g:NERDTreeDirArrowCollapsible, '~') . '\ze .*/# containedin=NERDTreeDir,NERDTreeFile' + exec 'syn match NERDTreeOpenable #' . escape(g:NERDTreeDirArrowExpandable, '~') . '\ze .*/# containedin=NERDTreeDir,NERDTreeFile' + let s:dirArrows = escape(g:NERDTreeDirArrowCollapsible, '~]\-').escape(g:NERDTreeDirArrowExpandable, '~]\-') + exec 'syn match NERDTreeDir #[^'.s:dirArrows.' ].*/#' + exec 'syn match NERDTreeExecFile #^.*'.g:NERDTreeNodeDelimiter.'\*\($\| \)# contains=NERDTreeRO,NERDTreeBookmark' + exec 'syn match NERDTreeFile #^[^"\.'.s:dirArrows.'] *[^'.s:dirArrows.']*# contains=NERDTreeLink,NERDTreeRO,NERDTreeBookmark,NERDTreeExecFile' +else + exec 'syn match NERDTreeDir #[^'.g:NERDTreeNodeDelimiter.']\{-}/\ze\($\|'.g:NERDTreeNodeDelimiter.'\)#' + exec 'syn match NERDTreeExecFile #[^'.g:NERDTreeNodeDelimiter.']\{-}'.g:NERDTreeNodeDelimiter.'\*\($\| \)# contains=NERDTreeRO,NERDTreeBookmark' + exec 'syn match NERDTreeFile #^.*'.g:NERDTreeNodeDelimiter.'.*[^\/]\($\|'.g:NERDTreeNodeDelimiter.'.*\)# contains=NERDTreeLink,NERDTreeRO,NERDTreeBookmark,NERDTreeExecFile' +endif + +"highlighting for readonly files +exec 'syn match NERDTreeRO #.*'.g:NERDTreeNodeDelimiter.'\zs.*\ze'.g:NERDTreeNodeDelimiter.'.*\['.g:NERDTreeGlyphReadOnly.'\]# contains=NERDTreeIgnore,NERDTreeBookmark,NERDTreeFile' + +exec 'syn match NERDTreeFlags #\[[^\]]*\]\ze'.g:NERDTreeNodeDelimiter.'# containedin=NERDTreeFile,NERDTreeExecFile,NERDTreeDir' + +syn match NERDTreeCWD #^[# +syn match NERDTreeBookmarksHeader #^>-\+Bookmarks-\+$# contains=NERDTreeBookmarksLeader +syn match NERDTreeBookmarkName #^>.\{-} #he=e-1 contains=NERDTreeBookmarksLeader +syn match NERDTreeBookmark #^>.*$# contains=NERDTreeBookmarksLeader,NERDTreeBookmarkName,NERDTreeBookmarksHeader + +hi def link NERDTreePart Special +hi def link NERDTreePartFile Type +hi def link NERDTreeExecFile Title +hi def link NERDTreeDirSlash Identifier + +hi def link NERDTreeBookmarksHeader statement +hi def link NERDTreeBookmarksLeader ignore +hi def link NERDTreeBookmarkName Identifier +hi def link NERDTreeBookmark normal + +hi def link NERDTreeHelp String +hi def link NERDTreeHelpKey Identifier +hi def link NERDTreeHelpCommand Identifier +hi def link NERDTreeHelpTitle Macro +hi def link NERDTreeToggleOn Question +hi def link NERDTreeToggleOff WarningMsg + +hi def link NERDTreeLinkTarget Type +hi def link NERDTreeLinkFile Macro +hi def link NERDTreeLinkDir Macro + +hi def link NERDTreeDir Directory +hi def link NERDTreeUp Directory +hi def link NERDTreeFile Normal +hi def link NERDTreeCWD Statement +hi def link NERDTreeOpenable Directory +hi def link NERDTreeClosable Directory +hi def link NERDTreeIgnore ignore +hi def link NERDTreeRO WarningMsg +hi def link NERDTreeBookmark Statement +hi def link NERDTreeFlags Number + +hi def link NERDTreeCurrentNode Search diff --git a/_vim/.vim/plugged/vim-airline-themes/.github/ISSUE_TEMPLATE.md b/_vim/.vim/plugged/vim-airline-themes/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..fb8d575 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,24 @@ +#### environment + +- vim: ???? +- vim-airline: ???? +- colorscheme: ???? +- OS: ???? +- Have you reproduced with a minimal vimrc: ??? +- What is your airline configuration: ??? +if you are using terminal: +- terminal: ???? +- $TERM variable: ??? +- color configuration (:set t_Co?): +if you are using Neovim: +- does it happen in Vim: ??? + +#### actual behavior + +???? + +#### expected behavior + +???? + +#### screen shot (if possible) diff --git a/_vim/.vim/plugged/vim-airline-themes/.github/workflows/reviewdog.yml b/_vim/.vim/plugged/vim-airline-themes/.github/workflows/reviewdog.yml new file mode 100644 index 0000000..1e0d8df --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/.github/workflows/reviewdog.yml @@ -0,0 +1,22 @@ +name: reviewdog + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + vint: + name: runner / vint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: vint + uses: reviewdog/action-vint@v1 + with: + github_token: ${{ secrets.github_token }} + level: error + reporter: github-pr-check diff --git a/_vim/.vim/plugged/vim-airline-themes/.gitignore b/_vim/.vim/plugged/vim-airline-themes/.gitignore new file mode 100644 index 0000000..17402e5 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/.gitignore @@ -0,0 +1,2 @@ +.DS_Store +doc/tags diff --git a/_vim/.vim/plugged/vim-airline-themes/.travis.yml b/_vim/.vim/plugged/vim-airline-themes/.travis.yml new file mode 100644 index 0000000..ff524c1 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/.travis.yml @@ -0,0 +1,47 @@ +language: vim + +cache: + directories: + - $HOME/.vvm +matrix: + include: + - os: linux + env: + - VIM_VERSION=8.0.0000 + - os: linux + env: + - VIM_VERSION=8.1.0000 + - os: linux + env: + - VIM_VERSION=8.2.0000 + - os: osx + env: + - VIM_VERSION=8.0.0000 + - os: osx + env: + - VIM_VERSION=8.1.0000 + - os: osx + env: + - VIM_VERSION=8.2.0000 + +before_install: + - curl https://raw.githubusercontent.com/kana/vim-version-manager/master/bin/vvm | python - setup; true + - source ~/.vvm/etc/login + - vvm update_itself + - vvm use vimorg--v$VIM_VERSION --install --with-features=huge + +before_script: | + git clone https://github.com/junegunn/vader.vim.git + git clone https://github.com/vim-airline/vim-airline + find $PWD/autoload/airline/themes -name "*.vim" > themes.txt + +script: | + vim --not-a-term -Nu <(cat << VIMRC + filetype off + set rtp+=vader.vim + set rtp+=vim-airline + set rtp+=. + set rtp+=after + filetype plugin indent on + syntax enable + VIMRC) -c 'Vader! test/*' > /dev/null diff --git a/_vim/.vim/plugged/vim-airline-themes/LICENSE b/_vim/.vim/plugged/vim-airline-themes/LICENSE new file mode 100644 index 0000000..e9e858c --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (C) 2013-2020 Bailey Ling & Contributors. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/_vim/.vim/plugged/vim-airline-themes/README.md b/_vim/.vim/plugged/vim-airline-themes/README.md new file mode 100644 index 0000000..a92c084 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/README.md @@ -0,0 +1,62 @@ +# vim-airline-themes [![Build Status](https://travis-ci.org/vim-airline/vim-airline-themes.svg?branch=master)](https://travis-ci.org/vim-airline/vim-airline-themes) [![reviewdog](https://github.com/vim-airline/vim-airline-themes/workflows/reviewdog/badge.svg?branch=master&event=push)](https://github.com/vim-airline/vim-airline-themes/actions?query=workflow%3Areviewdog+event%3Apush+branch%3Amaster) + +This is the official theme repository for [vim-airline][11] + +# Installation + +This plugin follows the standard runtime path structure, and as such it can be installed with a variety of plugin managers: + +| Plugin Manager | Install with... | +| ------------- | ------------- | +| [Pathogen][4] | `git clone https://github.com/vim-airline/vim-airline-themes ~/.vim/bundle/vim-airline-themes`
Remember to run `:Helptags` to generate help tags | +| [NeoBundle][5] | `NeoBundle 'vim-airline/vim-airline-themes'` | +| [Vundle][6] | `Plugin 'vim-airline/vim-airline-themes'` | +| [Plug][7] | `Plug 'vim-airline/vim-airline-themes'` | +| [VAM][8] | `call vam#ActivateAddons([ 'vim-airline-themes' ])` | +| [Dein][9] | `call dein#add('vim-airline/vim-airline-themes')` | +| [minpac][10] | `call minpac#add('vim-airline/vim-airline-themes')` | +| pack feature (native Vim 8 package feature)| `git clone https://github.com/vim-airline/vim-airline-themes ~/.vim/pack/dist/start/vim-airline-themes`
Remember to run `:helptags ~/.vim/pack/dist/start/vim-airline-themes/doc` to generate help tags | +| manual | copy all of the files into your `~/.vim` directory | + +# Using a Theme + +Once installed, use `:AirlineTheme ` to set the theme, e.g. `:AirlineTheme simple` + +To set in .vimrc, use `let g:airline_theme=''`, e.g. `let g:airline_theme='simple'` + +**Note:** The command `:AirlineTheme` is only available, if you have also cloned and installed the main [vim-airline][11] repository. + +# Contribution Guidelines + +## New themes + +* Pull requests for new themes are welcome. Please be sure to include a screenshot. You can paste an image into issue [#1](https://github.com/vim-airline/vim-airline-themes/issues/1), and then editing the post to reveal the uploaded image URL. Please don't forgot to update the documentation. + +## Modifications to existing themes + +* Themes are subjective, so if you are going to make modifications to an existing theme, please expose a configurable variable to allow users to choose how the theme will react. + +# Screenshots + +Screenshots are in the process of being migrated here. In the meantime you can find screenshots in the existing repository's [Wiki](https://github.com/vim-airline/vim-airline/wiki/Screenshots). + +# Maintenance + +If you are interested in becoming the official maintainer of this project, please contact [**@bling**][1], [**@chrisbra**][2], or [**@mhartington**][3]. + +# License + +MIT License. Copyright (c) 2013-2020 Bailey Ling & Contributors. + + +[1]: https://github.com/bling +[2]: https://github.com/chrisbra +[3]: https://github.com/mhartington +[4]: https://github.com/tpope/vim-pathogen +[5]: https://github.com/Shougo/neobundle.vim +[6]: https://github.com/VundleVim/Vundle.vim +[7]: https://github.com/junegunn/vim-plug +[8]: https://github.com/MarcWeber/vim-addon-manager +[9]: https://github.com/Shougo/dein.vim +[10]: https://github.com/k-takata/minpac/ +[11]: https://github.com/vim-airline/vim-airline diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/alduin.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/alduin.vim new file mode 100644 index 0000000..dd14603 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/alduin.vim @@ -0,0 +1,97 @@ +" Author: Danilo Augusto +" Script: Alduin (vim-airline version) +" License: MIT + +let s:gui00 = "#1c1c1c" " ANSI Black +let s:gui01 = "#af8787" " ANSI Red +let s:gui02 = "#dfaf87" " ANSI Green +let s:gui03 = "#878787" " ANSI Yellow +let s:gui04 = "#af5f5f" " ANSI Blue +let s:gui05 = "#875f5f" " ANSI Magenta +let s:gui06 = "#87afaf" " ANSI Cyan +let s:gui07 = "#ffdf87" " ANSI White +let s:gui08 = "#87875f" +let s:gui09 = "#af1600" +let s:gui0A = "#af875f" +let s:gui0B = "#878787" +let s:gui0C = "#af5f00" +let s:gui0D = "#5f5f87" +let s:gui0E = "#afd7d7" +let s:gui0F = "#dfdfaf" + +let s:cterm00 = "234" +let s:cterm01 = "138" +let s:cterm02 = "180" +let s:cterm03 = "102" +let s:cterm04 = "131" +let s:cterm05 = "95" +let s:cterm06 = "109" +let s:cterm07 = "222" +let s:cterm08 = "101" +let s:cterm09 = "138" +let s:cterm0A = "180" +let s:cterm0B = "102" +let s:cterm0C = "130" +let s:cterm0D = "60" +let s:cterm0E = "152" +let s:cterm0F = "187" + +let s:guiWhite = "#ffffff" +let s:guiGray = "#666666" +let s:guiDarkGray = "#545454" +let s:guiAlmostBlack = "#2a2a2a" +let s:ctermWhite = "231" +let s:ctermGray = "243" +let s:ctermDarkGray = "240" +let s:ctermAlmostBlack = "235" + +let g:airline#themes#alduin#palette = {} +let s:modified = { 'airline_c': [s:gui07, '', s:cterm07, '', ''] } + +" Normal mode +let s:N1 = [s:gui07, s:gui0D, s:cterm07, s:cterm0D] +let s:N2 = [s:guiWhite, s:gui01, s:ctermWhite, s:cterm01] +let s:N3 = [s:gui02, s:guiDarkGray, s:cterm02, s:ctermDarkGray] +let g:airline#themes#alduin#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#alduin#palette.normal_modified = s:modified + +" Insert mode +let s:I1 = [s:guiWhite, s:gui0B, s:ctermWhite, s:cterm0B] +let s:I2 = s:N2 +let s:I3 = [s:guiWhite, s:gui01, s:ctermWhite, s:cterm01] +let g:airline#themes#alduin#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#alduin#palette.insert_modified = s:modified + +" Visual mode +let s:V1 = [s:guiWhite, s:gui08, s:ctermWhite, s:cterm08] +let s:V2 = s:N2 +let s:V3 = s:I3 +let g:airline#themes#alduin#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#alduin#palette.visual_modified = s:modified + +" Replace mode +let s:R1 = [s:gui08, s:gui00, s:cterm08, s:cterm00] +let s:R2 = s:N2 +let s:R3 = s:I3 +let g:airline#themes#alduin#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#alduin#palette.replace_modified = s:modified + +" Inactive mode +let s:IN1 = [s:guiGray, s:gui01, s:ctermGray, s:cterm01] +let s:IN2 = [s:gui02, s:guiAlmostBlack, s:cterm02, s:ctermAlmostBlack] +let s:IN3 = [s:gui02, s:guiAlmostBlack, s:cterm02, s:ctermAlmostBlack] +let g:airline#themes#alduin#palette.inactive = airline#themes#generate_color_map(s:IN1, s:IN2, s:IN3) +let g:airline#themes#alduin#palette.inactive_modified = s:modified + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif + +let s:CP1 = [s:guiWhite, s:gui01, s:ctermWhite, s:cterm01] +let s:CP2 = [s:guiWhite, s:gui03, s:ctermWhite, s:cterm01] +let s:CP3 = [s:guiWhite, s:gui0D, s:ctermWhite, s:cterm0D] +let g:airline#themes#alduin#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ s:CP1, + \ s:CP2, + \ s:CP3) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/angr.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/angr.vim new file mode 100644 index 0000000..df00add --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/angr.vim @@ -0,0 +1,109 @@ +" Color palette +let s:gui_dark_gray = '#303030' +let s:cterm_dark_gray = 236 +let s:gui_med_gray_hi = '#444444' +let s:cterm_med_gray_hi = 238 +let s:gui_med_gray_lo = '#3a3a3a' +let s:cterm_med_gray_lo = 237 +let s:gui_light_gray = '#b2b2b2' +let s:cterm_light_gray = 249 +let s:gui_green = '#005f87' +let s:cterm_green = 150 +let s:gui_blue = '#87afd7' +let s:cterm_blue = 110 +let s:gui_purple = '#afafd7' +let s:cterm_purple = 146 +let s:gui_orange = '#ffaf87' +let s:cterm_orange = 216 +let s:gui_red = '#d78787' +let s:cterm_red = 174 +let s:gui_pink = '#d7afd7' +let s:cterm_pink = 182 + +let g:airline#themes#angr#palette = {} + +" Normal mode +let s:N1 = [s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green] +let s:N2 = [s:gui_light_gray, s:gui_med_gray_lo, s:cterm_light_gray, s:cterm_med_gray_lo] +let s:N3 = [s:gui_light_gray, s:gui_med_gray_hi, s:cterm_light_gray, s:cterm_med_gray_hi] " inside text +let g:airline#themes#angr#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#angr#palette.normal_modified = { + \ 'airline_c': [s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, ''], + \ } + +" Insert mode +let s:I1 = [s:gui_med_gray_hi, s:gui_blue, s:cterm_med_gray_hi, s:cterm_blue] +let s:I3 = [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi] " inside text +let g:airline#themes#angr#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:I3) +let g:airline#themes#angr#palette.insert_modified = copy(g:airline#themes#angr#palette.normal_modified) +let g:airline#themes#angr#palette.insert_paste = { + \ 'airline_a': [s:gui_dark_gray, s:gui_orange, s:cterm_dark_gray, s:cterm_orange, ''], + \ } + +" Replace mode +let g:airline#themes#angr#palette.replace = { + \ 'airline_a': [s:gui_dark_gray, s:gui_red, s:cterm_dark_gray, s:cterm_red, ''], + \ 'airline_c': [s:gui_red, s:gui_med_gray_hi, s:cterm_red, s:cterm_med_gray_hi, ''], + \ } +let g:airline#themes#angr#palette.replace_modified = copy(g:airline#themes#angr#palette.insert_modified) + +" Visual mode +let s:V1 = [s:gui_dark_gray, s:gui_pink, s:cterm_dark_gray, s:cterm_pink] +let s:V3 = [s:gui_pink, s:gui_med_gray_hi, s:cterm_pink, s:cterm_med_gray_hi] +let g:airline#themes#angr#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:V3) +let g:airline#themes#angr#palette.visual_modified = copy(g:airline#themes#angr#palette.insert_modified) + +" Inactive window +let s:IA = [s:gui_light_gray, s:gui_med_gray_hi, s:cterm_light_gray, s:cterm_med_gray_hi, ''] +let g:airline#themes#angr#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#angr#palette.inactive_modified = { + \ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''], + \ } + +" Warnings +let s:ER = airline#themes#get_highlight2(['ErrorMsg', 'bg'], ['ErrorMsg', 'fg'], 'bold') +let g:airline#themes#angr#palette.normal.airline_warning = [ + \ s:ER[1], s:ER[0], s:ER[3], s:ER[2] + \ ] +let g:airline#themes#angr#palette.normal_modified.airline_warning = +\ g:airline#themes#angr#palette.normal.airline_warning +let g:airline#themes#angr#palette.insert.airline_warning = +\ g:airline#themes#angr#palette.normal.airline_warning +let g:airline#themes#angr#palette.insert_modified.airline_warning = +\ g:airline#themes#angr#palette.normal.airline_warning +let g:airline#themes#angr#palette.visual.airline_warning = +\ g:airline#themes#angr#palette.normal.airline_warning +let g:airline#themes#angr#palette.visual_modified.airline_warning = +\ g:airline#themes#angr#palette.normal.airline_warning +let g:airline#themes#angr#palette.replace.airline_warning = +\ g:airline#themes#angr#palette.normal.airline_warning +let g:airline#themes#angr#palette.replace_modified.airline_warning = +\ g:airline#themes#angr#palette.normal.airline_warning + +" Errors +let g:airline#themes#angr#palette.normal.airline_error = [ + \ s:ER[1], s:ER[0], s:ER[3], s:ER[2] + \ ] +let g:airline#themes#angr#palette.normal_modified.airline_error = +\ g:airline#themes#angr#palette.normal.airline_error +let g:airline#themes#angr#palette.insert.airline_error = +\ g:airline#themes#angr#palette.normal.airline_error +let g:airline#themes#angr#palette.insert_modified.airline_error = +\ g:airline#themes#angr#palette.normal.airline_error +let g:airline#themes#angr#palette.visual.airline_error = +\ g:airline#themes#angr#palette.normal.airline_error +let g:airline#themes#angr#palette.visual_modified.airline_error = +\ g:airline#themes#angr#palette.normal.airline_error +let g:airline#themes#angr#palette.replace.airline_error = +\ g:airline#themes#angr#palette.normal.airline_error +let g:airline#themes#angr#palette.replace_modified.airline_error = +\ g:airline#themes#angr#palette.normal.airline_error + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#angr#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, '' ] , + \ [ s:gui_orange, s:gui_med_gray_lo, s:cterm_orange, s:cterm_med_gray_lo, '' ] , + \ [ s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green, 'bold' ] ) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/atomic.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/atomic.vim new file mode 100644 index 0000000..7e2bc6e --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/atomic.vim @@ -0,0 +1,79 @@ +"---------------------------------------------------------------- +" ___ __ _ +" / | / /_____ ____ ___ (_)____ +" / /| |/ __/ __ \/ __ `__ \/ / ___/ +" / ___ / /_/ /_/ / / / / / / / /__ +" /_/ |_\__/\____/_/ /_/ /_/_/\___/ +" +"---------------------------------------------------------------- +" Theme : Atomic +" Version : 2.0.0 +" License : MIT +" Author : Gerard Bajona +" URL : https://github.com/gerardbm/atomic +" ---------------------------------------------------------------- +" Colors will be adapted to the current colorscheme. For better +" contrast use the atomic colorscheme: it has ten color palettes +" with sixteen colors selected procedurally (algorithms). +" +" Atomic colorscheme: https://github.com/gerardbm/vim-atomic +" ---------------------------------------------------------------- + +let g:airline#themes#atomic#palette = {} + +function! airline#themes#atomic#refresh() + + let s:N1 = airline#themes#get_highlight2(['LineNr', 'bg'], ['ModeMsg', 'fg'], 'none') + let s:N2 = airline#themes#get_highlight2(['LineNr', 'bg'], ['LineNr', 'fg'], 'none') + let s:N3 = airline#themes#get_highlight2(['ModeMsg', 'fg'], ['StatusLine', 'bg'], 'none') + let g:airline#themes#atomic#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + let s:I1 = airline#themes#get_highlight2(['LineNr', 'bg'], ['Question', 'fg'], 'none') + let s:I2 = airline#themes#get_highlight2(['LineNr', 'bg'], ['LineNr', 'fg'], 'none') + let s:I3 = airline#themes#get_highlight2(['Question', 'fg'], ['StatusLine', 'bg'], 'none') + let g:airline#themes#atomic#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + + let s:R1 = airline#themes#get_highlight2(['LineNr', 'bg'], ['ErrorMsg', 'fg'], 'none') + let s:R2 = airline#themes#get_highlight2(['LineNr', 'bg'], ['LineNr', 'fg'], 'none') + let s:R3 = airline#themes#get_highlight2(['ErrorMsg', 'fg'], ['StatusLine', 'bg'], 'none') + let g:airline#themes#atomic#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + + let s:V1 = airline#themes#get_highlight2(['LineNr', 'bg'], ['WarningMsg', 'fg'], 'none') + let s:V2 = airline#themes#get_highlight2(['LineNr', 'bg'], ['LineNr', 'fg'], 'none') + let s:V3 = airline#themes#get_highlight2(['WarningMsg', 'fg'], ['StatusLine', 'bg'], 'none') + let g:airline#themes#atomic#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + + let s:IA1 = airline#themes#get_highlight2(['LineNr', 'fg'], ['StatusLine', 'bg'], 'none') + let s:IA2 = airline#themes#get_highlight2(['LineNr', 'fg'], ['StatusLine', 'bg'], 'none') + let s:IA3 = airline#themes#get_highlight2(['LineNr', 'fg'], ['StatusLine', 'bg'], 'none') + let g:airline#themes#atomic#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + + " Accent color + " It helps to remove the bold typography into modes section + let g:airline#themes#atomic#palette.accents = {'black' : airline#themes#get_highlight2(['LineNr', 'bg'], ['ModeMsg', 'fg'], 'none')} + + " Mode map + let g:airline_mode_map = { + \ '__' : '--', + \ 'n' : 'N', + \ 'i' : 'I', + \ 'R' : 'R', + \ 'c' : 'C', + \ 'v' : 'V', + \ 'V' : 'V-L', + \ '' : 'V-B', + \ 's' : 'S', + \ 'S' : 'S-L', + \ '' : 'S-B', + \ 't' : 'T', + \ } + + " Settings + let g:airline_symbols.paste = 'Ξ' + let g:airline_symbols.spell = 'S' + let g:airline_section_z = airline#section#create(['--%1p%%-- ', + \ '%#__accent_bold#%l%#__restore__#', ':%c']) + +endfunction + +call airline#themes#atomic#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ayu_dark.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ayu_dark.vim new file mode 100644 index 0000000..a8d83ab --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ayu_dark.vim @@ -0,0 +1,34 @@ +" Normal mode +" (Dark) +let s:N1 = [ '#3D424D' , '#C2D94C' , 59 , 149 ] " guifg guibg ctermfg ctermbg +let s:N2 = [ '#C2D94C' , '#304357' , 149 , 59 ] " guifg guibg ctermfg ctermbg +let s:N3 = [ '#B3B1AD' , '#0A0E14' , 145 , 16 ] " guifg guibg ctermfg ctermbg + +" Insert mode +let s:I1 = [ '#3D424D' , '#39BAE6' , 59 , 74 ] " guifg guibg ctermfg ctermbg +let s:I2 = [ '#39BAE6' , '#304357' , 74 , 59 ] " guifg guibg ctermfg ctermbg +let s:I3 = [ '#B3B1AD' , '#0A0E14' , 145 , 16 ] " guifg guibg ctermfg ctermbg + +" Visual mode +let s:V1 = [ '#3D424D' , '#FF8F40' , 59 , 209 ] " guifg guibg ctermfg ctermbg +let s:V2 = [ '#FF8F40' , '#304357' , 209 , 59 ] " guifg guibg ctermfg ctermbg +let s:V3 = [ '#B3B1AD' , '#0A0E14' , 145 , 16 ] " guifg guibg ctermfg ctermbg + +" Replace mode +let s:RE = [ '#3D424D' , '#FF3333' , 59 , 203 ] " guifg guibg ctermfg ctermbg + +let g:airline#themes#ayu_dark#palette = {} + +let g:airline#themes#ayu_dark#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let g:airline#themes#ayu_dark#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#ayu_dark#palette.insert_replace = { + \ 'airline_a': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ] } + +let g:airline#themes#ayu_dark#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let g:airline#themes#ayu_dark#palette.replace = copy(g:airline#themes#ayu_dark#palette.normal) +let g:airline#themes#ayu_dark#palette.replace.airline_a = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ] + +let s:IA = [ s:N1[1] , s:N3[1] , s:N1[3] , s:N3[3] , '' ] +let g:airline#themes#ayu_dark#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ayu_light.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ayu_light.vim new file mode 100644 index 0000000..bd3b695 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ayu_light.vim @@ -0,0 +1,34 @@ +" Normal mode +" (Dark) +let s:N1 = [ '#6C7680' , '#86B300' , 66 , 106 ] " guifg guibg ctermfg ctermbg +let s:N2 = [ '#86B300' , '#6C7680' , 106 , 66 ] " guifg guibg ctermfg ctermbg +let s:N3 = [ '#6C7680' , '#FAFAFA' , 66 , 231 ] " guifg guibg ctermfg ctermbg + +" Insert mode +let s:I1 = [ '#6C7680' , '#55B4D4' , 66 , 74 ] " guifg guibg ctermfg ctermbg +let s:I2 = [ '#55B4D4' , '#6C7680' , 74 , 66 ] " guifg guibg ctermfg ctermbg +let s:I3 = [ '#6C7680' , '#FAFAFA' , 66 , 231 ] " guifg guibg ctermfg ctermbg + +" Visual mode +let s:V1 = [ '#6C7680' , '#FA8D3E' , 66 , 209 ] " guifg guibg ctermfg ctermbg +let s:V2 = [ '#FA8D3E' , '#6C7680' , 209 , 66 ] " guifg guibg ctermfg ctermbg +let s:V3 = [ '#6C7680' , '#FAFAFA' , 66 , 231 ] " guifg guibg ctermfg ctermbg + +" Replace mode +let s:RE = [ '#6C7680' , '#F51818' , 66 , 196 ] " guifg guibg ctermfg ctermbg + +let g:airline#themes#ayu_light#palette = {} + +let g:airline#themes#ayu_light#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let g:airline#themes#ayu_light#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#ayu_light#palette.insert_replace = { + \ 'airline_a': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ] } + +let g:airline#themes#ayu_light#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let g:airline#themes#ayu_light#palette.replace = copy(g:airline#themes#ayu_light#palette.normal) +let g:airline#themes#ayu_light#palette.replace.airline_a = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ] + +let s:IA = [ s:N1[1] , s:N3[1] , s:N1[3] , s:N3[3] , '' ] +let g:airline#themes#ayu_light#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ayu_mirage.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ayu_mirage.vim new file mode 100644 index 0000000..bb93a92 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ayu_mirage.vim @@ -0,0 +1,34 @@ +" Normal mode +" (Dark) +let s:N1 = [ '#212733' , '#BBE67E' , 0 , 114 ] " guifg guibg ctermfg ctermbg +let s:N2 = [ '#BBE67E' , '#212733' , 114 , 0 ] " guifg guibg ctermfg ctermbg +let s:N3 = [ '#E6E1CF' , '#212733' , 15 , 0 ] " guifg guibg ctermfg ctermbg + +" Insert mode +let s:I1 = [ '#212733' , '#80D4FF' , 0 , 80 ] " guifg guibg ctermfg ctermbg +let s:I2 = [ '#80D4FF' , '#212733' , 80 , 0 ] " guifg guibg ctermfg ctermbg +let s:I3 = [ '#E6E1CF' , '#212733' , 15 , 0 ] " guifg guibg ctermfg ctermbg + +" Visual mode +let s:V1 = [ '#212733' , '#FFAE57' , 0 , 173 ] " guifg guibg ctermfg ctermbg +let s:V2 = [ '#FFAE57' , '#212733' , 173 , 0 ] " guifg guibg ctermfg ctermbg +let s:V3 = [ '#E6E1CF' , '#212733' , 15 , 0 ] " guifg guibg ctermfg ctermbg + +" Replace mode +let s:RE = [ '#212733' , '#F07178' , 0 , 167 ] " guifg guibg ctermfg ctermbg + +let g:airline#themes#ayu_mirage#palette = {} + +let g:airline#themes#ayu_mirage#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let g:airline#themes#ayu_mirage#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#ayu_mirage#palette.insert_replace = { + \ 'airline_a': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ] } + +let g:airline#themes#ayu_mirage#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let g:airline#themes#ayu_mirage#palette.replace = copy(g:airline#themes#ayu_mirage#palette.normal) +let g:airline#themes#ayu_mirage#palette.replace.airline_a = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ] + +let s:IA = [ s:N1[1] , s:N3[1] , s:N1[3] , s:N3[3] , '' ] +let g:airline#themes#ayu_mirage#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/badwolf.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/badwolf.vim new file mode 100644 index 0000000..e2b9006 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/badwolf.vim @@ -0,0 +1,52 @@ +let s:N1 = [ '#141413' , '#aeee00' , 232 , 154 ] " blackestgravel & lime +let s:N2 = [ '#f4cf86' , '#45413b' , 222 , 238 ] " dirtyblonde & deepgravel +let s:N3 = [ '#8cffba' , '#242321' , 121 , 235 ] " saltwatertaffy & darkgravel +let s:N4 = [ '#666462' , 241 ] " mediumgravel + +let s:I1 = [ '#141413' , '#0a9dff' , 232 , 39 ] " blackestgravel & tardis +let s:I2 = [ '#f4cf86' , '#005fff' , 222 , 27 ] " dirtyblonde & facebook +let s:I3 = [ '#0a9dff' , '#242321' , 39 , 235 ] " tardis & darkgravel + +let s:V1 = [ '#141413' , '#ffa724' , 232 , 214 ] " blackestgravel & orange +let s:V2 = [ '#000000' , '#fade3e' , 16 , 221 ] " coal & dalespale +let s:V3 = [ '#000000' , '#b88853' , 16 , 137 ] " coal & toffee +let s:V4 = [ '#c7915b' , 173 ] " coffee + +let s:PA = [ '#f4cf86' , 222 ] " dirtyblonde +let s:RE = [ '#ff9eb8' , 211 ] " dress + +let s:IA = [ s:N3[1] , s:N2[1] , s:N3[3] , s:N2[3] , '' ] + +let g:airline#themes#badwolf#palette = {} + +let g:airline#themes#badwolf#palette.accents = { + \ 'red': [ '#ff2c4b' , '' , 196 , '' , '' ] + \ } + +let g:airline#themes#badwolf#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#badwolf#palette.normal_modified = { + \ 'airline_b': [ s:N2[0] , s:N4[0] , s:N2[2] , s:N4[1] , '' ] , + \ 'airline_c': [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } + + +let g:airline#themes#badwolf#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#badwolf#palette.insert_modified = { + \ 'airline_c': [ s:V1[1] , s:N2[1] , s:V1[3] , s:N2[3] , '' ] } +let g:airline#themes#badwolf#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] } + + +let g:airline#themes#badwolf#palette.replace = copy(airline#themes#badwolf#palette.insert) +let g:airline#themes#badwolf#palette.replace.airline_a = [ s:I1[0] , s:RE[0] , s:I1[2] , s:RE[1] , '' ] +let g:airline#themes#badwolf#palette.replace_modified = g:airline#themes#badwolf#palette.insert_modified + + +let g:airline#themes#badwolf#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#badwolf#palette.visual_modified = { + \ 'airline_c': [ s:V3[0] , s:V4[0] , s:V3[2] , s:V4[1] , '' ] } + + +let g:airline#themes#badwolf#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#badwolf#palette.inactive_modified = { + \ 'airline_c': [ s:V1[1] , '' , s:V1[3] , '' , '' ] } + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16.vim new file mode 100644 index 0000000..0a7b442 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16.vim @@ -0,0 +1,181 @@ +let s:improved_contrast = get(g:, 'airline_base16_improved_contrast', 0) + +" Color palette +let s:gui_dark_gray = '#202020' +let s:cterm_dark_gray = 234 +let s:gui_med_gray_hi = '#303030' +let s:cterm_med_gray_hi = 236 +let s:gui_med_gray_lo = '#3a3a3a' +let s:cterm_med_gray_lo = 237 +let s:gui_light_gray = '#505050' +let s:cterm_light_gray = 239 +let s:gui_lightlight_gray = '#8A8A8A' +let s:cterm_lightlight_gray = 245 +let s:gui_green = '#99cc99' +let s:cterm_green = 151 +let s:gui_blue = '#6a9fb5' +let s:cterm_blue = 67 +let s:gui_purple = '#aa759f' +let s:cterm_purple = 139 +let s:gui_orange = '#d28445' +let s:cterm_orange = 173 +let s:gui_red = '#ac4142' +let s:cterm_red = 131 +let s:gui_pink = '#d7afd7' +let s:cterm_pink = 182 + +if get(g:, 'airline#themes#base16#constant', 0) + let g:airline#themes#base16#palette = {} + + " Normal mode + let s:N1 = [s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green] + if s:improved_contrast + let s:N2 = [s:gui_lightlight_gray, s:gui_med_gray_lo, s:cterm_lightlight_gray, s:cterm_med_gray_lo] + else + + let s:N2 = [s:gui_light_gray, s:gui_med_gray_lo, s:cterm_light_gray, s:cterm_med_gray_lo] + endif + let s:N3 = [s:gui_green, s:gui_med_gray_hi, s:cterm_green, s:cterm_med_gray_hi] + let g:airline#themes#base16#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + let g:airline#themes#base16#palette.normal_modified = { + \ 'airline_c': [s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, ''], + \ } + + " Insert mode + let s:I1 = [s:gui_med_gray_hi, s:gui_blue, s:cterm_med_gray_hi, s:cterm_blue] + let s:I3 = [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi] + let g:airline#themes#base16#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:I3) + let g:airline#themes#base16#palette.insert_modified = copy(g:airline#themes#base16#palette.normal_modified) + let g:airline#themes#base16#palette.insert_paste = { + \ 'airline_a': [s:gui_dark_gray, s:gui_orange, s:cterm_dark_gray, s:cterm_orange, ''], + \ } + + " Replace mode + let g:airline#themes#base16#palette.replace = { + \ 'airline_a': [s:gui_dark_gray, s:gui_red, s:cterm_dark_gray, s:cterm_red, ''], + \ 'airline_c': [s:gui_red, s:gui_med_gray_hi, s:cterm_red, s:cterm_med_gray_hi, ''], + \ } + let g:airline#themes#base16#palette.replace_modified = copy(g:airline#themes#base16#palette.insert_modified) + + " Visual mode + let s:V1 = [s:gui_dark_gray, s:gui_pink, s:cterm_dark_gray, s:cterm_pink] + let s:V3 = [s:gui_pink, s:gui_med_gray_hi, s:cterm_pink, s:cterm_med_gray_hi] + let g:airline#themes#base16#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:V3) + let g:airline#themes#base16#palette.visual_modified = copy(g:airline#themes#base16#palette.insert_modified) + + " Inactive window + if s:improved_contrast + let s:IA = [s:gui_dark_gray, s:gui_med_gray_hi, s:cterm_lightlight_gray, s:cterm_med_gray_hi, ''] + else + let s:IA = [s:gui_dark_gray, s:gui_med_gray_hi, s:cterm_light_gray, s:cterm_med_gray_hi, ''] + endif + let g:airline#themes#base16#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#base16#palette.inactive_modified = { + \ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''], + \ } +else + function! airline#themes#base16#refresh() + let g:airline#themes#base16#palette = {} + + let g:airline#themes#base16#palette.accents = { + \ 'red': airline#themes#get_highlight('Constant'), + \ } + + let s:N1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['DiffText', 'fg'], 'bold') + let s:N2 = airline#themes#get_highlight2(['Visual', 'fg'], ['Visual', 'bg']) + let s:N3 = airline#themes#get_highlight('CursorLine') + let g:airline#themes#base16#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + let group = airline#themes#get_highlight('Statement') + let g:airline#themes#base16#palette.normal_modified = { + \ 'airline_c': [ group[0], '', group[2], '', '' ] + \ } + + let s:I1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['DiffAdded', 'fg'], 'bold') + let s:I2 = airline#themes#get_highlight2(['DiffAdded', 'fg'], ['Normal', 'bg']) + let s:I3 = s:N3 + let g:airline#themes#base16#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#base16#palette.insert_modified = g:airline#themes#base16#palette.normal_modified + + let s:R1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['WarningMsg', 'fg'], 'bold') + let s:R2 = s:N2 + let s:R3 = s:N3 + let g:airline#themes#base16#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#base16#palette.replace_modified = g:airline#themes#base16#palette.normal_modified + + let s:V1 = airline#themes#get_highlight2(['DiffText', 'bg'], ['Constant', 'fg'], 'bold') + let s:V2 = airline#themes#get_highlight2(['Constant', 'fg'], ['Normal', 'bg']) + let s:V3 = s:N3 + let g:airline#themes#base16#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#base16#palette.visual_modified = g:airline#themes#base16#palette.normal_modified + + " Use VertSplit's bg and default fg (reversed) for inactive statusline. + let s:VS = airline#themes#get_highlight('VertSplit') + if s:improved_contrast + let s:IA = [ s:VS[1], 'NONE', s:VS[2], s:cterm_lightlight_gray, 'reverse'] + else + let s:IA = [ s:VS[1], 'NONE', s:VS[2], 'NONE', 'reverse'] + endif + let g:airline#themes#base16#palette.inactive = + \ airline#themes#generate_color_map(s:IA, s:IA, s:IA, s:IA, s:IA, s:IA) + let s:IM = [ s:VS[1], 'NONE', s:VS[2], 'NONE', 'reverse'] + let g:airline#themes#base16#palette.inactive_modified = + \ airline#themes#generate_color_map(s:IM, s:IM, s:IM, s:IM, s:IM, s:IM) + + " Warnings + let s:WI = airline#themes#get_highlight2(['WarningMsg', 'bg'], ['WarningMsg', 'fg'], 'bold') + let g:airline#themes#base16#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + + let g:airline#themes#base16#palette.normal_modified.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.insert.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.insert_modified.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.visual.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.visual_modified.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.replace.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + let g:airline#themes#base16#palette.replace_modified.airline_warning = + \ g:airline#themes#base16#palette.normal.airline_warning + + " Errors + let s:ER = airline#themes#get_highlight2(['ErrorMsg', 'bg'], ['ErrorMsg', 'fg'], 'bold') + let g:airline#themes#base16#palette.normal.airline_error = [ + \ s:ER[0], s:ER[1], s:ER[2], s:ER[3] + \ ] + + let g:airline#themes#base16#palette.normal_modified.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.insert.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.insert_modified.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.visual.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.visual_modified.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.replace.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + let g:airline#themes#base16#palette.replace_modified.airline_error = + \ g:airline#themes#base16#palette.normal.airline_error + + endfunction + call airline#themes#base16#refresh() +endif diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_3024.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_3024.vim new file mode 100644 index 0000000..f4e318a --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_3024.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 3024 Scheme by Jan T. Sott (http://github.com/idleberg) +let g:airline#themes#base16_3024#palette = {} +let s:gui00 = "#090300" +let s:gui01 = "#3a3432" +let s:gui02 = "#4a4543" +let s:gui03 = "#5c5855" +let s:gui04 = "#807d7c" +let s:gui05 = "#a5a2a2" +let s:gui06 = "#d6d5d4" +let s:gui07 = "#f7f7f7" +let s:gui08 = "#db2d20" +let s:gui09 = "#e8bbd0" +let s:gui0A = "#fded02" +let s:gui0B = "#01a252" +let s:gui0C = "#b5e4f4" +let s:gui0D = "#01a0e4" +let s:gui0E = "#a16a94" +let s:gui0F = "#cdab53" + +let s:cterm00 = 0 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 59 +let s:cterm04 = 102 +let s:cterm05 = 145 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 182 +let s:cterm0A = 11 +let s:cterm0B = 35 +let s:cterm0C = 153 +let s:cterm0D = 38 +let s:cterm0E = 132 +let s:cterm0F = 179 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_3024#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_3024#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_3024#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_3024#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_3024#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_3024#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_adwaita.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_adwaita.vim new file mode 100644 index 0000000..ab89658 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_adwaita.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Adwaita Scheme by Rory Bradford (https://github.com/roryrjb) +let g:airline#themes#base16_adwaita#palette = {} +let s:gui00 = "#2D3234" +let s:gui01 = "#33393B" +let s:gui02 = "#4B5356" +let s:gui03 = "#566164" +let s:gui04 = "#919494" +let s:gui05 = "#C5C6C5" +let s:gui06 = "#D3D4D5" +let s:gui07 = "#EEEEEC" +let s:gui08 = "#FFA500" +let s:gui09 = "#FFFF60" +let s:gui0A = "#91EE6F" +let s:gui0B = "#6FEE91" +let s:gui0C = "#6F91B4" +let s:gui0D = "#916FB4" +let s:gui0E = "#EE6F91" +let s:gui0F = "#EE6F6F" + +let s:cterm00 = 0 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 102 +let s:cterm04 = 145 +let s:cterm05 = 188 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 180 +let s:cterm09 = 186 +let s:cterm0A = 150 +let s:cterm0B = 115 +let s:cterm0C = 110 +let s:cterm0D = 140 +let s:cterm0E = 175 +let s:cterm0F = 174 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_adwaita#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_adwaita#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_adwaita#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_adwaita#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_adwaita#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_adwaita#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_apathy.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_apathy.vim new file mode 100644 index 0000000..85a9584 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_apathy.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Apathy Scheme by Jannik Siebert (https://github.com/janniks) +let g:airline#themes#base16_apathy#palette = {} +let s:gui00 = "#031A16" +let s:gui01 = "#0B342D" +let s:gui02 = "#184E45" +let s:gui03 = "#2B685E" +let s:gui04 = "#5F9C92" +let s:gui05 = "#81B5AC" +let s:gui06 = "#A7CEC8" +let s:gui07 = "#D2E7E4" +let s:gui08 = "#3E9688" +let s:gui09 = "#3E7996" +let s:gui0A = "#3E4C96" +let s:gui0B = "#883E96" +let s:gui0C = "#963E4C" +let s:gui0D = "#96883E" +let s:gui0E = "#4C963E" +let s:gui0F = "#3E965B" + +let s:cterm00 = 0 +let s:cterm01 = 22 +let s:cterm02 = 23 +let s:cterm03 = 23 +let s:cterm04 = 72 +let s:cterm05 = 109 +let s:cterm06 = 152 +let s:cterm07 = 188 +let s:cterm08 = 66 +let s:cterm09 = 66 +let s:cterm0A = 60 +let s:cterm0B = 96 +let s:cterm0C = 95 +let s:cterm0D = 101 +let s:cterm0E = 65 +let s:cterm0F = 65 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_apathy#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_apathy#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_apathy#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_apathy#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_apathy#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_apathy#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_ashes.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_ashes.vim new file mode 100644 index 0000000..a162c67 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_ashes.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Ashes Scheme by Jannik Siebert (https://github.com/janniks) +let g:airline#themes#base16_ashes#palette = {} +let s:gui00 = "#1C2023" +let s:gui01 = "#393F45" +let s:gui02 = "#565E65" +let s:gui03 = "#747C84" +let s:gui04 = "#ADB3BA" +let s:gui05 = "#C7CCD1" +let s:gui06 = "#DFE2E5" +let s:gui07 = "#F3F4F5" +let s:gui08 = "#C7AE95" +let s:gui09 = "#C7C795" +let s:gui0A = "#AEC795" +let s:gui0B = "#95C7AE" +let s:gui0C = "#95AEC7" +let s:gui0D = "#AE95C7" +let s:gui0E = "#C795AE" +let s:gui0F = "#C79595" + +let s:cterm00 = 0 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 102 +let s:cterm04 = 145 +let s:cterm05 = 188 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 180 +let s:cterm09 = 186 +let s:cterm0A = 150 +let s:cterm0B = 115 +let s:cterm0C = 110 +let s:cterm0D = 140 +let s:cterm0E = 175 +let s:cterm0F = 174 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ashes#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ashes#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ashes#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ashes#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_ashes#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_ashes#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierdune.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierdune.vim new file mode 100644 index 0000000..c3d54c6 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierdune.vim @@ -0,0 +1,89 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Atelier Dune Scheme by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/dune) +let g:airline#themes#base16_atelierdune#palette = {} + +let s:gui00 = "#20201d" +let s:gui01 = "#292824" +let s:gui02 = "#6e6b5e" +let s:gui03 = "#7d7a68" +let s:gui04 = "#999580" +let s:gui05 = "#a6a28c" +let s:gui06 = "#e8e4cf" +let s:gui07 = "#fefbec" +let s:gui08 = "#d73737" +let s:gui09 = "#b65611" +let s:gui0A = "#cfb017" +let s:gui0B = "#60ac39" +let s:gui0C = "#1fad83" +let s:gui0D = "#6684e1" +let s:gui0E = "#b854d4" +let s:gui0F = "#d43552" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 101 +let s:cterm04 = 102 +let s:cterm05 = 144 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 182 +let s:cterm0B = 71 +let s:cterm0C = 36 +let s:cterm0D = 68 +let s:cterm0E = 134 +" those two are not used +let s:cterm0A = 178 +let s:cterm0F = 167 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierdune#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierdune#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierdune#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierdune#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_atelierdune#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Warning info +let s:WARNING = [ s:gui01, s:gui0A, s:cterm0C, s:cterm06 ] +let s:ERROR = [ s:gui07, s:gui08, s:cterm07, s:cterm08 ] + +let g:airline#themes#base16_atelierdune#palette.normal.airline_warning = s:WARNING +let g:airline#themes#base16_atelierdune#palette.insert.airline_warning = s:WARNING +let g:airline#themes#base16_atelierdune#palette.visual.airline_warning = s:WARNING +let g:airline#themes#base16_atelierdune#palette.replace.airline_warning = s:WARNING + +let g:airline#themes#base16_atelierdune#palette.normal.airline_error = s:ERROR +let g:airline#themes#base16_atelierdune#palette.insert.airline_error = s:ERROR +let g:airline#themes#base16_atelierdune#palette.visual.airline_error = s:ERROR +let g:airline#themes#base16_atelierdune#palette.replace.airline_error = s:ERROR + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_atelierdune#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierforest.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierforest.vim new file mode 100644 index 0000000..70c23de --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierforest.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Atelier Forest Scheme by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/forest) +let g:airline#themes#base16_atelierforest#palette = {} +let s:gui00 = "#1b1918" +let s:gui01 = "#2c2421" +let s:gui02 = "#68615e" +let s:gui03 = "#766e6b" +let s:gui04 = "#9c9491" +let s:gui05 = "#a8a19f" +let s:gui06 = "#e6e2e0" +let s:gui07 = "#f1efee" +let s:gui08 = "#f22c40" +let s:gui09 = "#df5320" +let s:gui0A = "#d5911a" +let s:gui0B = "#5ab738" +let s:gui0C = "#00ad9c" +let s:gui0D = "#407ee7" +let s:gui0E = "#6666ea" +let s:gui0F = "#c33ff3" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 95 +let s:cterm04 = 138 +let s:cterm05 = 145 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 197 +let s:cterm09 = 166 +let s:cterm0A = 172 +let s:cterm0B = 71 +let s:cterm0C = 37 +let s:cterm0D = 68 +let s:cterm0E = 62 +let s:cterm0F = 135 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierforest#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierforest#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierforest#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierforest#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_atelierforest#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_atelierforest#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierheath.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierheath.vim new file mode 100644 index 0000000..20179c7 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierheath.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Atelier Heath Scheme by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/heath) +let g:airline#themes#base16_atelierheath#palette = {} +let s:gui00 = "#1b181b" +let s:gui01 = "#292329" +let s:gui02 = "#695d69" +let s:gui03 = "#776977" +let s:gui04 = "#9e8f9e" +let s:gui05 = "#ab9bab" +let s:gui06 = "#d8cad8" +let s:gui07 = "#f7f3f7" +let s:gui08 = "#ca402b" +let s:gui09 = "#a65926" +let s:gui0A = "#bb8a35" +let s:gui0B = "#379a37" +let s:gui0C = "#159393" +let s:gui0D = "#516aec" +let s:gui0E = "#7b59c0" +let s:gui0F = "#cc33cc" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 96 +let s:cterm04 = 139 +let s:cterm05 = 139 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 166 +let s:cterm09 = 130 +let s:cterm0A = 137 +let s:cterm0B = 65 +let s:cterm0C = 30 +let s:cterm0D = 12 +let s:cterm0E = 97 +let s:cterm0F = 170 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierheath#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierheath#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierheath#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierheath#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_atelierheath#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_atelierheath#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierlakeside.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierlakeside.vim new file mode 100644 index 0000000..0d1e758 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierlakeside.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Atelier Lakeside Scheme by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/lakeside/) +let g:airline#themes#base16_atelierlakeside#palette = {} +let s:gui00 = "#161b1d" +let s:gui01 = "#1f292e" +let s:gui02 = "#516d7b" +let s:gui03 = "#5a7b8c" +let s:gui04 = "#7195a8" +let s:gui05 = "#7ea2b4" +let s:gui06 = "#c1e4f6" +let s:gui07 = "#ebf8ff" +let s:gui08 = "#d22d72" +let s:gui09 = "#935c25" +let s:gui0A = "#8a8a0f" +let s:gui0B = "#568c3b" +let s:gui0C = "#2d8f6f" +let s:gui0D = "#257fad" +let s:gui0E = "#5d5db1" +let s:gui0F = "#b72dd2" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 60 +let s:cterm03 = 66 +let s:cterm04 = 67 +let s:cterm05 = 109 +let s:cterm06 = 153 +let s:cterm07 = 195 +let s:cterm08 = 161 +let s:cterm09 = 94 +let s:cterm0A = 100 +let s:cterm0B = 65 +let s:cterm0C = 29 +let s:cterm0D = 31 +let s:cterm0E = 61 +let s:cterm0F = 5 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierlakeside#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierlakeside#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierlakeside#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierlakeside#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_atelierlakeside#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_atelierlakeside#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierseaside.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierseaside.vim new file mode 100644 index 0000000..0314ea2 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_atelierseaside.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Atelier Seaside Scheme by Bram de Haan (http://atelierbram.github.io/syntax-highlighting/atelier-schemes/seaside/) +let g:airline#themes#base16_atelierseaside#palette = {} +let s:gui00 = "#131513" +let s:gui01 = "#242924" +let s:gui02 = "#5e6e5e" +let s:gui03 = "#687d68" +let s:gui04 = "#809980" +let s:gui05 = "#8ca68c" +let s:gui06 = "#cfe8cf" +let s:gui07 = "#f0fff0" +let s:gui08 = "#e6193c" +let s:gui09 = "#87711d" +let s:gui0A = "#c3c322" +let s:gui0B = "#29a329" +let s:gui0C = "#1999b3" +let s:gui0D = "#3d62f5" +let s:gui0E = "#ad2bee" +let s:gui0F = "#e619c3" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 65 +let s:cterm04 = 102 +let s:cterm05 = 108 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 161 +let s:cterm09 = 94 +let s:cterm0A = 3 +let s:cterm0B = 2 +let s:cterm0C = 31 +let s:cterm0D = 12 +let s:cterm0E = 129 +let s:cterm0F = 5 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierseaside#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierseaside#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierseaside#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_atelierseaside#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_atelierseaside#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_atelierseaside#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_bespin.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_bespin.vim new file mode 100644 index 0000000..b4f3523 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_bespin.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Bespin Scheme by Jan T. Sott +let g:airline#themes#base16_bespin#palette = {} +let s:gui00 = "#28211c" +let s:gui01 = "#36312e" +let s:gui02 = "#5e5d5c" +let s:gui03 = "#666666" +let s:gui04 = "#797977" +let s:gui05 = "#8a8986" +let s:gui06 = "#9d9b97" +let s:gui07 = "#baae9e" +let s:gui08 = "#cf6a4c" +let s:gui09 = "#cf7d34" +let s:gui0A = "#f9ee98" +let s:gui0B = "#54be0d" +let s:gui0C = "#afc4db" +let s:gui0D = "#5ea6ea" +let s:gui0E = "#9b859d" +let s:gui0F = "#937121" + +let s:cterm00 = 0 +let s:cterm01 = 58 +let s:cterm02 = 59 +let s:cterm03 = 241 +let s:cterm04 = 102 +let s:cterm05 = 102 +let s:cterm06 = 138 +let s:cterm07 = 145 +let s:cterm08 = 167 +let s:cterm09 = 173 +let s:cterm0A = 228 +let s:cterm0B = 70 +let s:cterm0C = 152 +let s:cterm0D = 74 +let s:cterm0E = 103 +let s:cterm0F = 94 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bespin#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bespin#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bespin#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bespin#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_bespin#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_bespin#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_brewer.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_brewer.vim new file mode 100644 index 0000000..0164677 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_brewer.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Brewer Scheme by Timothée Poisot (http://github.com/tpoisot) +let g:airline#themes#base16_brewer#palette = {} +let s:gui00 = "#0c0d0e" +let s:gui01 = "#2e2f30" +let s:gui02 = "#515253" +let s:gui03 = "#737475" +let s:gui04 = "#959697" +let s:gui05 = "#b7b8b9" +let s:gui06 = "#dadbdc" +let s:gui07 = "#fcfdfe" +let s:gui08 = "#e31a1c" +let s:gui09 = "#e6550d" +let s:gui0A = "#dca060" +let s:gui0B = "#31a354" +let s:gui0C = "#80b1d3" +let s:gui0D = "#3182bd" +let s:gui0E = "#756bb1" +let s:gui0F = "#b15928" + +let s:cterm00 = 0 +let s:cterm01 = 17 +let s:cterm02 = 59 +let s:cterm03 = 66 +let s:cterm04 = 102 +let s:cterm05 = 145 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 166 +let s:cterm0A = 179 +let s:cterm0B = 71 +let s:cterm0C = 110 +let s:cterm0D = 67 +let s:cterm0E = 97 +let s:cterm0F = 130 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_brewer#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_brewer#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_brewer#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_brewer#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_brewer#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_brewer#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_bright.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_bright.vim new file mode 100644 index 0000000..23c7432 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_bright.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Bright Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_bright#palette = {} +let s:gui00 = "#000000" +let s:gui01 = "#303030" +let s:gui02 = "#505050" +let s:gui03 = "#b0b0b0" +let s:gui04 = "#d0d0d0" +let s:gui05 = "#e0e0e0" +let s:gui06 = "#f5f5f5" +let s:gui07 = "#ffffff" +let s:gui08 = "#fb0120" +let s:gui09 = "#fc6d24" +let s:gui0A = "#fda331" +let s:gui0B = "#a1c659" +let s:gui0C = "#76c7b7" +let s:gui0D = "#6fb3d2" +let s:gui0E = "#d381c3" +let s:gui0F = "#be643c" + +let s:cterm00 = 0 +let s:cterm01 = 236 +let s:cterm02 = 239 +let s:cterm03 = 249 +let s:cterm04 = 252 +let s:cterm05 = 253 +let s:cterm06 = 15 +let s:cterm07 = 15 +let s:cterm08 = 9 +let s:cterm09 = 202 +let s:cterm0A = 215 +let s:cterm0B = 149 +let s:cterm0C = 115 +let s:cterm0D = 74 +let s:cterm0E = 175 +let s:cterm0F = 131 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bright#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bright#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bright#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_bright#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_bright#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_bright#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_chalk.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_chalk.vim new file mode 100644 index 0000000..d0345a9 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_chalk.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Chalk Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_chalk#palette = {} +let s:gui00 = "#151515" +let s:gui01 = "#202020" +let s:gui02 = "#303030" +let s:gui03 = "#505050" +let s:gui04 = "#b0b0b0" +let s:gui05 = "#d0d0d0" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#f5f5f5" +let s:gui08 = "#fb9fb1" +let s:gui09 = "#eda987" +let s:gui0A = "#ddb26f" +let s:gui0B = "#acc267" +let s:gui0C = "#12cfc0" +let s:gui0D = "#6fc2ef" +let s:gui0E = "#e1a3ee" +let s:gui0F = "#deaf8f" + +let s:cterm00 = 233 +let s:cterm01 = 234 +let s:cterm02 = 236 +let s:cterm03 = 239 +let s:cterm04 = 249 +let s:cterm05 = 252 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 217 +let s:cterm09 = 216 +let s:cterm0A = 179 +let s:cterm0B = 143 +let s:cterm0C = 6 +let s:cterm0D = 75 +let s:cterm0E = 183 +let s:cterm0F = 180 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_chalk#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_chalk#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_chalk#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_chalk#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_chalk#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_chalk#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_classic.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_classic.vim new file mode 100644 index 0000000..ac37123 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_classic.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Classic Scheme by Jason Heeris (http://heeris.id.au) +let g:airline#themes#base16_classic#palette = {} +let s:gui00 = "#151515" +let s:gui01 = "#202020" +let s:gui02 = "#303030" +let s:gui03 = "#505050" +let s:gui04 = "#B0B0B0" +let s:gui05 = "#D0D0D0" +let s:gui06 = "#E0E0E0" +let s:gui07 = "#F5F5F5" +let s:gui08 = "#AC4142" +let s:gui09 = "#D28445" +let s:gui0A = "#F4BF75" +let s:gui0B = "#90A959" +let s:gui0C = "#75B5AA" +let s:gui0D = "#6A9FB5" +let s:gui0E = "#AA759F" +let s:gui0F = "#8F5536" + +let s:cterm00 = 0 +let s:cterm01 = 18 +let s:cterm02 = 19 +let s:cterm03 = 8 +let s:cterm04 = 20 +let s:cterm05 = 7 +let s:cterm06 = 21 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 16 +let s:cterm0A = 3 +let s:cterm0B = 2 +let s:cterm0C = 6 +let s:cterm0D = 4 +let s:cterm0E = 5 +let s:cterm0F = 17 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_classic#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_classic#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_classic#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_classic#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_classic#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_classic#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_codeschool.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_codeschool.vim new file mode 100644 index 0000000..f9cf956 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_codeschool.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Codeschool Scheme by brettof86 +let g:airline#themes#base16_codeschool#palette = {} +let s:gui00 = "#232c31" +let s:gui01 = "#1c3657" +let s:gui02 = "#2a343a" +let s:gui03 = "#3f4944" +let s:gui04 = "#84898c" +let s:gui05 = "#9ea7a6" +let s:gui06 = "#a7cfa3" +let s:gui07 = "#b5d8f6" +let s:gui08 = "#2a5491" +let s:gui09 = "#43820d" +let s:gui0A = "#a03b1e" +let s:gui0B = "#237986" +let s:gui0C = "#b02f30" +let s:gui0D = "#484d79" +let s:gui0E = "#c59820" +let s:gui0F = "#c98344" + +let s:cterm00 = 17 +let s:cterm01 = 23 +let s:cterm02 = 23 +let s:cterm03 = 59 +let s:cterm04 = 102 +let s:cterm05 = 145 +let s:cterm06 = 151 +let s:cterm07 = 153 +let s:cterm08 = 24 +let s:cterm09 = 64 +let s:cterm0A = 130 +let s:cterm0B = 30 +let s:cterm0C = 125 +let s:cterm0D = 60 +let s:cterm0E = 172 +let s:cterm0F = 173 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_codeschool#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_codeschool#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_codeschool#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_codeschool#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_codeschool#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_codeschool#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_colors.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_colors.vim new file mode 100644 index 0000000..d65442d --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_colors.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Colors Scheme by mrmrs (http://clrs.cc) +let g:airline#themes#base16_colors#palette = {} +let s:gui00 = "#111111" +let s:gui01 = "#333333" +let s:gui02 = "#555555" +let s:gui03 = "#777777" +let s:gui04 = "#999999" +let s:gui05 = "#bbbbbb" +let s:gui06 = "#dddddd" +let s:gui07 = "#ffffff" +let s:gui08 = "#ff4136" +let s:gui09 = "#ff851b" +let s:gui0A = "#ffdc00" +let s:gui0B = "#2ecc40" +let s:gui0C = "#7fdbff" +let s:gui0D = "#0074d9" +let s:gui0E = "#b10dc9" +let s:gui0F = "#85144b" + +let s:cterm00 = 233 +let s:cterm01 = 236 +let s:cterm02 = 240 +let s:cterm03 = 243 +let s:cterm04 = 246 +let s:cterm05 = 250 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 203 +let s:cterm09 = 208 +let s:cterm0A = 220 +let s:cterm0B = 41 +let s:cterm0C = 117 +let s:cterm0D = 32 +let s:cterm0E = 128 +let s:cterm0F = 89 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_colors#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_colors#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_colors#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_colors#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_colors#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_colors#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_default.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_default.vim new file mode 100644 index 0000000..841c12e --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_default.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Default Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_default#palette = {} +let s:gui00 = "#181818" +let s:gui01 = "#282828" +let s:gui02 = "#383838" +let s:gui03 = "#585858" +let s:gui04 = "#b8b8b8" +let s:gui05 = "#d8d8d8" +let s:gui06 = "#e8e8e8" +let s:gui07 = "#f8f8f8" +let s:gui08 = "#ab4642" +let s:gui09 = "#dc9656" +let s:gui0A = "#f7ca88" +let s:gui0B = "#a1b56c" +let s:gui0C = "#86c1b9" +let s:gui0D = "#7cafc2" +let s:gui0E = "#ba8baf" +let s:gui0F = "#a16946" + +let s:cterm00 = 233 +let s:cterm01 = 235 +let s:cterm02 = 237 +let s:cterm03 = 240 +let s:cterm04 = 249 +let s:cterm05 = 253 +let s:cterm06 = 254 +let s:cterm07 = 15 +let s:cterm08 = 131 +let s:cterm09 = 173 +let s:cterm0A = 222 +let s:cterm0B = 143 +let s:cterm0C = 109 +let s:cterm0D = 109 +let s:cterm0E = 139 +let s:cterm0F = 131 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_default#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_default#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_default#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_default#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_default#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_default#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_eighties.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_eighties.vim new file mode 100644 index 0000000..7161e39 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_eighties.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Eighties Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_eighties#palette = {} +let s:gui00 = "#2d2d2d" +let s:gui01 = "#393939" +let s:gui02 = "#515151" +let s:gui03 = "#747369" +let s:gui04 = "#a09f93" +let s:gui05 = "#d3d0c8" +let s:gui06 = "#e8e6df" +let s:gui07 = "#f2f0ec" +let s:gui08 = "#f2777a" +let s:gui09 = "#f99157" +let s:gui0A = "#ffcc66" +let s:gui0B = "#99cc99" +let s:gui0C = "#66cccc" +let s:gui0D = "#6699cc" +let s:gui0E = "#cc99cc" +let s:gui0F = "#d27b53" + +let s:cterm00 = 236 +let s:cterm01 = 237 +let s:cterm02 = 239 +let s:cterm03 = 95 +let s:cterm04 = 144 +let s:cterm05 = 188 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 210 +let s:cterm09 = 209 +let s:cterm0A = 221 +let s:cterm0B = 114 +let s:cterm0C = 80 +let s:cterm0D = 68 +let s:cterm0E = 176 +let s:cterm0F = 173 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_eighties#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_eighties#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_eighties#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_eighties#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_eighties#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_eighties#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_embers.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_embers.vim new file mode 100644 index 0000000..0c26076 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_embers.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Embers Scheme by Jannik Siebert (https://github.com/janniks) +let g:airline#themes#base16_embers#palette = {} +let s:gui00 = "#16130F" +let s:gui01 = "#2C2620" +let s:gui02 = "#433B32" +let s:gui03 = "#5A5047" +let s:gui04 = "#8A8075" +let s:gui05 = "#A39A90" +let s:gui06 = "#BEB6AE" +let s:gui07 = "#DBD6D1" +let s:gui08 = "#826D57" +let s:gui09 = "#828257" +let s:gui0A = "#6D8257" +let s:gui0B = "#57826D" +let s:gui0C = "#576D82" +let s:gui0D = "#6D5782" +let s:gui0E = "#82576D" +let s:gui0F = "#825757" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 59 +let s:cterm04 = 102 +let s:cterm05 = 138 +let s:cterm06 = 145 +let s:cterm07 = 188 +let s:cterm08 = 95 +let s:cterm09 = 101 +let s:cterm0A = 65 +let s:cterm0B = 65 +let s:cterm0C = 60 +let s:cterm0D = 60 +let s:cterm0E = 95 +let s:cterm0F = 95 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_embers#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_embers#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_embers#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_embers#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_embers#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_embers#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_flat.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_flat.vim new file mode 100644 index 0000000..aa4f5cf --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_flat.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Flat Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_flat#palette = {} +let s:gui00 = "#2C3E50" +let s:gui01 = "#34495E" +let s:gui02 = "#7F8C8D" +let s:gui03 = "#95A5A6" +let s:gui04 = "#BDC3C7" +let s:gui05 = "#e0e0e0" +let s:gui06 = "#f5f5f5" +let s:gui07 = "#ECF0F1" +let s:gui08 = "#E74C3C" +let s:gui09 = "#E67E22" +let s:gui0A = "#F1C40F" +let s:gui0B = "#2ECC71" +let s:gui0C = "#1ABC9C" +let s:gui0D = "#3498DB" +let s:gui0E = "#9B59B6" +let s:gui0F = "#be643c" + +let s:cterm00 = 23 +let s:cterm01 = 59 +let s:cterm02 = 102 +let s:cterm03 = 109 +let s:cterm04 = 146 +let s:cterm05 = 253 +let s:cterm06 = 15 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 172 +let s:cterm0A = 220 +let s:cterm0B = 41 +let s:cterm0C = 37 +let s:cterm0D = 68 +let s:cterm0E = 97 +let s:cterm0F = 131 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_flat#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_flat#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_flat#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_flat#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_flat#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_flat#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_google.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_google.vim new file mode 100644 index 0000000..f20da8c --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_google.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Google Scheme by Seth Wright (http://sethawright.com) +let g:airline#themes#base16_google#palette = {} +let s:gui00 = "#1d1f21" +let s:gui01 = "#282a2e" +let s:gui02 = "#373b41" +let s:gui03 = "#969896" +let s:gui04 = "#b4b7b4" +let s:gui05 = "#c5c8c6" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#ffffff" +let s:gui08 = "#CC342B" +let s:gui09 = "#F96A38" +let s:gui0A = "#FBA922" +let s:gui0B = "#198844" +let s:gui0C = "#3971ED" +let s:gui0D = "#3971ED" +let s:gui0E = "#A36AC7" +let s:gui0F = "#3971ED" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 102 +let s:cterm04 = 145 +let s:cterm05 = 188 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 166 +let s:cterm09 = 203 +let s:cterm0A = 214 +let s:cterm0B = 29 +let s:cterm0C = 12 +let s:cterm0D = 12 +let s:cterm0E = 134 +let s:cterm0F = 12 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_google#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_google#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_google#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_google#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_google#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_google#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_grayscale.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_grayscale.vim new file mode 100644 index 0000000..bf60eb3 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_grayscale.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Grayscale Scheme by Alexandre Gavioli (https://github.com/Alexx2/) +let g:airline#themes#base16_grayscale#palette = {} +let s:gui00 = "#101010" +let s:gui01 = "#252525" +let s:gui02 = "#464646" +let s:gui03 = "#525252" +let s:gui04 = "#ababab" +let s:gui05 = "#b9b9b9" +let s:gui06 = "#e3e3e3" +let s:gui07 = "#f7f7f7" +let s:gui08 = "#7c7c7c" +let s:gui09 = "#999999" +let s:gui0A = "#a0a0a0" +let s:gui0B = "#8e8e8e" +let s:gui0C = "#868686" +let s:gui0D = "#686868" +let s:gui0E = "#747474" +let s:gui0F = "#5e5e5e" + +let s:cterm00 = 233 +let s:cterm01 = 235 +let s:cterm02 = 238 +let s:cterm03 = 239 +let s:cterm04 = 248 +let s:cterm05 = 250 +let s:cterm06 = 254 +let s:cterm07 = 15 +let s:cterm08 = 243 +let s:cterm09 = 246 +let s:cterm0A = 247 +let s:cterm0B = 245 +let s:cterm0C = 244 +let s:cterm0D = 241 +let s:cterm0E = 243 +let s:cterm0F = 240 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_grayscale#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_grayscale#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_grayscale#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_grayscale#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_grayscale#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_grayscale#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_greenscreen.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_greenscreen.vim new file mode 100644 index 0000000..b460449 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_greenscreen.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Green Screen Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_greenscreen#palette = {} +let s:gui00 = "#001100" +let s:gui01 = "#003300" +let s:gui02 = "#005500" +let s:gui03 = "#007700" +let s:gui04 = "#009900" +let s:gui05 = "#00bb00" +let s:gui06 = "#00dd00" +let s:gui07 = "#00ff00" +let s:gui08 = "#007700" +let s:gui09 = "#009900" +let s:gui0A = "#007700" +let s:gui0B = "#00bb00" +let s:gui0C = "#005500" +let s:gui0D = "#009900" +let s:gui0E = "#00bb00" +let s:gui0F = "#005500" + +let s:cterm00 = 0 +let s:cterm01 = 22 +let s:cterm02 = 22 +let s:cterm03 = 28 +let s:cterm04 = 28 +let s:cterm05 = 34 +let s:cterm06 = 40 +let s:cterm07 = 10 +let s:cterm08 = 28 +let s:cterm09 = 28 +let s:cterm0A = 28 +let s:cterm0B = 34 +let s:cterm0C = 22 +let s:cterm0D = 28 +let s:cterm0E = 34 +let s:cterm0F = 22 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_greenscreen#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_greenscreen#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_greenscreen#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_greenscreen#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_greenscreen#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_greenscreen#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_gruvbox_dark_hard.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_gruvbox_dark_hard.vim new file mode 100644 index 0000000..a3a5269 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_gruvbox_dark_hard.vim @@ -0,0 +1,73 @@ +" vim-airline template by ronald2wing (https://github.com/ronald2wing) +" Base 16 Gruvbox Dark Hard Scheme by Dawid Kurek (https://github.com/dawikur) +let g:airline#themes#base16_gruvbox_dark_hard#palette = {} +let s:gui00 = "#1d2021" +let s:gui01 = "#3c3836" +let s:gui02 = "#504945" +let s:gui03 = "#665c54" +let s:gui04 = "#bdae93" +let s:gui05 = "#d5c4a1" +let s:gui06 = "#ebdbb2" +let s:gui07 = "#fbf1c7" +let s:gui08 = "#fb4934" +let s:gui09 = "#fe8019" +let s:gui0A = "#fabd2f" +let s:gui0B = "#b8bb26" +let s:gui0C = "#8ec07c" +let s:gui0D = "#83a598" +let s:gui0E = "#d3869b" +let s:gui0F = "#d65d0e" + +let s:cterm00 = 234 +let s:cterm01 = 235 +let s:cterm02 = 236 +let s:cterm03 = 240 +let s:cterm04 = 143 +let s:cterm05 = 187 +let s:cterm06 = 223 +let s:cterm07 = 230 +let s:cterm08 = 203 +let s:cterm09 = 208 +let s:cterm0A = 214 +let s:cterm0B = 142 +let s:cterm0C = 108 +let s:cterm0D = 108 +let s:cterm0E = 175 +let s:cterm0F = 166 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_gruvbox_dark_hard#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_gruvbox_dark_hard#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_gruvbox_dark_hard#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_gruvbox_dark_hard#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_gruvbox_dark_hard#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_gruvbox_dark_hard#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_harmonic16.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_harmonic16.vim new file mode 100644 index 0000000..9700a04 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_harmonic16.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 harmonic16 Scheme by Jannik Siebert (https://github.com/janniks) +let g:airline#themes#base16_harmonic16#palette = {} +let s:gui00 = "#0b1c2c" +let s:gui01 = "#223b54" +let s:gui02 = "#405c79" +let s:gui03 = "#627e99" +let s:gui04 = "#aabcce" +let s:gui05 = "#cbd6e2" +let s:gui06 = "#e5ebf1" +let s:gui07 = "#f7f9fb" +let s:gui08 = "#bf8b56" +let s:gui09 = "#bfbf56" +let s:gui0A = "#8bbf56" +let s:gui0B = "#56bf8b" +let s:gui0C = "#568bbf" +let s:gui0D = "#8b56bf" +let s:gui0E = "#bf568b" +let s:gui0F = "#bf5656" + +let s:cterm00 = 0 +let s:cterm01 = 23 +let s:cterm02 = 60 +let s:cterm03 = 66 +let s:cterm04 = 146 +let s:cterm05 = 188 +let s:cterm06 = 189 +let s:cterm07 = 15 +let s:cterm08 = 137 +let s:cterm09 = 143 +let s:cterm0A = 107 +let s:cterm0B = 72 +let s:cterm0C = 67 +let s:cterm0D = 97 +let s:cterm0E = 132 +let s:cterm0F = 131 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_harmonic16#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_harmonic16#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_harmonic16#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_harmonic16#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_harmonic16#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_harmonic16#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_hopscotch.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_hopscotch.vim new file mode 100644 index 0000000..0e78688 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_hopscotch.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Hopscotch Scheme by Jan T. Sott +let g:airline#themes#base16_hopscotch#palette = {} +let s:gui00 = "#322931" +let s:gui01 = "#433b42" +let s:gui02 = "#5c545b" +let s:gui03 = "#797379" +let s:gui04 = "#989498" +let s:gui05 = "#b9b5b8" +let s:gui06 = "#d5d3d5" +let s:gui07 = "#ffffff" +let s:gui08 = "#dd464c" +let s:gui09 = "#fd8b19" +let s:gui0A = "#fdcc59" +let s:gui0B = "#8fc13e" +let s:gui0C = "#149b93" +let s:gui0D = "#1290bf" +let s:gui0E = "#c85e7c" +let s:gui0F = "#b33508" + +let s:cterm00 = 53 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 96 +let s:cterm04 = 102 +let s:cterm05 = 145 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 208 +let s:cterm0A = 221 +let s:cterm0B = 107 +let s:cterm0C = 30 +let s:cterm0D = 31 +let s:cterm0E = 168 +let s:cterm0F = 130 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_hopscotch#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_hopscotch#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_hopscotch#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_hopscotch#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_hopscotch#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_hopscotch#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_isotope.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_isotope.vim new file mode 100644 index 0000000..aa5e0bd --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_isotope.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Isotope Scheme by Jan T. Sott +let g:airline#themes#base16_isotope#palette = {} +let s:gui00 = "#000000" +let s:gui01 = "#404040" +let s:gui02 = "#606060" +let s:gui03 = "#808080" +let s:gui04 = "#c0c0c0" +let s:gui05 = "#d0d0d0" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#ffffff" +let s:gui08 = "#ff0000" +let s:gui09 = "#ff9900" +let s:gui0A = "#ff0099" +let s:gui0B = "#33ff00" +let s:gui0C = "#00ffff" +let s:gui0D = "#0066ff" +let s:gui0E = "#cc00ff" +let s:gui0F = "#3300ff" + +let s:cterm00 = 0 +let s:cterm01 = 237 +let s:cterm02 = 241 +let s:cterm03 = 244 +let s:cterm04 = 250 +let s:cterm05 = 252 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 9 +let s:cterm09 = 208 +let s:cterm0A = 198 +let s:cterm0B = 82 +let s:cterm0C = 14 +let s:cterm0D = 27 +let s:cterm0E = 165 +let s:cterm0F = 57 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_isotope#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_isotope#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_isotope#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_isotope#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_isotope#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_isotope#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_londontube.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_londontube.vim new file mode 100644 index 0000000..b228e23 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_londontube.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 London Tube Scheme by Jan T. Sott +let g:airline#themes#base16_londontube#palette = {} +let s:gui00 = "#231f20" +let s:gui01 = "#1c3f95" +let s:gui02 = "#5a5758" +let s:gui03 = "#737171" +let s:gui04 = "#959ca1" +let s:gui05 = "#d9d8d8" +let s:gui06 = "#e7e7e8" +let s:gui07 = "#ffffff" +let s:gui08 = "#ee2e24" +let s:gui09 = "#f386a1" +let s:gui0A = "#ffd204" +let s:gui0B = "#00853e" +let s:gui0C = "#85cebc" +let s:gui0D = "#009ddc" +let s:gui0E = "#98005d" +let s:gui0F = "#b06110" + +let s:cterm00 = 0 +let s:cterm01 = 24 +let s:cterm02 = 59 +let s:cterm03 = 59 +let s:cterm04 = 109 +let s:cterm05 = 188 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 211 +let s:cterm0A = 220 +let s:cterm0B = 29 +let s:cterm0C = 115 +let s:cterm0D = 38 +let s:cterm0E = 89 +let s:cterm0F = 130 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_londontube#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_londontube#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_londontube#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_londontube#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_londontube#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_londontube#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_marrakesh.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_marrakesh.vim new file mode 100644 index 0000000..e6cd459 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_marrakesh.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Marrakesh Scheme by Alexandre Gavioli (http://github.com/Alexx2/) +let g:airline#themes#base16_marrakesh#palette = {} +let s:gui00 = "#201602" +let s:gui01 = "#302e00" +let s:gui02 = "#5f5b17" +let s:gui03 = "#6c6823" +let s:gui04 = "#86813b" +let s:gui05 = "#948e48" +let s:gui06 = "#ccc37a" +let s:gui07 = "#faf0a5" +let s:gui08 = "#c35359" +let s:gui09 = "#b36144" +let s:gui0A = "#a88339" +let s:gui0B = "#18974e" +let s:gui0C = "#75a738" +let s:gui0D = "#477ca1" +let s:gui0E = "#8868b3" +let s:gui0F = "#b3588e" + +let s:cterm00 = 0 +let s:cterm01 = 52 +let s:cterm02 = 58 +let s:cterm03 = 58 +let s:cterm04 = 101 +let s:cterm05 = 101 +let s:cterm06 = 180 +let s:cterm07 = 229 +let s:cterm08 = 131 +let s:cterm09 = 131 +let s:cterm0A = 137 +let s:cterm0B = 29 +let s:cterm0C = 107 +let s:cterm0D = 67 +let s:cterm0E = 97 +let s:cterm0F = 132 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_marrakesh#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_marrakesh#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_marrakesh#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_marrakesh#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_marrakesh#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_marrakesh#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_mocha.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_mocha.vim new file mode 100644 index 0000000..1097c95 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_mocha.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Mocha Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_mocha#palette = {} +let s:gui00 = "#3B3228" +let s:gui01 = "#534636" +let s:gui02 = "#645240" +let s:gui03 = "#7e705a" +let s:gui04 = "#b8afad" +let s:gui05 = "#d0c8c6" +let s:gui06 = "#e9e1dd" +let s:gui07 = "#f5eeeb" +let s:gui08 = "#cb6077" +let s:gui09 = "#d28b71" +let s:gui0A = "#f4bc87" +let s:gui0B = "#beb55b" +let s:gui0C = "#7bbda4" +let s:gui0D = "#8ab3b5" +let s:gui0E = "#a89bb9" +let s:gui0F = "#bb9584" + +let s:cterm00 = 58 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 95 +let s:cterm04 = 145 +let s:cterm05 = 188 +let s:cterm06 = 188 +let s:cterm07 = 230 +let s:cterm08 = 168 +let s:cterm09 = 173 +let s:cterm0A = 216 +let s:cterm0B = 143 +let s:cterm0C = 109 +let s:cterm0D = 109 +let s:cterm0E = 139 +let s:cterm0F = 138 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_mocha#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_mocha#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_mocha#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_mocha#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_mocha#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_mocha#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_monokai.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_monokai.vim new file mode 100644 index 0000000..fe1b774 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_monokai.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Monokai Scheme by Wimer Hazenberg (http://www.monokai.nl) +let g:airline#themes#base16_monokai#palette = {} +let s:gui00 = "#272822" +let s:gui01 = "#383830" +let s:gui02 = "#49483e" +let s:gui03 = "#75715e" +let s:gui04 = "#a59f85" +let s:gui05 = "#f8f8f2" +let s:gui06 = "#f5f4f1" +let s:gui07 = "#f9f8f5" +let s:gui08 = "#f92672" +let s:gui09 = "#fd971f" +let s:gui0A = "#f4bf75" +let s:gui0B = "#a6e22e" +let s:gui0C = "#a1efe4" +let s:gui0D = "#66d9ef" +let s:gui0E = "#ae81ff" +let s:gui0F = "#cc6633" + +let s:cterm00 = 0 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 95 +let s:cterm04 = 144 +let s:cterm05 = 15 +let s:cterm06 = 15 +let s:cterm07 = 15 +let s:cterm08 = 197 +let s:cterm09 = 208 +let s:cterm0A = 216 +let s:cterm0B = 3 +let s:cterm0C = 158 +let s:cterm0D = 81 +let s:cterm0E = 141 +let s:cterm0F = 167 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_monokai#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_monokai#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_monokai#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_monokai#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_monokai#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_monokai#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_nord.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_nord.vim new file mode 100644 index 0000000..78e8c11 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_nord.vim @@ -0,0 +1,75 @@ +" vim-airline theme by gretzky (https://github.com/gretzky) +" nord scheme by arcticstudio +" (https://github.com/arcticicestudio/nord) +" base 16 from (https://github.com/ada-lovecraft/base16-nord-scheme/blob/master/nord.yaml) +let g:airline#themes#base16_nord#palette = {} +let s:gui00 = "#2e3440" +let s:gui01 = "#3b4252" +let s:gui02 = "#434c5e" +let s:gui03 = "#4c566a" +let s:gui04 = "#d8dee9" +let s:gui05 = "#e5e9f0" +let s:gui06 = "#eceff4" +let s:gui07 = "#8fbcbb" +let s:gui08 = "#88c0d0" +let s:gui09 = "#81a1c1" +let s:gui0A = "#5e81ac" +let s:gui0B = "#bf616a" +let s:gui0C = "#d08770" +let s:gui0D = "#ebcb8b" +let s:gui0E = "#a3be8c" +let s:gui0F = "#b48ead" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 59 +let s:cterm03 = 102 +let s:cterm04 = 145 +let s:cterm05 = 188 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 166 +let s:cterm09 = 203 +let s:cterm0A = 214 +let s:cterm0B = 29 +let s:cterm0C = 12 +let s:cterm0D = 12 +let s:cterm0E = 134 +let s:cterm0F = 12 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_nord#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_nord#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_nord#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_nord#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_nord#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_nord#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_ocean.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_ocean.vim new file mode 100644 index 0000000..b1a76dd --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_ocean.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Ocean Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_ocean#palette = {} +let s:gui00 = "#2b303b" +let s:gui01 = "#343d46" +let s:gui02 = "#4f5b66" +let s:gui03 = "#65737e" +let s:gui04 = "#a7adba" +let s:gui05 = "#c0c5ce" +let s:gui06 = "#dfe1e8" +let s:gui07 = "#eff1f5" +let s:gui08 = "#bf616a" +let s:gui09 = "#d08770" +let s:gui0A = "#ebcb8b" +let s:gui0B = "#a3be8c" +let s:gui0C = "#96b5b4" +let s:gui0D = "#8fa1b3" +let s:gui0E = "#b48ead" +let s:gui0F = "#ab7967" + +let s:cterm00 = 23 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 60 +let s:cterm04 = 145 +let s:cterm05 = 152 +let s:cterm06 = 188 +let s:cterm07 = 15 +let s:cterm08 = 131 +let s:cterm09 = 173 +let s:cterm0A = 186 +let s:cterm0B = 144 +let s:cterm0C = 109 +let s:cterm0D = 109 +let s:cterm0E = 139 +let s:cterm0F = 137 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ocean#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ocean#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ocean#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_ocean#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_ocean#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_ocean#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_oceanicnext.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_oceanicnext.vim new file mode 100644 index 0000000..c5e9edf --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_oceanicnext.vim @@ -0,0 +1,83 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Oceanic Next Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_oceanicnext#palette = {} +let s:gui00 = "#1b2b34" +let s:gui01 = "#343d46" +let s:gui02 = "#4f5b66" +let s:gui03 = "#65737e" +let s:gui04 = "#a7adba" +let s:gui05 = "#c0c5ce" +let s:gui06 = "#cdd3de" +let s:gui07 = "#d8dee9" +let s:gui08 = "#ec5f67" +let s:gui09 = "#f99157" +let s:gui0A = "#fac863" +let s:gui0B = "#99c794" +let s:gui0C = "#5fb3b3" +let s:gui0D = "#6699cc" +let s:gui0E = "#c594c5" +let s:gui0F = "#ab7967" + +" Terminal color definitions +let s:cterm00 = 00 +let s:cterm03 = 08 +let s:cterm05 = 07 +let s:cterm07 = 15 +let s:cterm08 = 01 +let s:cterm0A = 03 +let s:cterm0B = 02 +let s:cterm0C = 06 +let s:cterm0D = 04 +let s:cterm0E = 05 +if exists('base16colorspace') && base16colorspace == "256" + let s:cterm01 = 18 + let s:cterm02 = 19 + let s:cterm04 = 20 + let s:cterm06 = 21 + let s:cterm09 = 16 + let s:cterm0F = 17 +else + let s:cterm01 = 10 + let s:cterm02 = 11 + let s:cterm04 = 12 + let s:cterm06 = 13 + let s:cterm09 = 09 + let s:cterm0F = 14 +endif + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_oceanicnext#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_oceanicnext#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_oceanicnext#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_oceanicnext#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_oceanicnext#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_oceanicnext#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_paraiso.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_paraiso.vim new file mode 100644 index 0000000..1277b31 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_paraiso.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Paraiso Scheme by Jan T. Sott +let g:airline#themes#base16_paraiso#palette = {} +let s:gui00 = "#2f1e2e" +let s:gui01 = "#41323f" +let s:gui02 = "#4f424c" +let s:gui03 = "#776e71" +let s:gui04 = "#8d8687" +let s:gui05 = "#a39e9b" +let s:gui06 = "#b9b6b0" +let s:gui07 = "#e7e9db" +let s:gui08 = "#ef6155" +let s:gui09 = "#f99b15" +let s:gui0A = "#fec418" +let s:gui0B = "#48b685" +let s:gui0C = "#5bc4bf" +let s:gui0D = "#06b6ef" +let s:gui0E = "#815ba4" +let s:gui0F = "#e96ba8" + +let s:cterm00 = 0 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 95 +let s:cterm04 = 102 +let s:cterm05 = 144 +let s:cterm06 = 145 +let s:cterm07 = 188 +let s:cterm08 = 203 +let s:cterm09 = 208 +let s:cterm0A = 220 +let s:cterm0B = 72 +let s:cterm0C = 79 +let s:cterm0D = 39 +let s:cterm0E = 97 +let s:cterm0F = 169 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_paraiso#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_paraiso#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_paraiso#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_paraiso#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_paraiso#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_paraiso#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_pop.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_pop.vim new file mode 100644 index 0000000..0888703 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_pop.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Pop Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_pop#palette = {} +let s:gui00 = "#000000" +let s:gui01 = "#202020" +let s:gui02 = "#303030" +let s:gui03 = "#505050" +let s:gui04 = "#b0b0b0" +let s:gui05 = "#d0d0d0" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#ffffff" +let s:gui08 = "#eb008a" +let s:gui09 = "#f29333" +let s:gui0A = "#f8ca12" +let s:gui0B = "#37b349" +let s:gui0C = "#00aabb" +let s:gui0D = "#0e5a94" +let s:gui0E = "#b31e8d" +let s:gui0F = "#7a2d00" + +let s:cterm00 = 0 +let s:cterm01 = 234 +let s:cterm02 = 236 +let s:cterm03 = 239 +let s:cterm04 = 249 +let s:cterm05 = 252 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 162 +let s:cterm09 = 209 +let s:cterm0A = 220 +let s:cterm0B = 71 +let s:cterm0C = 37 +let s:cterm0D = 24 +let s:cterm0E = 126 +let s:cterm0F = 88 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_pop#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_pop#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_pop#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_pop#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_pop#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_pop#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_railscasts.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_railscasts.vim new file mode 100644 index 0000000..771a5b1 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_railscasts.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Railscasts Scheme by Ryan Bates (http://railscasts.com) +let g:airline#themes#base16_railscasts#palette = {} +let s:gui00 = "#2b2b2b" +let s:gui01 = "#272935" +let s:gui02 = "#3a4055" +let s:gui03 = "#5a647e" +let s:gui04 = "#d4cfc9" +let s:gui05 = "#e6e1dc" +let s:gui06 = "#f4f1ed" +let s:gui07 = "#f9f7f3" +let s:gui08 = "#da4939" +let s:gui09 = "#cc7833" +let s:gui0A = "#ffc66d" +let s:gui0B = "#a5c261" +let s:gui0C = "#519f50" +let s:gui0D = "#6d9cbe" +let s:gui0E = "#b6b3eb" +let s:gui0F = "#bc9458" + +let s:cterm00 = 235 +let s:cterm01 = 17 +let s:cterm02 = 59 +let s:cterm03 = 60 +let s:cterm04 = 188 +let s:cterm05 = 188 +let s:cterm06 = 15 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 173 +let s:cterm0A = 221 +let s:cterm0B = 143 +let s:cterm0C = 71 +let s:cterm0D = 73 +let s:cterm0E = 146 +let s:cterm0F = 137 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_railscasts#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_railscasts#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_railscasts#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_railscasts#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_railscasts#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_railscasts#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_seti.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_seti.vim new file mode 100644 index 0000000..5d7af21 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_seti.vim @@ -0,0 +1,77 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base16 Seti UI by + +let g:airline#themes#base16_seti#palette = {} +let s:gui00 = "#151718" +let s:gui01 = "#282a2b" +let s:gui02 = "#3B758C" +let s:gui03 = "#41535B" +let s:gui04 = "#43a5d5" +let s:gui05 = "#d6d6d6" +let s:gui06 = "#eeeeee" +let s:gui07 = "#ffffff" +let s:gui08 = "#Cd3f45" +let s:gui09 = "#db7b55" +let s:gui0A = "#e6cd69" +let s:gui0B = "#9fca56" +let s:gui0C = "#55dbbe" +let s:gui0D = "#55b5db" +let s:gui0E = "#a074c4" +let s:gui0F = "#8a553f" + + +let s:cterm00 = 0 +let s:cterm01 = 18 +let s:cterm02 = 19 +let s:cterm03 = 8 +let s:cterm04 = 20 +let s:cterm05 = 7 +let s:cterm06 = 21 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 16 +let s:cterm0A = 3 +let s:cterm0B = 2 +let s:cterm0C = 6 +let s:cterm0D = 4 +let s:cterm0E = 5 +let s:cterm0F = 17 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_seti#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_seti#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_seti#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_seti#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_seti#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_seti#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) + + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_shapeshifter.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_shapeshifter.vim new file mode 100644 index 0000000..a518265 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_shapeshifter.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 shapeshifter Scheme by Tyler Benziger (http://tybenz.com) +let g:airline#themes#base16_shapeshifter#palette = {} +let s:gui00 = "#000000" +let s:gui01 = "#040404" +let s:gui02 = "#102015" +let s:gui03 = "#343434" +let s:gui04 = "#555555" +let s:gui05 = "#ababab" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#f9f9f9" +let s:gui08 = "#e92f2f" +let s:gui09 = "#e09448" +let s:gui0A = "#dddd13" +let s:gui0B = "#0ed839" +let s:gui0C = "#23edda" +let s:gui0D = "#3b48e3" +let s:gui0E = "#f996e2" +let s:gui0F = "#69542d" + +let s:cterm00 = 0 +let s:cterm01 = 0 +let s:cterm02 = 0 +let s:cterm03 = 236 +let s:cterm04 = 240 +let s:cterm05 = 248 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 173 +let s:cterm0A = 3 +let s:cterm0B = 41 +let s:cterm0C = 50 +let s:cterm0D = 12 +let s:cterm0E = 212 +let s:cterm0F = 58 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_shapeshifter#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_shapeshifter#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_shapeshifter#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_shapeshifter#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_shapeshifter#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_shapeshifter#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_shell.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_shell.vim new file mode 100644 index 0000000..fdcb7f1 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_shell.vim @@ -0,0 +1,10 @@ +" This theme has been improved and renamed to base16_vim. The following is +" provided for backward compatibility. + +function! airline#themes#base16_shell#refresh() + call airline#themes#base16_vim#refresh() + let g:airline#themes#base16_shell#palette + \ = g:airline#themes#base16_vim#palette +endfunction + +call airline#themes#base16_shell#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_snazzy.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_snazzy.vim new file mode 100644 index 0000000..76704ed --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_snazzy.vim @@ -0,0 +1,121 @@ +" base16-snazzy +" theme format modified from wombat +" colors from sindresorhus/hyper-snazzy & h404bi/base16-snazzy-scheme/ +" Made by Ayush Shenoy (masala-man) +" +" BASE16-SNAZZY XTERM +let s:base00 = '#282a36' "236 +let s:base01 = '#34353e' "237 +let s:base02 = '#43454f' "238 +let s:base03 = '#78787e' "244 +let s:base04 = '#a5a5a9' "248 +let s:base05 = '#e2e4e5' "254 +let s:base06 = '#eff0eb' "255 +let s:base07 = '#f1f1f0' "15 +let s:base08 = '#ff5c57' "203 +let s:base09 = '#ff9f43' "215 +let s:base0A = '#f3f99d' "229 +let s:base0B = '#5af78e' "84 +let s:base0C = '#9aedfe' "123 +let s:base0D = '#57c7ff' "81 +let s:base0E = '#ff6ac1' "205 +let s:base0F = '#b2643c' "131 + +" Normal mode +" [ guifg , guibg , ctermfg , ctermbg , opts ] +let s:N1 = [ s:base00 , s:base0D , 235 , 81 ] " [ color of body and line-info ] +let s:N2 = [ s:base0D , s:base00 , 81 , 235 ] " [ diffcount and file-info ] +let s:N3 = [ s:base0D , s:base00 , 81 , 235 ] " [ filename ] +let s:N4 = [ s:base0D , 81 ] " [ buffer modified ] + +" Insert mode +let s:I1 = [ s:base00 , s:base0B , 235 , 84 ] +let s:I2 = [ s:base0B , s:base00 , 84 , 235 ] +let s:I3 = [ s:base0B , s:base00 , 84 , 235 ] +let s:I4 = [ s:base0B , 84 ] + +" Visual mode +let s:V1 = [ s:base00 , s:base0A , 235 , 229 ] +let s:V2 = [ s:base0A , s:base00 , 229 , 235 ] +let s:V3 = [ s:base0A , s:base00 , 229 , 235 ] +let s:V4 = [ s:base0A , 229 ] + +" Replace mode +let s:R1 = [ s:base00 , s:base08 , 235 , 203 ] +let s:R2 = [ s:base08 , s:base00 , 203 , 235 ] +let s:R3 = [ s:base08 , s:base00 , 203 , 235 ] +let s:R4 = [ s:base08 , 203 ] + +" Paste mode +let s:PA = [ s:base0B , 84 ] + +" Info modified +let s:IM = [ s:base00 , 235 ] + +" Inactive mode +let s:IA = [ '' , s:N3[1] , 244 , 235 , '' ] " [ color of bar on inactive splits ] + +let g:airline#themes#base16_snazzy#palette = {} + +let g:airline#themes#base16_snazzy#palette.accents = { + \ 'red': [ s:base08 , '' , 203 , '' , '' ] + \ } + +let ER = [ s:base00 , s:base08 , 235 , 203 ] " [ error color ] +let WI = [ s:base00 , s:base0A , 235 , 229 ] " [ warning color ] + +let g:airline#themes#base16_snazzy#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#base16_snazzy#palette.normal_modified = { + \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , + \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } + +let g:airline#themes#base16_snazzy#palette.normal.airline_error = ER +let g:airline#themes#base16_snazzy#palette.normal.airline_warning = WI +let g:airline#themes#base16_snazzy#palette.normal_modified.airline_error = ER +let g:airline#themes#base16_snazzy#palette.normal_modified.airline_warning = WI + +let g:airline#themes#base16_snazzy#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#base16_snazzy#palette.insert_modified = { + \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , + \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } + +let g:airline#themes#base16_snazzy#palette.insert.airline_error = ER +let g:airline#themes#base16_snazzy#palette.insert.airline_warning = WI +let g:airline#themes#base16_snazzy#palette.insert_modified.airline_error = ER +let g:airline#themes#base16_snazzy#palette.insert_modified.airline_warning = WI + +let g:airline#themes#base16_snazzy#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#base16_snazzy#palette.visual_modified = { + \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , + \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } + +let g:airline#themes#base16_snazzy#palette.visual.airline_error = ER +let g:airline#themes#base16_snazzy#palette.visual.airline_warning = WI +let g:airline#themes#base16_snazzy#palette.visual_modified.airline_error = ER +let g:airline#themes#base16_snazzy#palette.visual_modified.airline_warning = WI + +let g:airline#themes#base16_snazzy#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#base16_snazzy#palette.replace_modified = { + \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , + \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } + +let g:airline#themes#base16_snazzy#palette.replace.airline_error = ER +let g:airline#themes#base16_snazzy#palette.replace.airline_warning = WI +let g:airline#themes#base16_snazzy#palette.replace_modified.airline_error = ER +let g:airline#themes#base16_snazzy#palette.replace_modified.airline_warning = WI + +let g:airline#themes#base16_snazzy#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , + \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } + +let g:airline#themes#base16_snazzy#palette.insert_paste.airline_error = ER +let g:airline#themes#base16_snazzy#palette.insert_paste.airline_warning = WI + +let g:airline#themes#base16_snazzy#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#base16_snazzy#palette.inactive_modified = { + \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_solarized.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_solarized.vim new file mode 100644 index 0000000..81edd56 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_solarized.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Solarized Scheme by Ethan Schoonover (http://ethanschoonover.com/solarized) +let g:airline#themes#base16_solarized#palette = {} +let s:gui00 = "#002b36" +let s:gui01 = "#073642" +let s:gui02 = "#586e75" +let s:gui03 = "#657b83" +let s:gui04 = "#839496" +let s:gui05 = "#93a1a1" +let s:gui06 = "#eee8d5" +let s:gui07 = "#fdf6e3" +let s:gui08 = "#dc322f" +let s:gui09 = "#cb4b16" +let s:gui0A = "#b58900" +let s:gui0B = "#859900" +let s:gui0C = "#2aa198" +let s:gui0D = "#268bd2" +let s:gui0E = "#6c71c4" +let s:gui0F = "#d33682" + +let s:cterm00 = 17 +let s:cterm01 = 23 +let s:cterm02 = 60 +let s:cterm03 = 66 +let s:cterm04 = 102 +let s:cterm05 = 109 +let s:cterm06 = 224 +let s:cterm07 = 230 +let s:cterm08 = 166 +let s:cterm09 = 166 +let s:cterm0A = 136 +let s:cterm0B = 100 +let s:cterm0C = 36 +let s:cterm0D = 32 +let s:cterm0E = 12 +let s:cterm0F = 168 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_solarized#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_solarized#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_solarized#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_solarized#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_solarized#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_solarized#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_spacemacs.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_spacemacs.vim new file mode 100644 index 0000000..4c04bd1 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_spacemacs.vim @@ -0,0 +1,191 @@ +" vim-airline base16-spacemacs theme by Peter Meehan (http://github.com/22a) +" Base16 Spacemacs by Chris Kempson (http://chriskempson.com) +" Spacemacs scheme by Nasser Alshammari (https://github.com/nashamri/spacemacs-theme) + +let s:gui00 = "#1f2022" +let s:gui01 = "#282828" +let s:gui02 = "#444155" +let s:gui03 = "#585858" +let s:gui04 = "#b8b8b8" +let s:gui05 = "#a3a3a3" +let s:gui06 = "#e8e8e8" +let s:gui07 = "#f8f8f8" +let s:gui08 = "#f2241f" +let s:gui09 = "#ffa500" +let s:gui0A = "#b1951d" +let s:gui0B = "#67b11d" +let s:gui0C = "#2d9574" +let s:gui0D = "#4f97d7" +let s:gui0E = "#a31db1" +let s:gui0F = "#b03060" + +let s:cterm00 = 0 +let s:cterm01 = 18 +let s:cterm02 = 19 +let s:cterm03 = 8 +let s:cterm04 = 20 +let s:cterm05 = 7 +let s:cterm06 = 21 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm09 = 16 +let s:cterm0A = 3 +let s:cterm0B = 2 +let s:cterm0C = 6 +let s:cterm0D = 4 +let s:cterm0E = 5 +let s:cterm0F = 17 + +let g:airline#themes#base16_spacemacs#palette = {} + +" Background for branch and file format blocks +let s:cterm_termbg = s:cterm02 +let s:gui_termbg = s:gui02 +" Foreground for branch and file format blocks +let s:cterm_termfg = s:cterm06 +let s:gui_termfg = s:gui06 + + +" Background for middle block +let s:cterm_termbg2 = s:cterm00 +let s:gui_termbg2 = s:gui00 +" Foreground for middle block +let s:cterm_termfg2 = s:cterm06 +let s:gui_termfg2 = s:gui06 + + +" Background for normal mode and file position blocks +let s:cterm_normalbg = s:cterm0D +let s:gui_normalbg = s:gui0D +" Foreground for normal mode and file position blocks +let s:cterm_normalfg = s:cterm07 +let s:gui_normalfg = s:gui07 + + +" Background for insert mode and file position blocks +let s:cterm_insertbg = s:cterm0B +let s:gui_insertbg = s:gui0B +" Foreground for insert mode and file position blocks +let s:cterm_insertfg = s:cterm07 +let s:gui_insertfg = s:gui07 + + +" Background for visual mode and file position blocks +let s:cterm_visualbg = s:cterm09 +let s:gui_visualbg = s:gui09 +" Foreground for visual mode and file position blocks +let s:cterm_visualfg = s:cterm07 +let s:gui_visualfg = s:gui07 + + +" Background for replace mode and file position blocks +let s:cterm_replacebg = s:cterm08 +let s:gui_replacebg = s:gui08 +" Foreground for replace mode and file position blocks +let s:cterm_replacefg = s:cterm07 +let s:gui_replacefg = s:gui07 + + +" Background for inactive mode +let s:cterm_inactivebg = s:cterm02 +let s:gui_inactivebg = s:gui02 +" Foreground for inactive mode +let s:cterm_inactivefg = s:cterm04 +let s:gui_inactivefg = s:gui04 + + +" Branch and file format +let s:BB = [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg] " Branch and file format blocks + +" Normal mode +let s:N1 = [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg] " Outside blocks in normal mode +let s:N2 = [s:gui_termfg2, s:gui_termbg2, s:cterm_normalbg, s:cterm_termbg2] " Middle block +let g:airline#themes#base16_spacemacs#palette.normal = airline#themes#generate_color_map(s:N1, s:BB, s:N2) +let g:airline#themes#base16_spacemacs#palette.normal_modified = g:airline#themes#base16_spacemacs#palette.normal + +" Insert mode +let s:I1 = [s:gui_insertfg, s:gui_insertbg, s:cterm_insertfg, s:cterm_insertbg] " Outside blocks in insert mode +let s:I2 = [s:gui_insertbg, s:gui_termbg2, s:cterm_insertbg, s:cterm_termbg2] " Middle block +let g:airline#themes#base16_spacemacs#palette.insert = airline#themes#generate_color_map(s:I1, s:BB, s:I2) +let g:airline#themes#base16_spacemacs#palette.insert_modified = g:airline#themes#base16_spacemacs#palette.insert + +" Replace mode +let s:R1 = [s:gui_replacefg, s:gui_replacebg, s:cterm_replacefg, s:cterm_replacebg] " Outside blocks in replace mode +let s:R2 = [s:gui_termfg, s:gui_termbg2, s:cterm_termfg, s:cterm_termbg2] " Middle block +let g:airline#themes#base16_spacemacs#palette.replace = airline#themes#generate_color_map(s:R1, s:BB, s:R2) +let g:airline#themes#base16_spacemacs#palette.replace_modified = g:airline#themes#base16_spacemacs#palette.replace + +" Visual mode +let s:V1 = [s:gui_visualfg, s:gui_visualbg, s:cterm_visualfg, s:cterm_visualbg] " Outside blocks in visual mode +let s:V2 = [s:gui_visualbg, s:gui_termbg2, s:cterm_visualbg, s:cterm_termbg2] " Middle block +let g:airline#themes#base16_spacemacs#palette.visual = airline#themes#generate_color_map(s:V1, s:BB, s:V2) +let g:airline#themes#base16_spacemacs#palette.visual_modified = g:airline#themes#base16_spacemacs#palette.visual + +" Inactive mode +let s:IA1 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let s:IA2 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let s:IA3 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let g:airline#themes#base16_spacemacs#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Warnings +let s:WI = [s:gui07, s:gui09, s:cterm07, s:cterm09] +let g:airline#themes#base16_spacemacs#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#base16_spacemacs#palette.normal_modified.airline_warning = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_warning + +let g:airline#themes#base16_spacemacs#palette.insert.airline_warning = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_warning + +let g:airline#themes#base16_spacemacs#palette.insert_modified.airline_warning = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_warning + +let g:airline#themes#base16_spacemacs#palette.visual.airline_warning = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_warning + +let g:airline#themes#base16_spacemacs#palette.visual_modified.airline_warning = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_warning + +let g:airline#themes#base16_spacemacs#palette.replace.airline_warning = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_warning + +let g:airline#themes#base16_spacemacs#palette.replace_modified.airline_warning = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_warning + +" Errors +let s:ER = [s:gui07, s:gui08, s:cterm07, s:cterm08] +let g:airline#themes#base16_spacemacs#palette.normal.airline_error = [ + \ s:ER[0], s:ER[1], s:ER[2], s:ER[3] + \ ] + +let g:airline#themes#base16_spacemacs#palette.normal_modified.airline_error = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_error + +let g:airline#themes#base16_spacemacs#palette.insert.airline_error = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_error + +let g:airline#themes#base16_spacemacs#palette.insert_modified.airline_error = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_error + +let g:airline#themes#base16_spacemacs#palette.visual.airline_error = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_error + +let g:airline#themes#base16_spacemacs#palette.visual_modified.airline_error = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_error + +let g:airline#themes#base16_spacemacs#palette.replace.airline_error = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_error + +let g:airline#themes#base16_spacemacs#palette.replace_modified.airline_error = + \ g:airline#themes#base16_spacemacs#palette.normal.airline_error + +" CtrlP plugin colors +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_spacemacs#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg, ''], + \ [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg, ''], + \ [s:gui_termfg2, s:gui_termbg2, s:cterm_termfg2, s:cterm_termbg2, 'bold']) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_summerfruit.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_summerfruit.vim new file mode 100644 index 0000000..4bafd59 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_summerfruit.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Summerfruit Scheme by Christopher Corley (http://cscorley.github.io/) +let g:airline#themes#base16_summerfruit#palette = {} +let s:gui00 = "#151515" +let s:gui01 = "#202020" +let s:gui02 = "#303030" +let s:gui03 = "#505050" +let s:gui04 = "#B0B0B0" +let s:gui05 = "#D0D0D0" +let s:gui06 = "#E0E0E0" +let s:gui07 = "#FFFFFF" +let s:gui08 = "#FF0086" +let s:gui09 = "#FD8900" +let s:gui0A = "#ABA800" +let s:gui0B = "#00C918" +let s:gui0C = "#1faaaa" +let s:gui0D = "#3777E6" +let s:gui0E = "#AD00A1" +let s:gui0F = "#cc6633" + +let s:cterm00 = 233 +let s:cterm01 = 234 +let s:cterm02 = 236 +let s:cterm03 = 239 +let s:cterm04 = 249 +let s:cterm05 = 252 +let s:cterm06 = 253 +let s:cterm07 = 15 +let s:cterm08 = 198 +let s:cterm09 = 208 +let s:cterm0A = 142 +let s:cterm0B = 2 +let s:cterm0C = 37 +let s:cterm0D = 68 +let s:cterm0E = 127 +let s:cterm0F = 167 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_summerfruit#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_summerfruit#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_summerfruit#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_summerfruit#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_summerfruit#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_summerfruit#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_tomorrow.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_tomorrow.vim new file mode 100644 index 0000000..c35a450 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_tomorrow.vim @@ -0,0 +1,82 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Tomorrow Scheme by Chris Kempson (http://chriskempson.com) +let g:airline#themes#base16_tomorrow#palette = {} +let s:gui00 = "#1d1f21" +let s:gui01 = "#282a2e" +let s:gui02 = "#373b41" +let s:gui03 = "#969896" +let s:gui04 = "#b4b7b4" +let s:gui05 = "#c5c8c6" +let s:gui06 = "#e0e0e0" +let s:gui07 = "#ffffff" +let s:gui08 = "#cc6666" +let s:gui09 = "#de935f" +let s:gui0A = "#f0c674" +let s:gui0B = "#b5bd68" +let s:gui0C = "#8abeb7" +let s:gui0D = "#81a2be" +let s:gui0E = "#b294bb" +let s:gui0F = "#a3685a" + +let s:cterm00 = 0 +let s:cterm03 = 8 +let s:cterm05 = 7 +let s:cterm07 = 15 +let s:cterm08 = 1 +let s:cterm0A = 3 +let s:cterm0B = 2 +let s:cterm0C = 6 +let s:cterm0D = 4 +let s:cterm0E = 5 +if exists('base16colorspace') && base16colorspace == "256" + let s:cterm01 = 18 + let s:cterm02 = 19 + let s:cterm04 = 20 + let s:cterm06 = 21 + let s:cterm09 = 16 + let s:cterm0F = 17 +else + let s:cterm01 = 10 + let s:cterm02 = 11 + let s:cterm04 = 12 + let s:cterm06 = 13 + let s:cterm09 = 9 + let s:cterm0F = 14 +endif + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_tomorrow#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_tomorrow#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_tomorrow#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_tomorrow#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_tomorrow#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_tomorrow#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_twilight.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_twilight.vim new file mode 100644 index 0000000..fa82418 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_twilight.vim @@ -0,0 +1,73 @@ +" vim-airline template by chartoin (http://github.com/chartoin) +" Base 16 Twilight Scheme by David Hart (http://hart-dev.com) +let g:airline#themes#base16_twilight#palette = {} +let s:gui00 = "#1e1e1e" +let s:gui01 = "#323537" +let s:gui02 = "#464b50" +let s:gui03 = "#5f5a60" +let s:gui04 = "#838184" +let s:gui05 = "#a7a7a7" +let s:gui06 = "#c3c3c3" +let s:gui07 = "#ffffff" +let s:gui08 = "#cf6a4c" +let s:gui09 = "#cda869" +let s:gui0A = "#f9ee98" +let s:gui0B = "#8f9d6a" +let s:gui0C = "#afc4db" +let s:gui0D = "#7587a6" +let s:gui0E = "#9b859d" +let s:gui0F = "#9b703f" + +let s:cterm00 = 234 +let s:cterm01 = 59 +let s:cterm02 = 59 +let s:cterm03 = 59 +let s:cterm04 = 102 +let s:cterm05 = 248 +let s:cterm06 = 251 +let s:cterm07 = 15 +let s:cterm08 = 167 +let s:cterm09 = 179 +let s:cterm0A = 228 +let s:cterm0B = 107 +let s:cterm0C = 152 +let s:cterm0D = 103 +let s:cterm0E = 103 +let s:cterm0F = 95 + +let s:N1 = [ s:gui01, s:gui0B, s:cterm01, s:cterm0B ] +let s:N2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:N3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_twilight#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui01, s:gui0D, s:cterm01, s:cterm0D ] +let s:I2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:I3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_twilight#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:R1 = [ s:gui01, s:gui08, s:cterm01, s:cterm08 ] +let s:R2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:R3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_twilight#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:V1 = [ s:gui01, s:gui0E, s:cterm01, s:cterm0E ] +let s:V2 = [ s:gui06, s:gui02, s:cterm06, s:cterm02 ] +let s:V3 = [ s:gui09, s:gui01, s:cterm09, s:cterm01 ] +let g:airline#themes#base16_twilight#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:IA1 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA2 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let s:IA3 = [ s:gui05, s:gui01, s:cterm05, s:cterm01 ] +let g:airline#themes#base16_twilight#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#base16_twilight#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui07, s:gui02, s:cterm07, s:cterm02, '' ], + \ [ s:gui07, s:gui04, s:cterm07, s:cterm04, '' ], + \ [ s:gui05, s:gui01, s:cterm05, s:cterm01, 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_vim.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_vim.vim new file mode 100644 index 0000000..b92abcb --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16_vim.vim @@ -0,0 +1,172 @@ +let g:airline#themes#base16_vim#palette = {} + +function! airline#themes#base16_vim#refresh() + let s:improved_contrast = get(g:, 'airline_base16_improved_contrast', 0) + let s:monotone = get(g:, 'airline_base16_monotone', 0) + \ || get(g:, 'airline_base16_solarized', 0) + + if exists('g:base16_gui00') + " base16-vim provides values that we can load dynamically + + " Base16 term color palette + let s:base00 = g:base16_cterm00 " black + let s:base01 = g:base16_cterm01 + let s:base02 = g:base16_cterm02 + let s:base03 = g:base16_cterm03 " brblack + let s:base04 = g:base16_cterm04 + let s:base05 = g:base16_cterm05 " white + let s:base06 = g:base16_cterm06 + let s:base07 = g:base16_cterm07 + let s:base08 = g:base16_cterm08 " red + let s:base09 = g:base16_cterm09 + let s:base0A = g:base16_cterm0A " yellow + let s:base0B = g:base16_cterm0B " green + let s:base0C = g:base16_cterm0C " cyan + let s:base0D = g:base16_cterm0D " blue + let s:base0E = g:base16_cterm0E " magenta + let s:base0F = g:base16_cterm0F + + " Gui color palette + let s:gui00 = "#" . g:base16_gui00 + let s:gui01 = "#" . g:base16_gui01 + let s:gui02 = "#" . g:base16_gui02 + let s:gui03 = "#" . g:base16_gui03 + let s:gui04 = "#" . g:base16_gui04 + let s:gui05 = "#" . g:base16_gui05 + let s:gui06 = "#" . g:base16_gui06 + let s:gui07 = "#" . g:base16_gui07 + let s:gui08 = "#" . g:base16_gui08 + let s:gui09 = "#" . g:base16_gui09 + let s:gui0A = "#" . g:base16_gui0A + let s:gui0B = "#" . g:base16_gui0B + let s:gui0C = "#" . g:base16_gui0C + let s:gui0D = "#" . g:base16_gui0D + let s:gui0E = "#" . g:base16_gui0E + let s:gui0F = "#" . g:base16_gui0F + else + " Fallback: term colors should still be correct, but gui colors must be + " hardcoded to a particular scheme. + + " Base16 term color palette + let s:base00 = "00" " black + let s:base03 = "08" " brblack + let s:base05 = "07" " white + let s:base07 = "15" + let s:base08 = "01" " red + let s:base0A = "03" " yellow + let s:base0B = "02" " green + let s:base0C = "06" " cyan + let s:base0D = "04" " blue + let s:base0E = "05" " magenta + if exists('g:base16colorspace') && g:base16colorspace == "256" + let s:base01 = "18" + let s:base02 = "19" + let s:base04 = "20" + let s:base06 = "21" + let s:base09 = "16" + let s:base0F = "17" + else + let s:base01 = "10" + let s:base02 = "11" + let s:base04 = "12" + let s:base06 = "13" + let s:base09 = "09" + let s:base0F = "14" + endif + + " Gui color palette (base16-default-dark) + let s:gui00 = "#181818" + let s:gui01 = "#282828" + let s:gui02 = "#383838" + let s:gui03 = "#585858" + let s:gui04 = "#b8b8b8" + let s:gui05 = "#d8d8d8" + let s:gui06 = "#e8e8e8" + let s:gui07 = "#f8f8f8" + let s:gui08 = "#ab4642" + let s:gui09 = "#dc9656" + let s:gui0A = "#f7ca88" + let s:gui0B = "#a1b56c" + let s:gui0C = "#86c1b9" + let s:gui0D = "#7cafc2" + let s:gui0E = "#ba8baf" + let s:gui0F = "#a16946" + endif + + " Normal mode + let s:N1 = [s:gui00, s:gui0B, s:base00, s:base0B] + let s:N2 = [s:gui04, s:gui02, s:base04, s:base02] + let s:N3 = [s:gui0B, s:gui01, s:base0B, s:base01] + + if s:improved_contrast + let s:N2 = [s:gui05, s:gui02, s:base05, s:base02] + endif + + if s:monotone + let s:N1 = [s:gui01, s:gui04, s:base01, s:base04] + let s:N2 = [s:gui00, s:gui02, s:base00, s:base02] + let s:N3 = [s:gui04, s:gui01, s:base04, s:base01] + endif + + let g:airline#themes#base16_vim#palette.normal + \ = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + let g:airline#themes#base16_vim#palette.normal_modified = { + \ 'airline_c': [s:gui09, s:gui01, s:base09, s:base01, ''], + \ } + + " Insert mode + let s:I1 = [s:gui01, s:gui0D, s:base01, s:base0D] + let s:I3 = [s:gui0D, s:gui01, s:base0D, s:base01] + let g:airline#themes#base16_vim#palette.insert + \ = airline#themes#generate_color_map(s:I1, s:N2, s:I3) + + if s:monotone + let s:I1 = [s:gui01, s:gui0A, s:base01, s:base0A] + let g:airline#themes#base16_vim#palette.insert + \ = airline#themes#generate_color_map(s:I1, s:N2, s:N3) + endif + + let g:airline#themes#base16_vim#palette.insert_modified + \ = copy(g:airline#themes#base16_vim#palette.normal_modified) + + " Replace mode + let s:R1 = [s:gui01, s:gui08, s:base01, s:base08] + let s:R3 = [s:gui08, s:gui01, s:base08, s:base01] + let g:airline#themes#base16_vim#palette.replace + \ = airline#themes#generate_color_map(s:R1, s:N2, s:R3) + + if s:monotone + let s:R1 = [s:gui01, s:gui09, s:base01, s:base09] + let g:airline#themes#base16_vim#palette.replace + \ = airline#themes#generate_color_map(s:R1, s:N2, s:N3) + endif + + let g:airline#themes#base16_vim#palette.replace_modified + \ = copy(g:airline#themes#base16_vim#palette.normal_modified) + + " Visual mode + let s:V1 = [s:gui01, s:gui0E, s:base01, s:base0E] + let s:V3 = [s:gui0E, s:gui01, s:base0E, s:base01] + let g:airline#themes#base16_vim#palette.visual + \ = airline#themes#generate_color_map(s:V1, s:N2, s:V3) + + if s:monotone + let s:V1 = [s:gui01, s:gui0F, s:base01, s:base0F] + let g:airline#themes#base16_vim#palette.visual + \ = airline#themes#generate_color_map(s:V1, s:N2, s:N3) + endif + + " Inactive window + if s:improved_contrast + let s:IA = [s:gui04, s:gui01, s:base04, s:base01, ''] + else + let s:IA = [s:gui03, s:gui01, s:base03, s:base01, ''] + endif + let g:airline#themes#base16_vim#palette.inactive + \ = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#base16_vim#palette.inactive_modified = { + \ 'airline_c': [s:gui09, '', s:base09, '', ''], + \ } +endfunction + +call airline#themes#base16_vim#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16color.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16color.vim new file mode 100644 index 0000000..6c0a1d7 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/base16color.vim @@ -0,0 +1,77 @@ +" Normal mode +" [ guifg, guibg, ctermfg, ctermbg, opts ] +let s:N1 = [ '#141413' , '#CAE682' , 232 , 'green' ] " mode +let s:N2 = [ '#CAE682' , '#32322F' , 'green' , 235 ] " info +let s:N3 = [ '#CAE682' , '#242424' , 'green' , 234 ] " statusline +let s:N4 = [ '#86CD74' , 'DarkGreen' ] " mode modified + +" Insert mode +let s:I1 = [ '#141413' , '#FDE76E' , 232 , 'yellow' ] +let s:I2 = [ '#FDE76E' , '#32322F' , 'yellow' , 235 ] +let s:I3 = [ '#FDE76E' , '#242424' , 'yellow' , 234 ] +let s:I4 = [ '#FADE3E' , 'yellow' ] + +" Visual mode +let s:V1 = [ '#141413' , '#B5D3F3' , 232 , 'blue' ] +let s:V2 = [ '#B5D3F3' , '#32322F' , 'blue' , 235 ] +let s:V3 = [ '#B5D3F3' , '#242424' , 'blue' , 234 ] +let s:V4 = [ '#7CB0E6' , 'blue' ] + +" Replace mode +let s:R1 = [ '#141413' , '#E5786D' , 232 , 'red' ] +let s:R2 = [ '#E5786D' , '#32322F' , 'red' , 235 ] +let s:R3 = [ '#E5786D' , '#242424' , 'red' , 234 ] +let s:R4 = [ '#E55345' , 'red' ] + +" Paste mode +let s:PA = [ '#94E42C' , 005 ] + +" Info modified +let s:IM = [ '#40403C' , 236 ] + +" Inactive mode +let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ] + +let g:airline#themes#base16color#palette = {} + +let g:airline#themes#base16color#palette.accents = { + \ 'red': [ '#E5786D' , '' , 203 , '' , '' ], + \ } + +let g:airline#themes#base16color#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#base16color#palette.normal_modified = { + \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , + \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#base16color#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#base16color#palette.insert_modified = { + \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , + \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#base16color#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#base16color#palette.visual_modified = { + \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , + \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#base16color#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#base16color#palette.replace_modified = { + \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , + \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#base16color#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , + \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } + + +let g:airline#themes#base16color#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#base16color#palette.inactive_modified = { + \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/behelit.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/behelit.vim new file mode 100644 index 0000000..77f551c --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/behelit.vim @@ -0,0 +1,58 @@ +let g:airline#themes#behelit#palette = {} + +" Normal mode +let s:N1 = [ '#121212', '#5f87ff', 233, 69 ] +let s:N2 = [ '#5f87ff', '#262626', 69 , 235 ] +let s:N3 = [ '#5f87ff', '#1c1c1c', 69 , 234, 'bold' ] +let g:airline#themes#behelit#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#behelit#palette.normal_modified = { + \ 'airline_c': [ '#d7005f', '#1c1c1c', 161, 234, 'bold' ], + \ } + +" Insert mode +let s:I1 = [ '#121212', '#00ff87', 233, 48 ] +let s:I2 = s:N2 +let s:I3 = s:N3 +let g:airline#themes#behelit#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#behelit#palette.insert_modified = g:airline#themes#behelit#palette.normal_modified +let g:airline#themes#behelit#palette.insert_paste = { + \ 'airline_a': [ "#121212", "#5f5faf", 233, 61, '' ], + \ } + +" Replace mode +let g:airline#themes#behelit#palette.replace = copy(g:airline#themes#behelit#palette.insert) +let g:airline#themes#behelit#palette.replace.airline_a = [ s:I1[0], '#d70057', s:I1[2], 161, '' ] +let g:airline#themes#behelit#palette.replace_modified = g:airline#themes#behelit#palette.insert_modified + +" Visual mode +let s:V1 = [ '#121212', '#5fff5f', 233, 83 ] +let s:V2 = s:N2 +let s:V3 = s:N3 +let g:airline#themes#behelit#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#behelit#palette.visual_modified = g:airline#themes#behelit#palette.normal_modified + +" Inactive window +let s:IA1 = [ '#4e4e4e', '#1c1c1c', 239, 234, '' ] +let s:IA2 = [ '#4e4e4e', '#262626', 239, 235, '' ] +let s:IA3 = [ '#4e4e4e', '#1c1c1c', 239, 234, 'bold' ] +let g:airline#themes#behelit#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#behelit#palette.inactive_modified = { + \ 'airline_c': [ '#5f5f87', '#1c1c1c', 60, 234, 'bold' ], + \ } + +" Accents +let g:airline#themes#behelit#palette.accents = { + \ 'red': [ '#d7005f', '', 161, '' ] + \ } + +" Warnings +let s:WI = [ '#121212', '#d7005f', 233, 161 ] +let g:airline#themes#behelit#palette.normal.airline_warning = s:WI +let g:airline#themes#behelit#palette.normal_modified.airline_warning = s:WI +let g:airline#themes#behelit#palette.insert.airline_warning = s:WI +let g:airline#themes#behelit#palette.insert_modified.airline_warning = s:WI +let g:airline#themes#behelit#palette.insert_paste.airline_warning = s:WI +let g:airline#themes#behelit#palette.visual.airline_warning = s:WI +let g:airline#themes#behelit#palette.visual_modified.airline_warning = s:WI +let g:airline#themes#behelit#palette.replace.airline_warning = s:WI +let g:airline#themes#behelit#palette.replace_modified.airline_warning = s:WI diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/biogoo.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/biogoo.vim new file mode 100644 index 0000000..6a310c9 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/biogoo.vim @@ -0,0 +1,58 @@ +" Name: biogoo (vim-airline version) +" Author: Benjamin Esham (https://esham.io) +" Last Change: 2017-10-20 +" +" You can find more information on the Biogoo theme at . + +let g:airline#themes#biogoo#palette = {} + +function! airline#themes#biogoo#refresh() + let g:airline#themes#biogoo#palette.accents = { + \ 'red': airline#themes#get_highlight('String'), + \ } + + let s:N1 = airline#themes#get_highlight2(['VertSplit', 'bg'], ['Include', 'fg'], 'bold') + let s:N2 = airline#themes#get_highlight2(['Include', 'fg'], ['Folded', 'bg'], 'bold') + let s:N3 = airline#themes#get_highlight2(['Include', 'fg'], ['VertSplit', 'bg'], 'bold') + let g:airline#themes#biogoo#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + let s:Term = airline#themes#get_highlight2(['StatusLineTerm', 'fg'], ['StatusLineTerm', 'bg'], 'NONE') + let g:airline#themes#biogoo#palette.normal.airline_term = s:Term + + let s:Nmod = airline#themes#get_highlight2(['MatchParen', 'bg'], ['VertSplit', 'bg']) + let g:airline#themes#biogoo#palette.normal_modified = {'airline_c': s:Nmod} + let g:airline#themes#biogoo#palette.normal_modified.airline_term = s:Term + + let s:I1 = airline#themes#get_highlight2(['VertSplit', 'bg'], ['MatchParen', 'bg'], 'bold') + let s:I2 = s:N2 + let s:I3 = s:N3 + let g:airline#themes#biogoo#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#biogoo#palette.insert.airline_term = s:Term + let g:airline#themes#biogoo#palette.insert_modified = g:airline#themes#biogoo#palette.normal_modified + let g:airline#themes#biogoo#palette.insert_modified.airline_term = s:Term + + let s:R1 = airline#themes#get_highlight2(['VertSplit', 'bg'], ['String', 'fg'], 'bold') + let s:R2 = s:N2 + let s:R3 = s:N3 + let g:airline#themes#biogoo#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#biogoo#palette.replace.airline_term = s:Term + let g:airline#themes#biogoo#palette.replace_modified = g:airline#themes#biogoo#palette.normal_modified + let g:airline#themes#biogoo#palette.replace_modified.airline_term = s:Term + + let s:V1 = airline#themes#get_highlight2(['VertSplit', 'bg'], ['Number', 'fg'], 'bold') + let s:V2 = s:N2 + let s:V3 = s:N3 + let g:airline#themes#biogoo#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#biogoo#palette.visual.airline_term = s:Term + let g:airline#themes#biogoo#palette.visual_modified = g:airline#themes#biogoo#palette.normal_modified + let g:airline#themes#biogoo#palette.visual_modified.airline_term = s:Term + + let s:IA1 = airline#themes#get_highlight2(['VertSplit', 'fg'], ['VertSplit', 'bg']) + let s:IA2 = s:IA1 + let s:IA3 = airline#themes#get_highlight2(['VertSplit', 'fg'], ['VertSplit', 'bg'], 'NONE') + let g:airline#themes#biogoo#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + let g:airline#themes#biogoo#palette.inactive.airline_term = s:Term + let g:airline#themes#biogoo#palette.inactive_modified = g:airline#themes#biogoo#palette.normal_modified + let g:airline#themes#biogoo#palette.inactive_modified.airline_term = s:Term +endfunction + +call airline#themes#biogoo#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/bubblegum.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/bubblegum.vim new file mode 100644 index 0000000..f2378ce --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/bubblegum.vim @@ -0,0 +1,70 @@ +" Color palette +let s:gui_dark_gray = '#303030' +let s:cterm_dark_gray = 236 +let s:gui_med_gray_hi = '#444444' +let s:cterm_med_gray_hi = 238 +let s:gui_med_gray_lo = '#3a3a3a' +let s:cterm_med_gray_lo = 237 +let s:gui_light_gray = '#b2b2b2' +let s:cterm_light_gray = 249 +let s:gui_green = '#afd787' +let s:cterm_green = 150 +let s:gui_blue = '#87afd7' +let s:cterm_blue = 110 +let s:gui_purple = '#afafd7' +let s:cterm_purple = 146 +let s:gui_orange = '#d7af5f' +let s:cterm_orange = 179 +let s:gui_red = '#d78787' +let s:cterm_red = 174 +let s:gui_pink = '#d7afd7' +let s:cterm_pink = 182 + +let g:airline#themes#bubblegum#palette = {} + +" Normal mode +let s:N1 = [s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green] +let s:N2 = [s:gui_light_gray, s:gui_med_gray_lo, s:cterm_light_gray, s:cterm_med_gray_lo] +let s:N3 = [s:gui_green, s:gui_med_gray_hi, s:cterm_green, s:cterm_med_gray_hi] +let g:airline#themes#bubblegum#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#bubblegum#palette.normal_modified = { + \ 'airline_c': [s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, ''], + \ } + +" Insert mode +let s:I1 = [s:gui_med_gray_hi, s:gui_blue, s:cterm_med_gray_hi, s:cterm_blue] +let s:I3 = [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi] +let g:airline#themes#bubblegum#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:I3) +let g:airline#themes#bubblegum#palette.insert_modified = copy(g:airline#themes#bubblegum#palette.normal_modified) +let g:airline#themes#bubblegum#palette.insert_paste = { + \ 'airline_a': [s:gui_dark_gray, s:gui_orange, s:cterm_dark_gray, s:cterm_orange, ''], + \ } + +" Replace mode +let g:airline#themes#bubblegum#palette.replace = { + \ 'airline_a': [s:gui_dark_gray, s:gui_red, s:cterm_dark_gray, s:cterm_red, ''], + \ 'airline_c': [s:gui_red, s:gui_med_gray_hi, s:cterm_red, s:cterm_med_gray_hi, ''], + \ } +let g:airline#themes#bubblegum#palette.replace_modified = copy(g:airline#themes#bubblegum#palette.insert_modified) + +" Visual mode +let s:V1 = [s:gui_dark_gray, s:gui_pink, s:cterm_dark_gray, s:cterm_pink] +let s:V3 = [s:gui_pink, s:gui_med_gray_hi, s:cterm_pink, s:cterm_med_gray_hi] +let g:airline#themes#bubblegum#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:V3) +let g:airline#themes#bubblegum#palette.visual_modified = copy(g:airline#themes#bubblegum#palette.insert_modified) + +" Inactive window +let s:IA = [s:gui_light_gray, s:gui_med_gray_hi, s:cterm_light_gray, s:cterm_med_gray_hi, ''] +let g:airline#themes#bubblegum#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#bubblegum#palette.inactive_modified = { + \ 'airline_c': [s:gui_orange, '', s:cterm_orange, '', ''], + \ } + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#bubblegum#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, '' ] , + \ [ s:gui_orange, s:gui_med_gray_lo, s:cterm_orange, s:cterm_med_gray_lo, '' ] , + \ [ s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green, 'bold' ] ) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/cobalt2.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/cobalt2.vim new file mode 100644 index 0000000..b156924 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/cobalt2.vim @@ -0,0 +1,100 @@ + + +" vim-airline cobalt2 replication +" (https://github.com/g-kanoufi/vim-airline-cobalt2) + +let g:airline#themes#cobalt2#palette = {} + +let g:airline#themes#cobalt2#palette.accents = { + \ 'red': [ '#b42839' , '' , 231 , '' , '' ], + \ } + + +let s:N1 = [ '#ffffff' , '#1f7ad8' , 231 , 36 ] +let s:N2 = [ '#ffffff' , '#8cc2fd' , 231 , 29 ] +let s:N3 = [ '#ffffff' , '#204458' , 231 , 23 ] +let g:airline#themes#cobalt2#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#cobalt2#palette.normal_modified = { + \ 'airline_c': [ '#ffffff' , '#1f7ad8' , 231 , 52 , '' ] , + \ } + + +let s:I1 = [ '#666d51' , '#fee533' , 231 , 106 ] +let s:I2 = [ '#ffffff' , '#8cc2fd' , 231 , 29 ] +let s:I3 = [ '#ffffff' , '#204458' , 231 , 23 ] +let g:airline#themes#cobalt2#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#cobalt2#palette.insert_modified = { + \ 'airline_c': [ '#666d51' , '#fee533' , 255 , 52 , '' ] , + \ } +let g:airline#themes#cobalt2#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#fee533' , s:I1[2] , 106 , '' ] , + \ } + + +let s:R1 = [ '#ffffff' , '#ea9299' , 231 , 106 ] +let s:R2 = [ '#ffffff' , '#8cc2fd' , 88 , 29 ] +let s:R3 = [ '#ffffff' , '#204458' , 231 , 23 ] +let g:airline#themes#cobalt2#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#cobalt2#palette.replace_modified = { + \ 'airline_c': [ '#ffffff' , '#ea9299' , 231 , 52 , '' ] , + \ } + +let s:V1 = [ '#ffff9a' , '#ff9d00' , 222 , 208 ] +let s:V2 = [ '#ffffff' , '#8cc2fd' , 231 , 29 ] +let s:V3 = [ '#ffffff' , '#204458' , 231 , 23 ] +let g:airline#themes#cobalt2#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#cobalt2#palette.visual_modified = { + \ 'airline_c': [ '#ffff9a' , '#ff9d00' , 231 , 52 , '' ] , + \ } + +let s:IA = [ '#4e4e4e' , '#204458' , 59 , 23 , '' ] +let g:airline#themes#cobalt2#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#cobalt2#palette.inactive_modified = { + \ 'airline_c': [ '#b42839' , '' , 166 , '' , '' ] , + \ } + +let g:airline#themes#cobalt2#palette.tabline = { + \ 'airline_tab': ['#1780e9', '#1a3548', 231, 29, ''], + \ 'airline_tabsel': ['#ffffff', '#46dd3c', 231, 36, ''], + \ 'airline_tabtype': ['#ffffff', '#1f7ad8', 231, 36, ''], + \ 'airline_tabfill': ['#ffffff', '#204458', 231, 23, ''], + \ 'airline_tabmod': ['#666d51', '#fee533', 231, 88, ''], + \ } + +let s:WI = [ '#204458', '#ffffff', 231, 88 ] +let g:airline#themes#cobalt2#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#cobalt2#palette.normal_modified.airline_warning = + \ g:airline#themes#cobalt2#palette.normal.airline_warning + +let g:airline#themes#cobalt2#palette.insert.airline_warning = + \ g:airline#themes#cobalt2#palette.normal.airline_warning + +let g:airline#themes#cobalt2#palette.insert_modified.airline_warning = + \ g:airline#themes#cobalt2#palette.normal.airline_warning + +let g:airline#themes#cobalt2#palette.visual.airline_warning = + \ g:airline#themes#cobalt2#palette.normal.airline_warning + +let g:airline#themes#cobalt2#palette.visual_modified.airline_warning = + \ g:airline#themes#cobalt2#palette.normal.airline_warning + +let g:airline#themes#cobalt2#palette.replace.airline_warning = + \ g:airline#themes#cobalt2#palette.normal.airline_warning + +let g:airline#themes#cobalt2#palette.replace_modified.airline_warning = + \ g:airline#themes#cobalt2#palette.normal.airline_warning + + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#cobalt2#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#ffffff' , '#204458' , 231 , 23 , '' ] , + \ [ '#ffffff' , '#1f7ad8' , 231 , 36 , '' ] , + \ [ '#666d51' , '#fee533' , 231 , 95 , '' ] ) + + + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/cool.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/cool.vim new file mode 100644 index 0000000..83abdb1 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/cool.vim @@ -0,0 +1,65 @@ +let g:airline#themes#cool#palette = {} + +" NORMAL +let s:N1 = [ '#585858' , '#E4E4E4' , 59 , 188 ] +let s:N2 = [ '#E4E4E4' , '#0087AF' , 188 , 31 ] +let s:N3 = [ '#EEEEEE' , '#005F87' , 231 , 24] +let g:airline#themes#cool#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +"let g:airline#themes#cool#palette.normal_modified = { + "\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + "\ } + +" INSERT +let s:I1 = [ '#585858' , '#E4E4E4' , 59 , 188 ] +let s:I2 = [ '#E4E4E4' , '#47AF00' , 188 , 70 ] +let s:I3 = [ '#EEEEEE' , '#2E8700' , 231 , 28 ] +let g:airline#themes#cool#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +"let g:airline#themes#cool#palette.insert_modified = { + "\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + "\ } +"let g:airline#themes#cool#palette.insert_paste = { + "\ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + "\ } + +" REPLACE +let s:R1 = [ '#585858' , '#E4E4E4' , 59 , 188 ] +let s:R2 = [ '#E4E4E4' , '#AF5F00' , 188 , 130 ] +let s:R3 = [ '#EEEEEE' , '#875300' , 231 , 94 ] +let g:airline#themes#cool#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +"let g:airline#themes#cool#palette.replace.airline_a = [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ] +"let g:airline#themes#cool#palette.replace_modified = g:airline#themes#cool#palette.insert_modified + +" VISUAL +let s:V1 = [ '#585858' , '#E4E4E4' , 59 , 188 ] +let s:V2 = [ '#E4E4E4' , '#AF2800' , 188 , 124 ] +let s:V3 = [ '#EEEEEE' , '#872800' , 231 , 88 ] +let g:airline#themes#cool#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +"let g:airline#themes#cool#palette.visual_modified = { + "\ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + "\ } + +" INACTIVE +let s:IA1 = [ '#585858' , '#E4E4E4' , 59 , 188 , '' ] +let s:IA2 = [ '#E4E4E4' , '#466D79' , 188 , 60 , '' ] +let s:IA3 = [ '#EEEEEE' , '#324E59' , 231 , 59 , '' ] +let g:airline#themes#cool#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +"let g:airline#themes#cool#palette.inactive_modified = { + "\ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , + "\ } + + +let g:airline#themes#cool#palette.accents = { + \ 'red': [ '#ff0000' , '' , 196 , '' ] + \ } + +" CTRLP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#cool#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#E4E4E4' , '#00AFA2' , 188 , 37 , '' ], + \ [ '#EEEEEE' , '#008787' , 231 , 30 , '' ], + \ [ '#585858' , '#E4E4E4' , 59 , 188 , '' ]) + + + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/dark_minimal.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/dark_minimal.vim new file mode 100644 index 0000000..6c08628 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/dark_minimal.vim @@ -0,0 +1,63 @@ +scriptencoding utf-8 + +" This is a copy of the dark.vim theme, however it does not change colors in +" the different modes, so should bring some performance improvements because +" airline does not have to redefine highlighting groups after they have been +" setup once. + +" Each theme is contained in its own file and declares variables scoped to the +" file. These variables represent the possible "modes" that airline can +" detect. The mode is the return value of mode(), which gets converted to a +" readable string. The following is a list currently supported modes: normal, +" insert, replace, visual, and inactive. +" +" Each mode can also have overrides. These are small changes to the mode that +" don't require a completely different look. "modified" and "paste" are two +" such supported overrides. These are simply suffixed to the major mode, +" separated by an underscore. For example, "normal_modified" would be normal +" mode where the current buffer is modified. +" +" The theming algorithm is a 2-pass system where the mode will draw over all +" parts of the statusline, and then the override is applied after. This means +" it is possible to specify a subset of the theme in overrides, as it will +" simply overwrite the previous colors. If you want simultaneous overrides, +" then they will need to change different parts of the statusline so they do +" not conflict with each other. +" +" First, let's define an empty dictionary and assign it to the "palette" +" variable. The # is a separator that maps with the directory structure. If +" you get this wrong, Vim will complain loudly. +let g:airline#themes#dark_minimal#palette = {} + +" First let's define some arrays. The s: is just a VimL thing for scoping the +" variables to the current script. Without this, these variables would be +" declared globally. Now let's declare some colors for normal mode and add it +" to the dictionary. The array is in the format: +" [ guifg, guibg, ctermfg, ctermbg, opts ]. See "help attr-list" for valid +" values for the "opt" value. +let s:N1 = [ '#00005f' , '#dfff00' , 17 , 190 ] +let s:N2 = [ '#ffffff' , '#444444' , 255 , 238 ] +let s:N3 = [ '#9cffd3' , '#202020' , 85 , 234 ] +let g:airline#themes#dark_minimal#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +" Accents are used to give parts within a section a slightly different look or +" color. Here we are defining a "red" accent, which is used by the 'readonly' +" part by default. Only the foreground colors are specified, so the background +" colors are automatically extracted from the underlying section colors. What +" this means is that regardless of which section the part is defined in, it +" will be red instead of the section's foreground color. You can also have +" multiple parts with accents within a section. +let g:airline#themes#dark_minimal#palette.accents = { + \ 'red': [ '#ff0000' , '' , 160 , '' ] + \ } + +let pal = g:airline#themes#dark_minimal#palette +for item in ['insert', 'replace', 'visual', 'inactive', 'ctrlp'] + " why doesn't this work? + " get E713: cannot use empty key for dictionary + "let pal.{item} = pal.normal + exe "let pal.".item." = pal.normal" + for suffix in ['_modified', '_paste'] + exe "let pal.".item.suffix. " = pal.normal" + endfor +endfor diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/desertink.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/desertink.vim new file mode 100644 index 0000000..951cf3d --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/desertink.vim @@ -0,0 +1,68 @@ +" Based on powerlinish +" +" Theme to mimic the default colorscheme of powerline +" Not 100% the same so it's powerline... ish. +" +" Differences from default powerline: +" * Paste indicator isn't colored different +" * Far right hand section matches the color of the mode indicator +" +" Differences from other airline themes: +" * No color differences when you're in a modified buffer +" * Visual mode only changes the mode section. Otherwise +" it appears the same as normal mode + +" Normal mode +let s:N1 = [ '#005f00' , '#afd700' , 22 , 148, '' ] +let s:N2 = [ '#bbbbbb' , '#444444' , 250 , 238, '' ] +let s:N3 = [ '#ffffff' , '#303030' , 231 , 235, 'bold' ] + +" Insert mode +let s:I1 = [ '#ffffff' , '#004866' , 231 , 24 ] +let s:I2 = [ '#99DDFF' , '#0087af' , 74 , 31 ] +let s:I3 = [ '#B2E5FF' , '#005f87' , 117 , 24 ] + +" Visual mode +let s:V1 = [ '#080808' , '#ffaf00' , 232 , 214 ] + +" Replace mode +let s:RE = [ '#ffffff' , '#d74444' , 231 , 9 ] + +" Inactive mode +let s:IA1 = [ '#777777' , '#4a4a4a' , 240 , 237 , '' ] +let s:IA2 = [ '#777777' , '#3a3a3a' , 242 , 236 , '' ] +let s:IA3 = [ '#999999' , s:N3[1] , 244 , s:N3[3] , '' ] + +" Tabline +let s:TN = s:N2 " normal buffers +let s:TM = [ '#870000', '#ff8700', 88, 208, 'bold' ] " modified buffers +let s:TMU = [ '#ff8700', '#870000', 208, 88, 'bold' ] " modified unselected buffers +let s:TH = [ s:N1[1], s:N1[0], s:N1[3], s:N1[2] ] " hidden buffers + +let g:airline#themes#desertink#palette = {} + +let g:airline#themes#desertink#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#desertink#palette.normal_modified = { + \ 'airline_a': s:TM, + \ 'airline_z': s:TM } + +let g:airline#themes#desertink#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:N3) +let g:airline#themes#desertink#palette.insert_replace = { + \ 'airline_a': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ], + \ 'airline_z': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ] } + +let g:airline#themes#desertink#palette.visual = { + \ 'airline_a': [ s:V1[0] , s:V1[1] , s:V1[2] , s:V1[3] , '' ], + \ 'airline_z': [ s:V1[0] , s:V1[1] , s:V1[2] , s:V1[3] , '' ] } + +let g:airline#themes#desertink#palette.replace = copy(airline#themes#desertink#palette.normal) +let g:airline#themes#desertink#palette.replace.airline_a = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ] +let g:airline#themes#desertink#palette.replace.airline_z = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ] + +let g:airline#themes#desertink#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +let g:airline#themes#desertink#palette.tabline = { + \ 'airline_tab': s:TH, + \ 'airline_tabmod': s:TM, + \ 'airline_tabmod_unsel': s:TMU, + \ 'airline_tabhid': s:TN } diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/deus.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/deus.vim new file mode 100644 index 0000000..5e946ea --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/deus.vim @@ -0,0 +1,117 @@ +if get(g:, 'deus_termcolors', 256) == 16 + let s:term_red = 1 + let s:term_green = 2 + let s:term_yellow = 3 + let s:term_blue = 4 + let s:term_purple = 5 + let s:term_white = 7 + let s:term_black = 0 + let s:term_grey = 8 +else + let s:term_red = 204 + let s:term_green = 114 + let s:term_yellow = 180 + let s:term_blue = 39 + let s:term_purple = 170 + let s:term_white = 145 + let s:term_black = 235 + let s:term_grey = 236 +endif + +let g:airline#themes#deus#palette = {} + +let g:airline#themes#deus#palette.accents = { + \ 'red': [ '#E06C75', '', s:term_red, 0 ] + \ } + +let s:N1 = [ '#282C34', '#98C379', s:term_black, s:term_green ] +let s:N2 = [ '#ABB2BF', '#3E4452', s:term_white, s:term_grey ] +let s:N3 = [ '#98C379', '#282C34', s:term_green, '' ] +let g:airline#themes#deus#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let group = airline#themes#get_highlight('vimCommand') +let g:airline#themes#deus#palette.normal_modified = { + \ 'airline_c': [ group[0], '', group[2], '', '' ] + \ } + +let s:I1 = [ '#282C34', '#61AFEF', s:term_black, s:term_blue ] +let s:I2 = s:N2 +let s:I3 = [ '#61AFEF', '#282C34', s:term_blue, '' ] +let g:airline#themes#deus#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#deus#palette.insert_modified = g:airline#themes#deus#palette.normal_modified + +let s:R1 = [ '#282C34', '#E06C75', s:term_black, s:term_red ] +let s:R2 = s:N2 +let s:R3 = [ '#E06C75', '#282C34', s:term_red, '' ] +let g:airline#themes#deus#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#deus#palette.replace_modified = g:airline#themes#deus#palette.normal_modified + +let s:V1 = [ '#282C34', '#C678DD', s:term_black, s:term_purple ] +let s:V2 = s:N2 +let s:V3 = [ '#C678DD', '#282C34', s:term_purple, '' ] +let g:airline#themes#deus#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#deus#palette.visual_modified = g:airline#themes#deus#palette.normal_modified + +let s:IA1 = [ '#282C34', '#ABB2BF', s:term_black, s:term_white ] +let s:IA2 = [ '#ABB2BF', '#3E4452', s:term_white, s:term_grey ] +let s:IA3 = s:N2 +let g:airline#themes#deus#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#deus#palette.inactive_modified = { + \ 'airline_c': [ group[0], '', group[2], '', '' ] + \ } + +" Warning/Error styling code from vim-airline's ["base16" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/base16.vim) + +" Warnings +let s:WI = [ '#282C34', '#E5C07B', s:term_black, s:term_yellow ] +let g:airline#themes#deus#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#deus#palette.normal_modified.airline_warning = + \ g:airline#themes#deus#palette.normal.airline_warning + +let g:airline#themes#deus#palette.insert.airline_warning = + \ g:airline#themes#deus#palette.normal.airline_warning + +let g:airline#themes#deus#palette.insert_modified.airline_warning = + \ g:airline#themes#deus#palette.normal.airline_warning + +let g:airline#themes#deus#palette.visual.airline_warning = + \ g:airline#themes#deus#palette.normal.airline_warning + +let g:airline#themes#deus#palette.visual_modified.airline_warning = + \ g:airline#themes#deus#palette.normal.airline_warning + +let g:airline#themes#deus#palette.replace.airline_warning = + \ g:airline#themes#deus#palette.normal.airline_warning + +let g:airline#themes#deus#palette.replace_modified.airline_warning = + \ g:airline#themes#deus#palette.normal.airline_warning + +" Errors +let s:ER = [ '#282C34', '#E06C75', s:term_black, s:term_red ] +let g:airline#themes#deus#palette.normal.airline_error = [ + \ s:ER[0], s:ER[1], s:ER[2], s:ER[3] + \ ] + +let g:airline#themes#deus#palette.normal_modified.airline_error = + \ g:airline#themes#deus#palette.normal.airline_error + +let g:airline#themes#deus#palette.insert.airline_error = + \ g:airline#themes#deus#palette.normal.airline_error + +let g:airline#themes#deus#palette.insert_modified.airline_error = + \ g:airline#themes#deus#palette.normal.airline_error + +let g:airline#themes#deus#palette.visual.airline_error = + \ g:airline#themes#deus#palette.normal.airline_error + +let g:airline#themes#deus#palette.visual_modified.airline_error = + \ g:airline#themes#deus#palette.normal.airline_error + +let g:airline#themes#deus#palette.replace.airline_error = + \ g:airline#themes#deus#palette.normal.airline_error + +let g:airline#themes#deus#palette.replace_modified.airline_error = + \ g:airline#themes#deus#palette.normal.airline_error diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/distinguished.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/distinguished.vim new file mode 100644 index 0000000..0d65f4c --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/distinguished.vim @@ -0,0 +1,59 @@ +" vim-airline companion theme of distinguished +" (https://github.com/Lokaltog/vim-distinguished) +" I have nothing to do with the original +" distinguished theme other than being a big fan. +" this theme was shamelessly created by modifying +" the Ubaryd airline theme. + +let s:gray = [245, '#8a8a8a'] +let s:golden = [143, '#afaf5f'] +let s:pink = [131, '#af5f5f'] +let s:blue = [ 67, '#5f87af'] +let s:orange = [166, '#d75f00'] +let s:outerfg = [ 16, '#000000'] +let s:innerbg = [234, '#1c1c1c'] +let s:middle = ['#bcbcbc', '#444444', 250, 238] + +" Normal mode +let s:N1 = [s:outerfg[1], s:gray[1], s:outerfg[0], s:gray[0]] +let s:N3 = [s:gray[1], s:innerbg[1], s:gray[0], s:innerbg[0]] + +" Insert mode +let s:I1 = [s:outerfg[1], s:golden[1], s:outerfg[0], s:golden[0]] +let s:I3 = [s:golden[1], s:innerbg[1], s:golden[0], s:innerbg[0]] + +" Visual mode +let s:V1 = [s:outerfg[1], s:pink[1], s:outerfg[0], s:pink[0]] +let s:V3 = [s:pink[1], s:innerbg[1], s:pink[0], s:innerbg[0]] + +" Replace mode +let s:R1 = [s:outerfg[1], s:blue[1], s:outerfg[0], s:blue[0]] +let s:R3 = [s:blue[1], s:innerbg[1], s:blue[0], s:innerbg[0]] + +" Inactive pane +let s:IA = [s:middle[1], s:innerbg[1], s:middle[3], s:innerbg[0]] + +let g:airline#themes#distinguished#palette = {} +let g:airline#themes#distinguished#palette.accents = { + \ 'red': ['#d70000', '', 160, '', '']} + +let g:airline#themes#distinguished#palette.inactive = { + \ 'airline_a': s:IA, + \ 'airline_b': s:IA, + \ 'airline_c': s:IA} + +let g:airline#themes#distinguished#palette.normal = airline#themes#generate_color_map(s:N1, s:middle, s:N3) +let g:airline#themes#distinguished#palette.normal_modified = { + \ 'airline_a': ['', s:orange[1], '', s:orange[0], ''], + \ 'airline_c': [s:orange[1], '', s:orange[0], '', ''], + \ 'airline_x': [s:orange[1], '', s:orange[0], '', ''], + \ 'airline_z': ['', s:orange[1], '', s:orange[0], '']} + +let g:airline#themes#distinguished#palette.insert = airline#themes#generate_color_map(s:I1, s:middle, s:I3) +let g:airline#themes#distinguished#palette.insert_modified = {} + +let g:airline#themes#distinguished#palette.replace = airline#themes#generate_color_map(s:R1, s:middle, s:R3) +let g:airline#themes#distinguished#palette.replace_modified = {} + +let g:airline#themes#distinguished#palette.visual = airline#themes#generate_color_map(s:V1, s:middle, s:V3) +let g:airline#themes#distinguished#palette.visual_modified = {} diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/durant.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/durant.vim new file mode 100644 index 0000000..cb844d4 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/durant.vim @@ -0,0 +1,62 @@ +let g:airline#themes#durant#palette = {} + + +let s:N1 = [ '#005f00' , '#afd700' , 22 , 148 ] +let s:N2 = [ '#93a1a1' , '#586e75' , 245 , 240 ] +let s:N3 = [ '#93a1a1' , '#073642' , 240 , 233 ] +let g:airline#themes#durant#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + +let g:airline#themes#durant#normal_modified = { + \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + \ } + + + +let s:I1 = [ '#ffffff' , '#00875f' , 255 , 29 ] +let s:I2 = [ '#9e9e9e' , '#303030' , 247 , 236 ] +let s:I3 = [ '#87d7ff' , '#005f87' , 117 , 24 ] +let g:airline#themes#durant#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#durant#palette.insert_modified = { + \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + \ } +let g:airline#themes#durant#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + + +let g:airline#themes#durant#palette.replace = copy(g:airline#themes#durant#palette.insert) +let g:airline#themes#durant#palette.replace.airline_a = [ s:I2[0] , '#af0000' , s:I2[2] , 124 , '' ] + +let g:airline#themes#durant#palette.replace_modified = g:airline#themes#durant#palette.insert_modified + +let s:V1 = [ '#1a1a18' , '#ffffff' , 232 , 255 ] +let s:V2 = [ '#ffffff' , '#44403a' , 255, 238 ] +let s:V3 = [ '#90a680' , '#2e2d2a' , 64, 235 ] +let g:airline#themes#durant#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#durant#palette.visual_modified = { + \ 'airline_c': [ '#ffffff' , '#5f005f' , 255 , 53 , '' ] , + \ } + + +let s:IA1 = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ] +let s:IA2 = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ] +let s:IA3 = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ] +let g:airline#themes#durant#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#durant#palette.inactive_modified = { + \ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , + \ } + + +let g:airline#themes#durant#palette.accents = { + \ 'red': [ '#ff0000' , '' , 160 , '' ] + \ } + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif + let g:airline#themes#durant#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#d7d7ff' , '#5f00af' , 189 , 55 , '' ], + \ [ '#ffffff' , '#875fd7' , 231 , 98 , '' ], + \ [ '#5f00af' , '#ffffff' , 55 , 231 , 'bold' ]) + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/fairyfloss.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/fairyfloss.vim new file mode 100644 index 0000000..a822c41 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/fairyfloss.vim @@ -0,0 +1,88 @@ +" Color palette +let s:guiShadow = "#3b3a32" " shadow +let s:guiDarkGray = "#49483e" " dark gray +let s:guiBgPurple = "#8076aa" " background purple +let s:guiGray = "#49483e" " gray +let s:guiViolet = "#63588d" " violet +let s:guiDustyLilac = "#efe6ff" "dusty-lilac +let s:guiSeafoam = "#c2ffdf" "seafoam +let s:guiSilver = "#f8f8f0" "silver +let s:guiFuschia = "#f92672" "fuschia +let s:guiPeach = "#ff857f" "peach +let s:guiGold = "#e6c000" "gold +let s:guiDarkSeafoam = "#80ffbd" "dark-seafoam +let s:guiLilac = "#c5a3ff" "lilac +let s:guiLavender = "#ae81ff" "lavender +let s:guiRose = "#ffb8d1" "rose +let s:guiGoldenrod = "#fffea0" "goldenrod + +let s:ctermShadow = "233" +let s:ctermDarkGray = "235" +let s:ctermBgPurple = "59" +let s:cterm03 = "66" +let s:cterm04 = "145" +let s:cterm05 = "152" +let s:cterm06 = "188" +let s:ctermSilver = "189" +let s:ctermFuschia = "88" +let s:cterm09 = "209" +let s:cterm0A = "221" +let s:ctermDarkSeafoam = "22" +let s:cterm0C = "73" +let s:ctermLavender = "25" +let s:cterm0E = "176" +let s:cterm0F = "137" + +let s:guiWhite = "#f8f8f0" +let s:guiGray = "#8076aa" +let s:ctermWhite = "231" +let s:ctermGray = "243" + +let g:airline#themes#fairyfloss#palette = {} +let s:modified = { 'airline_c': [ s:guiRose, '', 215, '', '' ] } + +" Normal mode +let s:N1 = [ s:guiSilver , s:guiLavender , s:ctermSilver , s:ctermLavender ] +let s:N2 = [ s:guiWhite , s:guiDarkGray , s:ctermWhite , s:ctermDarkGray ] +let s:N3 = [ s:guiShadow , s:guiLavender , s:ctermBgPurple , s:ctermShadow ] +let g:airline#themes#fairyfloss#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#fairyfloss#palette.normal_modified = s:modified + +" Insert mode +let s:I1 = [ s:guiDarkGray , s:guiDarkSeafoam , s:ctermWhite , s:ctermDarkSeafoam ] +let s:I2 = s:N2 +let s:I3 = [ s:guiWhite , s:guiDarkGray , s:ctermWhite , s:ctermShadow ] +let g:airline#themes#fairyfloss#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#fairyfloss#palette.insert_modified = s:modified + +" Visual mode +let s:V1 = [ s:guiWhite , s:guiFuschia , s:ctermWhite , s:ctermFuschia ] +let s:V2 = s:N2 +let s:V3 = s:I3 +let g:airline#themes#fairyfloss#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#fairyfloss#palette.visual_modified = s:modified + +" Replace mode +let s:R1 = [ s:guiFuschia , s:guiDarkGray , s:ctermFuschia, s:ctermShadow ] +let s:R2 = s:N2 +let s:R3 = s:I3 +let g:airline#themes#fairyfloss#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#fairyfloss#palette.replace_modified = s:modified + +" Inactive mode +let s:IN1 = [ s:guiGray , s:guiDarkGray , s:ctermGray , s:ctermDarkGray ] +let s:IN2 = [ s:guiBgPurple , s:guiShadow , s:ctermBgPurple , s:ctermShadow ] +let s:IN3 = [ s:guiBgPurple , s:guiShadow , s:ctermBgPurple , s:ctermShadow ] +let g:airline#themes#fairyfloss#palette.inactive = airline#themes#generate_color_map(s:IN1, s:IN2, s:IN3) +let g:airline#themes#fairyfloss#palette.inactive_modified = s:modified + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif + +let s:CP1 = [ s:guiWhite , s:guiDarkGray , s:ctermWhite , s:ctermDarkGray ] +let s:CP2 = [ s:guiWhite , s:guiGray , s:ctermWhite , s:ctermDarkGray ] +let s:CP3 = [ s:guiWhite , s:guiLavender , s:ctermWhite , s:ctermLavender ] + +let g:airline#themes#fairyfloss#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(s:CP1, s:CP2, s:CP3) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/fruit_punch.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/fruit_punch.vim new file mode 100644 index 0000000..02ba8a9 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/fruit_punch.vim @@ -0,0 +1,80 @@ +" Fruitpunch - A fruity airline theme! +" vim: tw=80 et sw=2 ts=2 + +" Colors {{{ +let s:dark_gray = ['#303030', 236] +let s:med_gray_hi = ['#444444', 238] +let s:med_gray_lo = ['#3a3a3a', 237] +let s:light_gray = ['#b2b2b2', 249] +let s:pretty_pink = ['#f29db4', 217] +let s:banana_smoothie = ['#fce78d', 222] +let s:faded_red = ['#f97070', 203] +let s:icy_sky = ['#79e5e0', 116] +let s:orangarine = ['#e8a15a', 179] +"}}} + +" Init {{{ +" Translate color defs to airline format +fun! s:gen_def(fg, bg) + return [a:fg[0], a:bg[0], a:fg[1], a:bg[1]] +endfun +let s:bar_main = s:gen_def(s:light_gray, s:med_gray_lo) + [''] +let g:airline#themes#fruit_punch#palette = {} +"}}} + +" Normal mode {{{ +let s:airline_a_normal = s:gen_def(s:dark_gray, s:pretty_pink) +let s:airline_c_normal = s:gen_def(s:pretty_pink, s:med_gray_hi) +let g:airline#themes#fruit_punch#palette.normal = + \ airline#themes#generate_color_map(s:airline_a_normal + \ , s:bar_main, s:airline_c_normal) +"}}} + +" Insert mode {{{ +let s:airline_a_insert = s:gen_def(s:dark_gray, s:banana_smoothie) +let s:airline_c_insert = s:gen_def(s:banana_smoothie, s:med_gray_hi) +let g:airline#themes#fruit_punch#palette.insert = + \ airline#themes#generate_color_map(s:airline_a_insert + \ , s:bar_main, s:airline_c_insert) +"}}} + +" Visual mode {{{ +let s:airline_a_visual = s:gen_def(s:dark_gray, s:icy_sky) +let s:airline_c_visual = s:gen_def(s:icy_sky, s:med_gray_hi) +let g:airline#themes#fruit_punch#palette.visual = + \ airline#themes#generate_color_map(s:airline_a_visual + \ , s:bar_main, s:airline_c_visual) +"}}} + +" Replace mode {{{ +let s:airline_a_replace = s:gen_def(s:dark_gray, s:faded_red) +let s:airline_c_replace = s:gen_def(s:faded_red, s:med_gray_hi) +let g:airline#themes#fruit_punch#palette.replace = + \ airline#themes#generate_color_map(s:airline_a_replace + \ , s:bar_main, s:airline_c_replace) +"}}} + +" Inactive color {{{ +let s:airline_inactive = s:gen_def(s:light_gray, s:med_gray_hi) +let g:airline#themes#fruit_punch#palette.inactive = + \ airline#themes#generate_color_map(s:airline_inactive + \ , s:airline_inactive, s:airline_inactive) +"}}} + +" Global colors {{{ +let s:tmp = {'normal_modified': {}, 'insert_modified': {} + \, 'visual_modified': {}, 'replace_modified': {}} + +for mode in keys(s:tmp) + let s:tmp[mode]['airline_c'] = s:airline_c_insert +endfor +call extend(g:airline#themes#fruit_punch#palette, s:tmp) + +let s:warning = s:gen_def(s:dark_gray, s:orangarine) +for mode in keys(g:airline#themes#fruit_punch#palette) + if mode == 'accents' + continue + endif + let g:airline#themes#fruit_punch#palette[mode]['airline_warning'] = s:warning +endfor +"}}} diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/hybrid.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/hybrid.vim new file mode 100644 index 0000000..b9bd20b --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/hybrid.vim @@ -0,0 +1,52 @@ +" vim-airline companion theme of Hybrid +" (https://github.com/w0ng/vim-hybrid) + +let g:airline#themes#hybrid#palette = {} + +function! airline#themes#hybrid#refresh() + let s:N1 = airline#themes#get_highlight('DiffAdd') + let s:N2 = airline#themes#get_highlight('CursorLine') + let s:N3 = airline#themes#get_highlight('PMenu') + let g:airline#themes#hybrid#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + let g:airline#themes#hybrid#palette.normal_modified = {} + + let warning_group = airline#themes#get_highlight('SpellRare') + let g:airline#themes#hybrid#palette.normal.airline_warning = warning_group + let g:airline#themes#hybrid#palette.normal_modified.airline_warning = warning_group + + let s:I1 = airline#themes#get_highlight2(['Text', 'fg'], ['DiffText', 'bg'], 'bold') + let s:I2 = s:N2 + let s:I3 = s:N3 + let g:airline#themes#hybrid#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#hybrid#palette.insert_modified = g:airline#themes#hybrid#palette.normal_modified + let g:airline#themes#hybrid#palette.insert.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning + let g:airline#themes#hybrid#palette.insert_modified.airline_warning = g:airline#themes#hybrid#palette.normal_modified.airline_warning + + let s:R1 = airline#themes#get_highlight('DiffChange') + let s:R2 = s:N2 + let s:R3 = s:N3 + let g:airline#themes#hybrid#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let replace_group = airline#themes#get_highlight('SpellRare') + let g:airline#themes#hybrid#palette.replace_modified = g:airline#themes#hybrid#palette.normal_modified + let g:airline#themes#hybrid#palette.replace.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning + let g:airline#themes#hybrid#palette.replace_modified.airline_warning = g:airline#themes#hybrid#palette.replace_modified.airline_warning + + let s:V1 = airline#themes#get_highlight2(['Text', 'fg'], ['DiffDelete', 'bg'], 'bold') + let s:V2 = s:N2 + let s:V3 = s:N3 + let g:airline#themes#hybrid#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#hybrid#palette.visual_modified = g:airline#themes#hybrid#palette.normal_modified + let g:airline#themes#hybrid#palette.visual.airline_warning = g:airline#themes#hybrid#palette.normal.airline_warning + let g:airline#themes#hybrid#palette.visual_modified.airline_warning = g:airline#themes#hybrid#palette.normal_modified.airline_warning + + let s:IA = airline#themes#get_highlight('StatusLineNC') + let g:airline#themes#hybrid#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#hybrid#palette.inactive_modified = g:airline#themes#hybrid#palette.normal_modified + + let g:airline#themes#hybrid#palette.accents = { + \ 'red': airline#themes#get_highlight('Constant'), + \ } + +endfunction + +call airline#themes#hybrid#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/hybridline.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/hybridline.vim new file mode 100644 index 0000000..84729c1 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/hybridline.vim @@ -0,0 +1,34 @@ +" vim-airline theme based on vim-hybrid and powerline +" (https://github.com/w0ng/vim-hybrid) +" (https://github.com/Lokaltog/powerline) + +let g:airline#themes#hybridline#palette = {} + +let s:N1 = [ '#282a2e' , '#c5c8c6' , 'black' , 15 ] +let s:N2 = [ '#c5c8c6' , '#373b41' , 15 , 8 ] +let s:N3 = [ '#ffffff' , '#282a2e' , 255 , 'black' ] +let g:airline#themes#hybridline#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#hybridline#palette.normal.airline_a = ['#005f00', '#b5bd68', 22, 10, ''] + +let s:I1 = [ '#005f5f' , '#8abeb7' , 23 , 14 ] +let s:I2 = [ '#c5c8c6' , '#0087af' , 15 , 31 ] +let s:I3 = [ '#ffffff' , '#005f87' , 255 , 24 ] +let g:airline#themes#hybridline#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#hybridline#palette.insert_paste = { + \ 'airline_a': ['#000000', '#ac4142', 16 , 1, ''] , + \ } + +let g:airline#themes#hybridline#palette.replace = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#hybridline#palette.replace.airline_a = ['#000000', '#CC6666', 16, 9] + +let g:airline#themes#hybridline#palette.visual = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#hybridline#palette.visual.airline_a = ['#000000', '#de935f', 16, 3] + +let s:IA1 = [ '#4e4e4e' , '#1c1c1c' , 239 , 234 , '' ] +let s:IA2 = [ '#4e4e4e' , '#262626' , 239 , 235 , '' ] +let s:IA3 = [ '#4e4e4e' , '#303030' , 239 , 236 , '' ] +let g:airline#themes#hybridline#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +let g:airline#themes#hybridline#palette.accents = { + \ 'red': [ '#ff0000' , '' , 160 , '' ] + \ } diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/jellybeans.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/jellybeans.vim new file mode 100644 index 0000000..3b72a1f --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/jellybeans.vim @@ -0,0 +1,88 @@ +" Color palette +let s:gui00 = "#151515" +let s:gui01 = "#262626" +let s:gui02 = "#4f5b66" +let s:gui03 = "#65737e" +let s:gui04 = "#a7adba" +let s:gui05 = "#c0c5ce" +let s:gui06 = "#cdd3de" +let s:gui07 = "#d8dee9" +let s:gui08 = "#870000" +let s:gui09 = "#f99157" +let s:gui0A = "#fac863" +let s:gui0B = "#437019" +let s:gui0C = "#5fb3b3" +let s:gui0D = "#0d61ac" +let s:gui0E = "#c594c5" +let s:gui0F = "#ab7967" + +let s:cterm00 = "233" +let s:cterm01 = "235" +let s:cterm02 = "59" +let s:cterm03 = "66" +let s:cterm04 = "145" +let s:cterm05 = "152" +let s:cterm06 = "188" +let s:cterm07 = "189" +let s:cterm08 = "88" +let s:cterm09 = "209" +let s:cterm0A = "221" +let s:cterm0B = "22" +let s:cterm0C = "73" +let s:cterm0D = "25" +let s:cterm0E = "176" +let s:cterm0F = "137" + +let s:guiWhite = "#ffffff" +let s:guiGray = "#666666" +let s:ctermWhite = "231" +let s:ctermGray = "243" + +let g:airline#themes#jellybeans#palette = {} +let s:modified = { 'airline_c': [ '#ffb964', '', 215, '', '' ] } + +" Normal mode +let s:N1 = [ s:gui07 , s:gui0D , s:cterm07 , s:cterm0D ] +let s:N2 = [ s:guiWhite , s:gui01 , s:ctermWhite , s:cterm01 ] +let s:N3 = [ s:gui02 , s:gui00 , s:cterm02 , s:cterm00 ] +let g:airline#themes#jellybeans#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#jellybeans#palette.normal_modified = s:modified + +" Insert mode +let s:I1 = [ s:guiWhite , s:gui0B , s:ctermWhite , s:cterm0B ] +let s:I2 = s:N2 +let s:I3 = [ s:guiWhite , s:gui01 , s:ctermWhite , s:cterm00 ] +let g:airline#themes#jellybeans#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#jellybeans#palette.insert_modified = s:modified + +" Visual mode +let s:V1 = [ s:guiWhite , s:gui08 , s:ctermWhite , s:cterm08 ] +let s:V2 = s:N2 +let s:V3 = s:I3 +let g:airline#themes#jellybeans#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#jellybeans#palette.visual_modified = s:modified + +" Replace mode +let s:R1 = [ s:gui08 , s:gui01 , s:cterm08, s:cterm00 ] +let s:R2 = s:N2 +let s:R3 = s:I3 +let g:airline#themes#jellybeans#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#jellybeans#palette.replace_modified = s:modified + +" Inactive mode +let s:IN1 = [ s:guiGray , s:gui01 , s:ctermGray , s:cterm01 ] +let s:IN2 = [ s:gui02 , s:gui00 , s:cterm02 , s:cterm00 ] +let s:IN3 = [ s:gui02 , s:gui00 , s:cterm02 , s:cterm00 ] +let g:airline#themes#jellybeans#palette.inactive = airline#themes#generate_color_map(s:IN1, s:IN2, s:IN3) +let g:airline#themes#jellybeans#palette.inactive_modified = s:modified + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif + +let s:CP1 = [ s:guiWhite , s:gui01 , s:ctermWhite , s:cterm01 ] +let s:CP2 = [ s:guiWhite , s:gui03 , s:ctermWhite , s:cterm01 ] +let s:CP3 = [ s:guiWhite , s:gui0D , s:ctermWhite , s:cterm0D ] + +let g:airline#themes#jellybeans#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(s:CP1, s:CP2, s:CP3) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/jet.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/jet.vim new file mode 100644 index 0000000..87d98e2 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/jet.vim @@ -0,0 +1,98 @@ +"Originally based on Jellybeans theme. +" Modified to resemble the orclord colorscheme. + +" Color palette +let s:gui00 = "#151515" +let s:gui01 = "#262626" +let s:gui02 = "#4f5b66" +let s:gui03 = "#65737e" +let s:gui04 = "#a7adba" +let s:gui05 = "#c0c5ce" +let s:gui06 = "#cdd3de" +let s:gui07 = "#d8dee9" +let s:gui08 = "#870000" +let s:gui09 = "#f99157" +let s:gui0A = "#fac863" +let s:gui0B = "#437019" +let s:gui0C = "#5fb3b3" +let s:gui0D = "#0d61ac" +let s:gui0E = "#c594c5" +let s:gui0F = "#ab7967" + +let s:cterm00 = "234" +let s:cterm01 = "235" +let s:cterm02 = "239" +let s:cterm03 = "59" +let s:cterm04 = "145" +let s:cterm05 = "152" +let s:cterm06 = "188" +let s:cterm07 = "15" +let s:cterm08 = "88" +let s:cterm09 = "209" +let s:cterm0A = "221" +let s:cterm0B = "28" +let s:cterm0C = "73" +let s:cterm0D = "04" +let s:cterm0E = "176" +let s:cterm0F = "137" + +let s:guiWhite = "#ffffff" +let s:ctermBlack = "00" +let s:ctermRed = "01" +let s:ctermGreen = "02" +let s:ctermPurple = "05" +let s:ctermGrey = "08" +let s:ctermIron = "242" +let s:ctermBrightRed = "09" +let s:ctermWhite = "15" +let s:ctermBlood = "88" +let s:ctermCongealing = "52" +let s:ctermOrange = "166" +let s:ctermBrown = "94" +let s:ctermAsh = "234" +let s:ctermPoison = "58" +let s:ctermBruise = "53" +let s:ctermWinter = "30" + +let g:airline#themes#jet#palette = {} + +" Normal mode +let s:N1 = [ s:gui07 , s:gui0D , s:ctermAsh , s:ctermBlood ] +let s:N2 = [ s:guiWhite , s:gui01 , s:ctermIron , s:ctermCongealing ] +let s:N3 = [ s:gui02 , s:gui00 , s:ctermRed , s:ctermBlack ] +let g:airline#themes#jet#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +" Insert mode +let s:I1 = [ s:guiWhite , s:gui0B , s:ctermOrange , s:ctermAsh ] +let s:I2 = [ s:gui02 , s:gui01 , s:ctermAsh , s:ctermOrange ] +let s:I3 = [ s:guiWhite , s:gui01 , s:ctermOrange , s:ctermBlack ] +let g:airline#themes#jet#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +" Visual mode +let s:V1 = [ s:guiWhite , s:gui08 , s:ctermAsh , s:ctermWinter ] +let s:V2 = [ s:gui02 , s:gui01 , s:ctermWinter , s:ctermAsh ] +let s:V3 = [ s:guiWhite , s:gui01 , s:ctermWinter , s:ctermBlack ] +let g:airline#themes#jet#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +" Replace mode +let s:R1 = [ s:gui08 , s:gui01 , s:ctermBlood, s:ctermBlack ] +let s:R2 = [ s:gui02 , s:gui01 , s:ctermRed , s:ctermBlack ] +let s:R3 = [ s:guiWhite , s:gui01 , s:ctermIron , s:ctermBlack ] +let g:airline#themes#jet#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +" Inactive mode +let s:IN1 = [ s:gui00 , s:gui01 , s:cterm00 , s:cterm01 ] +let s:IN2 = [ s:gui02 , s:gui00 , s:cterm02 , s:cterm00 ] +let s:IN3 = [ s:gui02 , s:gui00 , s:cterm02 , s:cterm00 ] +let g:airline#themes#jet#palette.inactive = airline#themes#generate_color_map(s:IN1, s:IN2, s:IN3) + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif + +let s:CP1 = [ s:guiWhite , s:gui01 , s:ctermWhite , s:cterm01 ] +let s:CP2 = [ s:guiWhite , s:gui03 , s:ctermWhite , s:cterm01 ] +let s:CP3 = [ s:guiWhite , s:gui0D , s:ctermWhite , s:cterm0D ] + +let g:airline#themes#jet#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(s:CP1, s:CP2, s:CP3) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/kalisi.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/kalisi.vim new file mode 100644 index 0000000..78504fa --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/kalisi.vim @@ -0,0 +1,70 @@ +" +" Colorscheme: Kalisi for airline. Inspired by powerline. +" Arthur Jaron +" hifreeo@gmail.com +" 24.10.2014 + +" Visual mode +let s:V1 = [ '#0087ff' , '#ffffff','33','231'] +let s:V2 = [ '#005faf' , '#5fafff','25','75'] +let s:V3 = [ '#87d7ff' , '#005faf','117','25'] + +" Replace mode +let s:R1 = [ '#d75fff' , '#ffffff','171','231'] +let s:R2 = [ '#5f005f' , '#d75fff','53','171'] +let s:R3 = [ '#ff87ff' , '#8700af','213','91'] + +let g:airline#themes#kalisi#palette = {} + + +function! airline#themes#kalisi#refresh() + + let s:StatusLine = airline#themes#get_highlight('StatusLine') + let s:StatusLineNC = airline#themes#get_highlight('StatusLineNC') + + " Insert mode + let s:I1 = [ '#ffffff' , '#e80000','231','160'] + let s:I2 = [ '#ff0000' , '#5f0000','196','52'] + let s:I3 = s:StatusLine + + " Normal mode + let s:N1 = [ '#005f00' , '#afd700','22','148'] + let s:N2 = [ '#afd700' , '#005f00','148','22'] + let s:N3 = s:StatusLine + + " Tabline Plugin + let g:airline#themes#kalisi#palette.tabline = { + \ 'airline_tab': ['#bcbcbc', '#005f00','250','22'], + \ 'airline_tabsel': ['#404042', '#A6DB29','238','148'], + \ 'airline_tabtype':['#afd700', '#204d20','148','22'], + \ 'airline_tabfill': s:StatusLine, + \ 'airline_tabhid': ['#c5c5c5', '#404042','251','238'], + \ 'airline_tabmod': ['#d7ff00', '#afd700','190','148'], + \ 'airline_tabmod_unsel': ['#d7ff00', '#005f00','190','22'] + \ } + + let g:airline#themes#kalisi#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + let g:airline#themes#kalisi#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#kalisi#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#kalisi#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + + " Inactive Mode + let s:IA = airline#themes#get_highlight('StatusLineNC') + let g:airline#themes#kalisi#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#kalisi#palette.inactive_modified = { + \ 'airline_c': ['#d7ff00', s:IA[1],'190',s:IA[3]], + \ } + +endfunction + +call airline#themes#kalisi#refresh() + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#kalisi#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ s:StatusLine, + \ ['#afd700', '#005f00','148','22'], + \ [ '#005f00' , '#afd700' , '22','148'] + \) + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/kolor.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/kolor.vim new file mode 100644 index 0000000..e61f56f --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/kolor.vim @@ -0,0 +1,59 @@ +let g:airline#themes#kolor#palette = {} + +let s:N1 = [ '#e2e2e2' , '#4f3598' , 254 , 56 ] +let s:N2 = [ '#ff5fd7' , '#242322' , 206 , 234 ] +let s:N3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ] + +let g:airline#themes#kolor#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let g:airline#themes#kolor#palette.normal_modified = { + \ 'airline_c': [ '#e2e2e2' , '#4f3598' , 254 , 56 , '' ] , + \ } + + +let s:I1 = [ '#242322' , '#7eaefd' , 234 , 111 ] +let s:I2 = [ '#75d7d8' , '#242322' , 80 , 234 ] +let s:I3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ] +let g:airline#themes#kolor#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#kolor#palette.insert_modified = { + \ 'airline_c': [ '#242322' , '#7eaefd' , 234 , 111 , '' ] , + \ } + + +let g:airline#themes#kolor#palette.replace = copy(g:airline#themes#kolor#palette.insert) +let g:airline#themes#kolor#palette.replace.airline_a = [ s:I2[0] , '#005154' , s:I2[2] , 23 , '' ] +let g:airline#themes#kolor#palette.replace_modified = { + \ 'airline_c': [ '#e2e2e2' , '#005154' , 254 , 23 , '' ] , + \ } + + +let s:V1 = [ '#242322' , '#e6987a' , 234 , 180 ] +let s:V2 = [ '#dbc570' , '#242322' , 186 , 234 ] +let s:V3 = [ '#e2e2e2' , '#4a4a4a' , 254 , 238 ] +let g:airline#themes#kolor#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#kolor#palette.visual_modified = { + \ 'airline_c': [ '#242322' , '#e6987a' , 234 , 180 , '' ] , + \ } + + +let s:IA1 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 , '' ] +let s:IA2 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 ] +let s:IA3 = [ '#b2b2b2' , '#4a4a4a' , 247 , 238 , '' ] +let g:airline#themes#kolor#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#kolor#palette.inactive_modified = { + \ 'airline_c': [ '#875faf' , '' , 97 , '' , '' ] , + \ } + + +let g:airline#themes#kolor#palette.accents = { + \ 'red': [ '#d96e8a' , '' , 168 , '' ] + \ } + + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#kolor#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#e2e2e2' , '#4a4a4a' , 254 , 238 , '' ], + \ [ '#e2e2e2' , '#242322' , 254 , 234 , '' ], + \ [ '#e2e2e2' , '#4f3598' , 254 , 56 , 'bold' ]) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/laederon.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/laederon.vim new file mode 100644 index 0000000..0c714d9 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/laederon.vim @@ -0,0 +1,87 @@ +" vim-airline companion theme of Laederon +" (https://github.com/Donearm/Laederon) +" +" Author: Gianluca fiore +" Version: 1.12 +" License: MIT + +" Normal mode +" +let s:N1 = [ '#081c8c' , '#f8f6f2','18','15'] +let s:N2 = [ '#1693a5' , '#f8f6f2','62','15'] +let s:N3 = [ '#90a680' , '#2e2d2a' , 64, 235 ] +let s:N4 = [ '#081c8c' , 18 ] + +" Insert mode +let s:I1 = [ '#f8f6f2', '#ab3e5b','15','161'] +let s:I2 = [ '#242321', '#ab3e5b','235','161'] +let s:I3 = [ '#1693a5', '#f8f6f2', '62', '15'] +let s:I4 = [ '#1693a5' , 62 ] + +" Visual mode +let s:V1 = [ '#005f00', '#f8f6f2','22','15'] +let s:V2 = [ '#f8f6f2', '#005f00','15','22'] +let s:V3 = [ '#594512', '#f8f6f2','64','15'] +let s:V4 = [ '#594512' , 64 ] + +" Replace mode +let s:R1 = [ '#90a680' , '#f8f6f2','66','15'] +let s:R2 = [ '#90a680' , '#242321','66','235'] +let s:R3 = [ '#f8f6f2' , '#90a680','15','66'] +let s:R4 = [ '#90a680' , 66 ] + +" Paste mode +let s:PA = [ '#ab3e5d' , 161 ] + +" Info modified +let s:IM = [ '#242321' , 235 ] + +" Inactive mode +let s:IA = [ s:N2[1], s:N3[1], s:N2[3], s:N3[3], '' ] + +let g:airline#themes#laederon#palette = {} + +let g:airline#themes#laederon#palette.accents = { + \ 'red': [ '#ef393d' , '' , 196 , '' , '' ], + \ } + +let g:airline#themes#laederon#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#laederon#palette.normal_modified = { + \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , + \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#laederon#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#laederon#palette.insert_modified = { + \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , + \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#laederon#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#laederon#palette.visual_modified = { + \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , + \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#laederon#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#laederon#palette.replace_modified = { + \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , + \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#laederon#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , + \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } + + +let g:airline#themes#laederon#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#laederon#palette.inactive_modified = { + \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } + + + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/light.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/light.vim new file mode 100644 index 0000000..d9fe844 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/light.vim @@ -0,0 +1,45 @@ +let g:airline#themes#light#palette = {} + +let s:N1 = [ '#ffffff' , '#005fff' , 255 , 27 ] +let s:N2 = [ '#000087' , '#00dfff' , 18 , 45 ] +let s:N3 = [ '#005fff' , '#afffff' , 27 , 159 ] +let g:airline#themes#light#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#light#palette.normal_modified = { + \ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } + + +let s:I1 = [ '#ffffff' , '#00875f' , 255 , 29 ] +let s:I2 = [ '#005f00' , '#00df87' , 22 , 42 ] +let s:I3 = [ '#005f5f' , '#afff87' , 23 , 156 ] +let g:airline#themes#light#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#light#palette.insert_modified = { + \ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } +let g:airline#themes#light#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + + +let g:airline#themes#light#palette.replace = copy(g:airline#themes#light#palette.insert) +let g:airline#themes#light#palette.replace.airline_a = [ s:I2[0] , '#ff0000' , s:I1[2] , 196 , '' ] +let g:airline#themes#light#palette.replace_modified = g:airline#themes#light#palette.insert_modified + + +let s:V1 = [ '#ffffff' , '#ff5f00' , 255 , 202 ] +let s:V2 = [ '#5f0000' , '#ffaf00' , 52 , 214 ] +let s:V3 = [ '#df5f00' , '#ffff87' , 166 , 228 ] +let g:airline#themes#light#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#light#palette.visual_modified = { + \ 'airline_c': [ '#df0000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } + + +let s:IA1 = [ '#666666' , '#b2b2b2' , 242 , 249 , '' ] +let s:IA2 = [ '#8a8a8a' , '#d0d0d0' , 245 , 252 , '' ] +let s:IA3 = [ '#a8a8a8' , '#ffffff' , 248 , 255 , '' ] +let g:airline#themes#light#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#light#palette.inactive_modified = { + \ 'airline_c': [ '#df0000' , '' , 160 , '' , '' ] , + \ } + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/lucius.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/lucius.vim new file mode 100644 index 0000000..9cb4d07 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/lucius.vim @@ -0,0 +1,71 @@ +let g:airline#themes#lucius#palette = {} + +function! airline#themes#lucius#refresh() + + let s:N1 = airline#themes#get_highlight('StatusLine') + let s:N2 = airline#themes#get_highlight('Folded') + let s:N3 = airline#themes#get_highlight('CursorLine') + let g:airline#themes#lucius#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + let modified_group = airline#themes#get_highlight('Statement') + let g:airline#themes#lucius#palette.normal_modified = { + \ 'airline_c': [modified_group[0], '', modified_group[2], '', ''] + \ } + + let warning_group = airline#themes#get_highlight('DiffChange') + let g:airline#themes#lucius#palette.normal.airline_warning = warning_group + let g:airline#themes#lucius#palette.normal_modified.airline_warning = warning_group + + let error_group = airline#themes#get_highlight('DiffDelete') + let g:airline#themes#lucius#palette.normal.airline_error = error_group + let g:airline#themes#lucius#palette.normal_modified.airline_error = error_group + + let s:I1 = airline#themes#get_highlight('DiffAdd') + let s:I2 = s:N2 + let s:I3 = s:N3 + let g:airline#themes#lucius#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#lucius#palette.insert_modified = g:airline#themes#lucius#palette.normal_modified + let g:airline#themes#lucius#palette.insert.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning + let g:airline#themes#lucius#palette.insert_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning + let g:airline#themes#lucius#palette.insert.airline_error = g:airline#themes#lucius#palette.normal.airline_error + let g:airline#themes#lucius#palette.insert_modified.airline_error = g:airline#themes#lucius#palette.normal_modified.airline_error + + let s:R1 = airline#themes#get_highlight('DiffChange') + let s:R2 = s:N2 + let s:R3 = s:N3 + let g:airline#themes#lucius#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#lucius#palette.replace_modified = g:airline#themes#lucius#palette.normal_modified + let g:airline#themes#lucius#palette.replace.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning + let g:airline#themes#lucius#palette.replace_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning + let g:airline#themes#lucius#palette.replace.airline_error = g:airline#themes#lucius#palette.normal.airline_error + let g:airline#themes#lucius#palette.replace_modified.airline_error = g:airline#themes#lucius#palette.normal_modified.airline_error + + let s:V1 = airline#themes#get_highlight('Cursor') + let s:V2 = s:N2 + let s:V3 = s:N3 + let g:airline#themes#lucius#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#lucius#palette.visual_modified = g:airline#themes#lucius#palette.normal_modified + let g:airline#themes#lucius#palette.visual.airline_warning = g:airline#themes#lucius#palette.normal.airline_warning + let g:airline#themes#lucius#palette.visual_modified.airline_warning = g:airline#themes#lucius#palette.normal_modified.airline_warning + let g:airline#themes#lucius#palette.visual.airline_error = g:airline#themes#lucius#palette.normal.airline_error + let g:airline#themes#lucius#palette.visual_modified.airline_error = g:airline#themes#lucius#palette.normal_modified.airline_error + + let s:IA = airline#themes#get_highlight('StatusLineNC') + let g:airline#themes#lucius#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#lucius#palette.inactive_modified = { + \ 'airline_c': [ modified_group[0], '', modified_group[2], '', '' ] + \ } + + let g:airline#themes#lucius#palette.accents = { + \ 'red': airline#themes#get_highlight('Constant'), + \ } + + " Extra tabline colors + let s:TS = airline#themes#get_highlight('TabLineSel') + let g:airline#themes#lucius#palette.tabline = {} + let g:airline#themes#lucius#palette.tabline.airline_tabsel = s:TS + let g:airline#themes#lucius#palette.tabline.airline_tabsel_right = s:TS + +endfunction + +call airline#themes#lucius#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/luna.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/luna.vim new file mode 100644 index 0000000..879d862 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/luna.vim @@ -0,0 +1,92 @@ +" vim-airline companion theme of Luna +" (https://github.com/Pychimp/vim-luna) + +let g:airline#themes#luna#palette = {} + +let g:airline#themes#luna#palette.accents = { + \ 'red': [ '#ffffff' , '' , 231 , '' , '' ], + \ } + + +let s:N1 = [ '#ffffff' , '#005252' , 231 , 36 ] +let s:N2 = [ '#ffffff' , '#003f3f' , 231 , 29 ] +let s:N3 = [ '#ffffff' , '#002b2b' , 231 , 23 ] +let g:airline#themes#luna#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#luna#palette.normal_modified = { + \ 'airline_c': [ '#ffffff' , '#450000' , 231 , 52 , '' ] , + \ } + + +let s:I1 = [ '#ffffff' , '#789f00' , 231 , 106 ] +let s:I2 = [ '#ffffff' , '#003f3f' , 231 , 29 ] +let s:I3 = [ '#ffffff' , '#002b2b' , 231 , 23 ] +let g:airline#themes#luna#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#luna#palette.insert_modified = { + \ 'airline_c': [ '#ffffff' , '#005e5e' , 255 , 52 , '' ] , + \ } +let g:airline#themes#luna#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#789f00' , s:I1[2] , 106 , '' ] , + \ } + + +let g:airline#themes#luna#palette.replace = copy(g:airline#themes#luna#palette.insert) +let g:airline#themes#luna#palette.replace.airline_a = [ s:I2[0] , '#920000' , s:I2[2] , 88 , '' ] +let g:airline#themes#luna#palette.replace_modified = g:airline#themes#luna#palette.insert_modified + +let s:V1 = [ '#ffff9a' , '#ff8036' , 222 , 208 ] +let s:V2 = [ '#ffffff' , '#003f3f' , 231 , 29 ] +let s:V3 = [ '#ffffff' , '#002b2b' , 231 , 23 ] +let g:airline#themes#luna#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#luna#palette.visual_modified = { + \ 'airline_c': [ '#ffffff' , '#450000' , 231 , 52 , '' ] , + \ } + +let s:IA = [ '#4e4e4e' , '#002b2b' , 59 , 23 , '' ] +let g:airline#themes#luna#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#luna#palette.inactive_modified = { + \ 'airline_c': [ '#e20000' , '' , 166 , '' , '' ] , + \ } + +let g:airline#themes#luna#palette.tabline = { + \ 'airline_tab': ['#2aa198', '#003f3f', 231, 29, ''], + \ 'airline_tabsel': ['#ffffff', '#2e8b57', 231, 36, ''], + \ 'airline_tabtype': ['#ffffff', '#005252', 231, 36, ''], + \ 'airline_tabfill': ['#ffffff', '#002b2b', 231, 23, ''], + \ 'airline_tabmod': ['#ffffff', '#780000', 231, 88, ''], + \ } + +let s:WI = [ '#ffffff', '#5f0000', 231, 88 ] +let g:airline#themes#luna#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#luna#palette.normal_modified.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.insert.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.insert_modified.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.visual.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.visual_modified.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.replace.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + +let g:airline#themes#luna#palette.replace_modified.airline_warning = + \ g:airline#themes#luna#palette.normal.airline_warning + + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#luna#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#ffffff' , '#002b2b' , 231 , 23 , '' ] , + \ [ '#ffffff' , '#005252' , 231 , 36 , '' ] , + \ [ '#ffffff' , '#973d45' , 231 , 95 , '' ] ) + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/minimalist.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/minimalist.vim new file mode 100644 index 0000000..74abe3c --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/minimalist.vim @@ -0,0 +1,81 @@ +" Minimalist Airline - A Material Color Scheme +" +" Author: Diki Ananta +" Repository: https://github.com/dikiaap/minimalist +" Version: 2.0 +" License: MIT + +let s:theme = 'minimalist' + +" To highlight when the buffer is modified: +" let g:airline_minimalist_showmod = 1 +let s:want_showmod = get(g:, 'airline_minimalist_showmod', 0) + +function! airline#themes#{s:theme}#refresh() + if &background == "dark" + " Normal + let N1 = [ '#E4E4E4', '#3A3A3A', 254, 237 ] + let N2 = [ '#E4E4E4', '#4E4E4E', 254, 239 ] + let N3 = [ '#EEEEEE', '#262626', 255, 235 ] + + " Inactive + let IA = [ '#666666', N3[1], 242, N3[3] ] + + " Error + let ER = [ '#1C1C1C', '#D75F5F', 234, 167 ] + + " Warning + let WI = [ ER[0], '#FFAF5F', ER[2], 215 ] + else + " Normal + let N1 = [ 'gray30', 'gray70', 235, 249 ] + let N2 = [ 'gray20', 'gray60', 233, 246 ] + let N3 = [ 'gray20', 'gray80', 233, 251 ] + + " Inactive + let IA = [ 'gray15', N3[1], 244, N3[3] ] + + " Error + let ER = [ '#1C1C1C', '#D75F5F', 234, 167 ] + + " Warning + let WI = [ ER[0], '#FFAF5F', ER[2], 215 ] + endif + + " Terminal + let TE = [ ER[0], N1[1], N1[2], N1[3] ] + + " Reverse + let NR = [ N2[1], N2[0], N2[3], N2[2], 'bold' ] + + + let palette = {} + + let palette.normal = airline#themes#generate_color_map(N1, N2, N3) + let palette.normal.airline_error = ER + let palette.normal.airline_warning = WI + let palette.normal.airline_term = TE + + let palette.insert = palette.normal + let palette.replace = palette.normal + let palette.visual = palette.normal + let palette.inactive = airline#themes#generate_color_map(IA, IA, IA) + + if s:want_showmod + let palette.normal_modified = { 'airline_a': NR, 'airline_z': NR } + endif + + " Accents + let palette.accents = { + \ 'red': [ ER[1], '', ER[3], '' ] + \ } + + " CtrlP + if get(g:, 'loaded_ctrlp', 0) + let palette.ctrlp = airline#extensions#ctrlp#generate_color_map(N3, N2, NR) + endif + + let g:airline#themes#{s:theme}#palette = palette +endfunction + +call airline#themes#{s:theme}#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/molokai.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/molokai.vim new file mode 100644 index 0000000..5c3b820 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/molokai.vim @@ -0,0 +1,76 @@ +let g:airline#themes#molokai#palette = {} +let g:airline#themes#molokai#palette.accents = { + \ 'red': [ '#66d9ef' , '' , 81 , '' , '' ], + \ } + +" Normal mode +let s:N1 = [ '#080808' , '#e6db74' , 232 , 144 ] " mode +if get(g:, 'airline_molokai_bright', 0) + let s:N2 = [ '#f8f8f0' , '#232526' , 253 , 208 ] " info +else + let s:N2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] " info +endif +let s:N3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] " statusline + +let g:airline#themes#molokai#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#molokai#palette.normal_modified = { + \ 'airline_c': [ '#080808' , '#e6db74' , 232 , 144 , '' ] , + \ } + +" Insert mode +let s:I1 = [ '#080808' , '#66d9ef' , 232 , 81 ] +if get(g:, 'airline_molokai_bright', 0) + let s:I2 = [ '#f8f8f0' , '#232526' , 253 , 208 ] +else + let s:I2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] +endif +let s:I3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] + +let g:airline#themes#molokai#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#molokai#palette.insert_modified = { + \ 'airline_c': [ '#080808' , '#66d9ef' , 232 , 81 , '' ] , + \ } + +" Replace mode +let s:R1 = [ '#080808' , '#f92672' , 232 , 161 ] +if get(g:, 'airline_molokai_bright', 0) + let s:R2 = [ '#f8f8f0' , '#232526' , 253 , 208 ] +else + let s:R2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] +endif +let s:R3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] + +let g:airline#themes#molokai#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#molokai#palette.replace_modified = { + \ 'airline_c': [ '#080808' , '#f92672' , 232 , 161 , '' ] , + \ } + +" Visual mode +let s:V1 = [ '#080808' , '#a6e22e' , 232 , 118 ] +if get(g:, 'airline_molokai_bright', 0) + let s:V2 = [ '#f8f8f0' , '#232526' , 253 , 208 ] +else + let s:V2 = [ '#f8f8f0' , '#232526' , 253 , 16 ] +endif +let s:V3 = [ '#f8f8f0' , '#465457' , 253 , 67 ] + +let g:airline#themes#molokai#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#molokai#palette.visual_modified = { + \ 'airline_c': [ '#080808' , '#a6e22e' , 232 , 118 , '' ] , + \ } + +" Inactive +let s:IA = [ '#1b1d1e' , '#465457' , 233 , 67 , '' ] +let g:airline#themes#molokai#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#molokai#palette.inactive_modified = { + \ 'airline_c': [ '#f8f8f0' , '' , 253 , '' , '' ] , + \ } + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#molokai#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#f8f8f0' , '#465457' , 253 , 67 , '' ] , + \ [ '#f8f8f0' , '#232526' , 253 , 16 , '' ] , + \ [ '#080808' , '#e6db74' , 232 , 144 , 'bold' ] ) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/monochrome.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/monochrome.vim new file mode 100644 index 0000000..3d8c2e9 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/monochrome.vim @@ -0,0 +1,18 @@ +let g:airline#themes#monochrome#palette = {} + +function! airline#themes#monochrome#refresh() + let s:SL = airline#themes#get_highlight('StatusLine') + let s:SLNC = airline#themes#get_highlight('StatusLineNC') + + let g:airline#themes#monochrome#palette.normal = airline#themes#generate_color_map(s:SL, s:SL, s:SL) + let g:airline#themes#monochrome#palette.insert = g:airline#themes#monochrome#palette.normal + let g:airline#themes#monochrome#palette.replace = g:airline#themes#monochrome#palette.normal + let g:airline#themes#monochrome#palette.visual = g:airline#themes#monochrome#palette.normal + let g:airline#themes#monochrome#palette.normal.airline_error = s:SLNC + let g:airline#themes#monochrome#palette.normal.airline_warning = s:SLNC + let g:airline#themes#monochrome#palette.normal.airline_term = s:SL + + let g:airline#themes#monochrome#palette.inactive = airline#themes#generate_color_map(s:SLNC, s:SLNC, s:SLNC) +endfunction + +call airline#themes#monochrome#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/murmur.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/murmur.vim new file mode 100644 index 0000000..08e4757 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/murmur.vim @@ -0,0 +1,82 @@ +let g:airline#themes#murmur#palette = {} + +" Color palette +let s:cterm_termbg = 237 " Background for branch and file format blocks +let s:gui_termbg = '#5F5F5F' +let s:cterm_termfg = 144 " Foreground for branch and file format blocks +let s:gui_termfg = '#AFAF87' + +let s:cterm_termbg2 = 234 " Background for middle block +let s:gui_termbg2 = '#1C1C1C' +let s:cterm_termfg2 = 39 " Foreground for middle block +let s:gui_termfg2 = '#F5F5F5' + +let s:cterm_normalbg = 27 " Background for normal mode and file position blocks +let s:gui_normalbg = '#5F87FF' +let s:cterm_normalfg = 15 " Foreground for normal mode and file position blocks +let s:gui_normalfg = '#FFFFFF' + +let s:cterm_insertbg = 70 " Background for insert mode and file position blocks +let s:gui_insertbg = '#87AF5F' +let s:cterm_insertfg = 15 " Foreground for insert mode and file position blocks +let s:gui_insertfg = '#FFFFFF' + +let s:cterm_visualbg = 166 " Background for visual mode and file position blocks +let s:gui_visualbg = '#ff8c00' +let s:cterm_visualfg = 15 " Foreground for visual mode and file position blocks +let s:gui_visualfg = '#FFFFFF' + +let s:cterm_replacebg = 88 " Background for replace mode and file position blocks +let s:gui_replacebg = '#870000' +let s:cterm_replacefg = 15 " Foreground for replace mode and file position blocks +let s:gui_replacefg = '#FFFFFF' + +let s:cterm_alert = 88 " Modified file alert color +let s:gui_alert = '#870000' + +let s:cterm_inactivebg = 234 " Background for inactive mode +let s:gui_inactivebg = '#1C1C1C' +let s:cterm_inactivefg = 239 " Foreground for inactive mode +let s:gui_inactivefg = '#4E4E4E' + +" Branch and file format +let s:BB = [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg] " Branch and file format blocks + +" Normal mode +let s:N1 = [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg] " Outside blocks in normal mode +let s:N2 = [s:gui_termfg2, s:gui_termbg2, s:cterm_normalbg, s:cterm_termbg2] " Middle block +let g:airline#themes#murmur#palette.normal = airline#themes#generate_color_map(s:N1, s:BB, s:N2) +let g:airline#themes#murmur#palette.normal_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} + +" Insert mode +let s:I1 = [s:gui_insertfg, s:gui_insertbg, s:cterm_insertfg, s:cterm_insertbg] " Outside blocks in insert mode +let s:I2 = [s:gui_insertbg, s:gui_termbg2, s:cterm_insertbg, s:cterm_termbg2] " Middle block +let g:airline#themes#murmur#palette.insert = airline#themes#generate_color_map(s:I1, s:BB, s:I2) +let g:airline#themes#murmur#palette.insert_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} + +" Replace mode +let s:R1 = [s:gui_replacefg, s:gui_replacebg, s:cterm_replacefg, s:cterm_replacebg] " Outside blocks in replace mode +let s:R2 = [s:gui_termfg, s:gui_termbg2, s:cterm_termfg, s:cterm_termbg2] " Middle block +let g:airline#themes#murmur#palette.replace = airline#themes#generate_color_map(s:R1, s:BB, s:R2) +let g:airline#themes#murmur#palette.replace_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} + +" Visual mode +let s:V1 = [s:gui_visualfg, s:gui_visualbg, s:cterm_visualfg, s:cterm_visualbg] " Outside blocks in visual mode +let s:V2 = [s:gui_visualbg, s:gui_termbg2, s:cterm_visualbg, s:cterm_termbg2] " Middle block +let g:airline#themes#murmur#palette.visual = airline#themes#generate_color_map(s:V1, s:BB, s:V2) +let g:airline#themes#murmur#palette.visual_modified = {'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'] ,} + +" Inactive mode +let s:IA1 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let s:IA2 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let s:IA3 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let g:airline#themes#murmur#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + +" CtrlP plugin colors +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#murmur#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg, ''], + \ [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg, ''], + \ [s:gui_termfg2, s:gui_termbg2, s:cterm_termfg2, s:cterm_termbg2, 'bold']) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/night_owl.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/night_owl.vim new file mode 100644 index 0000000..7350f43 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/night_owl.vim @@ -0,0 +1,60 @@ +" Port/inspired from https://github.com/sdras/night-owl-vscode-theme +" Jared Ramirez + +let s:gui_black = "#282C34" +let s:cterm_black = 16 + +let s:gui_purple = "#C792EA" +let s:cterm_purple = 176 +let s:gui_purple_offset = "#9f74bb" +let s:cterm_purple_offset = 139 + +let s:gui_yellow = "#FFD787" +let s:cterm_yellow = 222 +let s:gui_yellow_offset = "#ccac6c" +let s:cterm_yellow_offset = 179 + +let s:gui_blue = "#81AAFF" +let s:cterm_blue = 111 +let s:gui_blue_offset = "#6788cc" +let s:cterm_blue_offset = 68 + +let s:gui_cyan = "#83DCC8" +let s:cterm_cyan = 116 +let s:gui_cyan_offset = "#68b0a0" +let s:cterm_cyan_offset = 73 + +let s:gui_green = "#AFD75F" +let s:cterm_green = 149 +let s:gui_green_offset = "#8cac4c" +let s:cterm_green_offset = 107 + +let s:gui_white = "#FFFFFF" +let s:cterm_white = 255 + +let g:airline#themes#night_owl#palette = {} + +let s:N1 = [ s:gui_black, s:gui_cyan, s:cterm_black, s:cterm_cyan ] +let s:N2 = [ s:gui_black, s:gui_cyan_offset, s:cterm_black, s:cterm_cyan_offset ] +let s:N3 = [ s:gui_cyan, s:gui_black, s:cterm_cyan, s:cterm_black ] +let g:airline#themes#night_owl#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let s:I1 = [ s:gui_black, s:gui_green, s:cterm_black, s:cterm_green ] +let s:I2 = [ s:gui_black, s:gui_green_offset, s:cterm_black, s:cterm_green_offset ] +let s:I3 = [ s:gui_green, s:gui_black, s:cterm_green, s:cterm_black ] +let g:airline#themes#night_owl#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + +let s:V1 = [ s:gui_black, s:gui_blue, s:cterm_black, s:cterm_blue ] +let s:V2 = [ s:gui_black, s:gui_blue_offset, s:cterm_black, s:cterm_blue_offset ] +let s:V3 = [ s:gui_blue, s:gui_black, s:cterm_blue, s:cterm_black ] +let g:airline#themes#night_owl#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + +let s:R1 = [ s:gui_black, s:gui_yellow, s:cterm_black, s:cterm_yellow ] +let s:R2 = [ s:gui_black, s:gui_yellow_offset, s:cterm_black, s:cterm_yellow_offset ] +let s:R3 = [ s:gui_yellow, s:gui_black, s:cterm_yellow, s:cterm_black ] +let g:airline#themes#night_owl#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + +let s:IA1 = [ s:gui_black, s:gui_purple, s:cterm_black, s:cterm_purple ] +let s:IA2 = [ s:gui_purple, s:gui_black, s:cterm_purple, s:cterm_black ] +let s:IA3 = [ s:gui_purple, s:gui_black, s:cterm_purple, s:cterm_black ] +let g:airline#themes#night_owl#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/onedark.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/onedark.vim new file mode 100644 index 0000000..a552cdd --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/onedark.vim @@ -0,0 +1,129 @@ +" [onedark.vim](https://github.com/joshdick/onedark.vim/) + +" This is a [vim-airline](https://github.com/vim-airline/vim-airline) theme for use with +" the [onedark.vim](https://github.com/joshdick/onedark.vim) colorscheme. + +" It is based on vim-airline's ["tomorrow" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/tomorrow.vim). +function! airline#themes#onedark#refresh() + + if get(g:, 'onedark_termcolors', 256) == 16 + let s:term_red = 1 + let s:term_green = 2 + let s:term_yellow = 3 + let s:term_blue = 4 + let s:term_purple = 5 + let s:term_white = 7 + let s:term_black = 0 + let s:term_grey = 8 + else + let s:term_red = 204 + let s:term_green = 114 + let s:term_yellow = 180 + let s:term_blue = 39 + let s:term_purple = 170 + let s:term_white = 145 + let s:term_black = 235 + let s:term_grey = 236 + endif + + let g:airline#themes#onedark#palette = {} + + let g:airline#themes#onedark#palette.accents = { + \ 'red': [ '#E06C75', '', s:term_red, 0 ] + \ } + + let s:N1 = [ '#282C34', '#98C379', s:term_black, s:term_green ] + let s:N2 = [ '#ABB2BF', '#3E4452', s:term_white, s:term_grey ] + let s:N3 = [ '#98C379', '#282C34', s:term_green, s:term_grey ] + let g:airline#themes#onedark#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + let group = airline#themes#get_highlight('vimCommand') + let g:airline#themes#onedark#palette.normal_modified = { + \ 'airline_c': [ group[0], '', group[2], '', '' ] + \ } + + let s:I1 = [ '#282C34', '#61AFEF', s:term_black, s:term_blue ] + let s:I2 = s:N2 + let s:I3 = [ '#61AFEF', '#282C34', s:term_blue, s:term_grey ] + let g:airline#themes#onedark#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#onedark#palette.insert_modified = g:airline#themes#onedark#palette.normal_modified + + let s:R1 = [ '#282C34', '#E06C75', s:term_black, s:term_red ] + let s:R2 = s:N2 + let s:R3 = [ '#E06C75', '#282C34', s:term_red, s:term_grey ] + let g:airline#themes#onedark#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#onedark#palette.replace_modified = g:airline#themes#onedark#palette.normal_modified + + let s:V1 = [ '#282C34', '#C678DD', s:term_black, s:term_purple ] + let s:V2 = s:N2 + let s:V3 = [ '#C678DD', '#282C34', s:term_purple, '' ] + let g:airline#themes#onedark#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#onedark#palette.visual_modified = g:airline#themes#onedark#palette.normal_modified + + let s:IA1 = [ '#282C34', '#ABB2BF', s:term_black, s:term_white ] + let s:IA2 = [ '#ABB2BF', '#3E4452', s:term_white, s:term_grey ] + let s:IA3 = s:N2 + let g:airline#themes#onedark#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) + let g:airline#themes#onedark#palette.inactive_modified = { + \ 'airline_c': [ group[0], '', group[2], '', '' ] + \ } + + " Warning/Error styling code from vim-airline's ["base16" theme](https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/base16.vim) + + " Warnings + let s:WI = [ '#282C34', '#E5C07B', s:term_black, s:term_yellow ] + let g:airline#themes#onedark#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + + let g:airline#themes#onedark#palette.normal_modified.airline_warning = + \ g:airline#themes#onedark#palette.normal.airline_warning + + let g:airline#themes#onedark#palette.insert.airline_warning = + \ g:airline#themes#onedark#palette.normal.airline_warning + + let g:airline#themes#onedark#palette.insert_modified.airline_warning = + \ g:airline#themes#onedark#palette.normal.airline_warning + + let g:airline#themes#onedark#palette.visual.airline_warning = + \ g:airline#themes#onedark#palette.normal.airline_warning + + let g:airline#themes#onedark#palette.visual_modified.airline_warning = + \ g:airline#themes#onedark#palette.normal.airline_warning + + let g:airline#themes#onedark#palette.replace.airline_warning = + \ g:airline#themes#onedark#palette.normal.airline_warning + + let g:airline#themes#onedark#palette.replace_modified.airline_warning = + \ g:airline#themes#onedark#palette.normal.airline_warning + + " Errors + let s:ER = [ '#282C34', '#E06C75', s:term_black, s:term_red ] + let g:airline#themes#onedark#palette.normal.airline_error = [ + \ s:ER[0], s:ER[1], s:ER[2], s:ER[3] + \ ] + + let g:airline#themes#onedark#palette.normal_modified.airline_error = + \ g:airline#themes#onedark#palette.normal.airline_error + + let g:airline#themes#onedark#palette.insert.airline_error = + \ g:airline#themes#onedark#palette.normal.airline_error + + let g:airline#themes#onedark#palette.insert_modified.airline_error = + \ g:airline#themes#onedark#palette.normal.airline_error + + let g:airline#themes#onedark#palette.visual.airline_error = + \ g:airline#themes#onedark#palette.normal.airline_error + + let g:airline#themes#onedark#palette.visual_modified.airline_error = + \ g:airline#themes#onedark#palette.normal.airline_error + + let g:airline#themes#onedark#palette.replace.airline_error = + \ g:airline#themes#onedark#palette.normal.airline_error + + let g:airline#themes#onedark#palette.replace_modified.airline_error = + \ g:airline#themes#onedark#palette.normal.airline_error + +endfunction + +call airline#themes#onedark#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ouo.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ouo.vim new file mode 100755 index 0000000..2c05b7a --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ouo.vim @@ -0,0 +1,135 @@ +" Author: Huang Po-Hsuan +" Filename: ouo.vim +" Last Modified: 2018-10-21 19:59:41 +" Vim: enc=utf-8 + +" ouo palette +" inspired by murmur and fresh + +let g:airline#themes#ouo#palette = {} + +" Color palette +let s:cterm_termbg = 237 " Background for branch and file format blocks +let s:gui_termbg = '#3A3A3A' +let s:cterm_termfg = 144 " Foreground for branch and file format blocks +let s:gui_termfg = '#AFAF87' + +let s:cterm_termbg2 = 234 " Background for middle block +let s:gui_termbg2 = '#1C1C1C' +let s:cterm_termfg2 = 39 " Foreground for middle block +let s:gui_termfg2 = '#00AFFF' + +let s:cterm_normalbg = 27 " Background for normal mode and file position blocks +let s:gui_normalbg = '#005FFF' +let s:cterm_normalfg = 15 " Foreground for normal mode and file position blocks +let s:gui_normalfg = '#FFFFFF' + +let s:cterm_insertbg = 70 " Background for insert mode and file position blocks +let s:gui_insertbg = '#5FAF00' +let s:cterm_insertfg = 15 " Foreground for insert mode and file position blocks +let s:gui_insertfg = '#FFFFFF' + +let s:cterm_visualbg = 166 " Background for visual mode and file position blocks +let s:gui_visualbg = '#D75F00' +let s:cterm_visualfg = 15 " Foreground for visual mode and file position blocks +let s:gui_visualfg = '#FFFFFF' + +let s:cterm_replacebg = 160 " Background for replace mode and file position blocks +let s:gui_replacebg = '#D70000' +let s:cterm_replacefg = 15 " Foreground for replace mode and file position blocks +let s:gui_replacefg = '#FFFFFF' + +let s:cterm_alert = 124 " Modified file alert color +let s:gui_alert = '#AF0000' + +let s:cterm_warningbg = 166 " Background for warning blocks +let s:gui_warningbg = '#D75F00' +let s:cterm_warningfg = 15 " Foreground for warning blocks +let s:gui_warningfg = '#FFFFFF' + +let s:cterm_errorbg = 160 " Background for error blocks +let s:gui_errorbg = '#D70000' +let s:cterm_errorfg = 15 " Foreground for error blocks +let s:gui_errorfg = '#FFFFFF' + +let s:cterm_inactivebg = 234 " Background for inactive mode +let s:gui_inactivebg = '#1C1C1C' +let s:cterm_inactivefg = 239 " Foreground for inactive mode +let s:gui_inactivefg = '#4E4E4E' + +" Branch and file format +let s:BB = [s:gui_termfg, s:gui_termbg, s:cterm_termfg, s:cterm_termbg] + +" Warning and error format +let s:W = [s:gui_warningfg, s:gui_warningbg, s:cterm_warningfg, s:cterm_warningbg, 'bold'] +let s:E = [s:gui_errorfg, s:gui_errorbg, s:cterm_errorfg, s:cterm_errorbg, 'bold'] + +" NORMAL mode +" Outside blocks in normal mode +let s:N1 = [s:gui_normalfg, s:gui_normalbg, s:cterm_normalfg, s:cterm_normalbg] +let s:N2 = s:BB +" Middle block +let s:N3 = [s:gui_termfg2, s:gui_termbg2, s:cterm_normalbg, s:cterm_termbg2] +let g:airline#themes#ouo#palette.normal = + \ airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#ouo#palette.normal.airline_warning = s:W +let g:airline#themes#ouo#palette.normal.airline_error = s:E +let g:airline#themes#ouo#palette.normal_modified = { + \ 'airline_c': [s:gui_alert, s:gui_termbg2, s:cterm_alert, s:cterm_termbg2, 'bold'], + \ 'airline_warning': s:W, + \ 'airline_error': s:E + \ } + +" INSERT mode +" Outside blocks in insert mode +let s:I1 = [s:gui_insertfg, s:gui_insertbg, s:cterm_insertfg, s:cterm_insertbg] +let s:I2 = s:BB +" Middle block +let s:I3 = [s:gui_insertbg, s:gui_termbg2, s:cterm_insertbg, s:cterm_termbg2] +let g:airline#themes#ouo#palette.insert = + \ airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#ouo#palette.insert.airline_warning = s:W +let g:airline#themes#ouo#palette.insert.airline_error = s:E +let g:airline#themes#ouo#palette.insert_modified = + \ g:airline#themes#ouo#palette.normal_modified + +" REPLACE mode +" Outside blocks in replace mode +let s:R1 = [s:gui_replacefg, s:gui_replacebg, s:cterm_replacefg, s:cterm_replacebg] +let s:R2 = s:BB +" Middle block +let s:R3 = [s:gui_termfg, s:gui_termbg2, s:cterm_termfg, s:cterm_termbg2] +let g:airline#themes#ouo#palette.replace = + \ airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#ouo#palette.replace.airline_warning = s:W +let g:airline#themes#ouo#palette.replace.airline_error = s:E +let g:airline#themes#ouo#palette.replace_modified = + \ g:airline#themes#ouo#palette.normal_modified + +" VISAUL mode +" Outside blocks in visual mode +let s:V1 = [s:gui_visualfg, s:gui_visualbg, s:cterm_visualfg, s:cterm_visualbg] +let s:V2 = s:BB +" Middle block +let s:V3 = [s:gui_visualbg, s:gui_termbg2, s:cterm_visualbg, s:cterm_termbg2] +let g:airline#themes#ouo#palette.visual = + \ airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#ouo#palette.visual.airline_warning = s:W +let g:airline#themes#ouo#palette.visual.airline_error = s:E +let g:airline#themes#ouo#palette.visual_modified = + \ g:airline#themes#ouo#palette.normal_modified + +" INACTIVE mode +let s:IA1 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let s:IA2 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let s:IA3 = [s:gui_inactivefg, s:gui_inactivebg, s:cterm_inactivefg, s:cterm_inactivebg, ''] +let g:airline#themes#ouo#palette.inactive = + \ airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#ouo#palette.inactive.airline_warning = s:IA2 +let g:airline#themes#ouo#palette.inactive.airline_error = s:IA2 +let g:airline#themes#ouo#palette.inactive_modified = + \ g:airline#themes#ouo#palette.normal_modified + +let g:airline#themes#ouo#palette.accents = { + \ 'red': [ '#FF0000' , '' , 160 , '' ] + \ } diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/owo.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/owo.vim new file mode 100644 index 0000000..792a4c0 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/owo.vim @@ -0,0 +1,85 @@ +let s:gui_dark_gray = '#303030' +let s:cterm_dark_gray = 236 + +let s:gui_med_gray_hi = '#444444' +let s:cterm_med_gray_hi = 238 + +let s:gui_med_gray_lo = '#3a3a3a' +let s:cterm_med_gray_lo = 237 + +let s:gui_light_gray = '#b2b2b2' +let s:cterm_light_gray = 249 + +let s:gui_deep_green = '#5faf00' +let s:cterm_deep_green = 70 + +let s:gui_green = '#afd787' +let s:cterm_green = 150 + +let s:gui_light_blue = '#00afff' +let s:cterm_light_blue = 39 + +let s:gui_blue = '#87afd7' +let s:cterm_blue = 110 + +let s:gui_sky_blue = '#87afff' +let s:cterm_sky_blue = 111 + +let s:gui_purple = '#afafd7' +let s:cterm_purple = 146 + +let s:gui_orange = '#d7af5f' +let s:cterm_orange = 179 + +let s:gui_red = '#d78787' +let s:cterm_red = 174 + +let s:gui_pink = '#d7afd7' +let s:cterm_pink = 182 + +let g:airline#themes#owo#palette = {} + +" Normal mode +let s:N1 = [s:gui_dark_gray, '#87d7ff', s:cterm_dark_gray, 117] +let s:N2 = [s:gui_light_gray, s:gui_med_gray_lo, s:cterm_light_gray, s:cterm_med_gray_lo] +let s:N3 = ['#87d7ff', s:gui_med_gray_hi, 117, s:cterm_med_gray_hi] +let g:airline#themes#owo#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#owo#palette.normal_modified = { + \ 'airline_c': [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi, ''], + \ } + +" Insert mode +let s:I1 = [s:gui_med_gray_hi, s:gui_blue, s:cterm_med_gray_hi, s:cterm_blue] +let s:I3 = [s:gui_blue, s:gui_med_gray_hi, s:cterm_blue, s:cterm_med_gray_hi] +let g:airline#themes#owo#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:I3) +let g:airline#themes#owo#palette.insert_modified = copy(g:airline#themes#owo#palette.normal_modified) +let g:airline#themes#owo#palette.insert_paste = { + \ 'airline_a': [s:gui_dark_gray, s:gui_orange, s:cterm_dark_gray, s:cterm_orange, ''], + \ } + +" Replace mode +let g:airline#themes#owo#palette.replace = { + \ 'airline_a': [s:gui_dark_gray, '#8787ff', s:cterm_dark_gray, 105, ''], + \ 'airline_c': ['#8787ff', s:gui_med_gray_hi, 105, s:cterm_med_gray_hi, ''], + \ } +let g:airline#themes#owo#palette.replace_modified = copy(g:airline#themes#owo#palette.insert_modified) + +" Visual mode +let s:V1 = [s:gui_dark_gray, '#87d787', s:cterm_dark_gray, 114] +let s:V3 = ['#87d787', s:gui_med_gray_hi, 114, s:cterm_med_gray_hi] +let g:airline#themes#owo#palette.visual = airline#themes#generate_color_map(s:V1, s:N2, s:V3) +let g:airline#themes#owo#palette.visual_modified = copy(g:airline#themes#owo#palette.insert_modified) + +" Inactive window +let s:IA = [s:gui_light_gray, s:gui_med_gray_hi, s:cterm_light_gray, s:cterm_med_gray_hi, ''] +let g:airline#themes#owo#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#owo#palette.inactive_modified = copy(g:airline#themes#owo#palette.normal_modified) + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#owo#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ s:gui_orange, s:gui_med_gray_hi, s:cterm_orange, s:cterm_med_gray_hi, '' ] , + \ [ s:gui_orange, s:gui_med_gray_lo, s:cterm_orange, s:cterm_med_gray_lo, '' ] , + \ [ s:gui_dark_gray, s:gui_green, s:cterm_dark_gray, s:cterm_green, 'bold' ] ) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/papercolor.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/papercolor.vim new file mode 100644 index 0000000..fb8022b --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/papercolor.vim @@ -0,0 +1,65 @@ +let g:airline#themes#papercolor#palette = {} + +let g:airline#themes#papercolor#palette.accents = { + \ 'red': [ '#66d9ef' , '' , 81 , '' , '' ], + \ } + +" Normal Mode: +let s:N1 = [ '#585858' , '#e4e4e4' , 240 , 254 ] " Mode +let s:N2 = [ '#e4e4e4' , '#0087af' , 254 , 31 ] " Info +let s:N3 = [ '#eeeeee' , '#005f87' , 255 , 24 ] " StatusLine + + +let g:airline#themes#papercolor#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#papercolor#palette.normal_modified = { + \ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] , + \ } + + +" Insert Mode: +let s:I1 = [ '#585858' , '#e4e4e4' , 240 , 254 ] " Mode +let s:I2 = [ '#e4e4e4' , '#0087af' , 254 , 31 ] " Info +let s:I3 = [ '#eeeeee' , '#005f87' , 255 , 24 ] " StatusLine + + +let g:airline#themes#papercolor#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#papercolor#palette.insert_modified = { + \ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] , + \ } + + +" Replace Mode: +let g:airline#themes#papercolor#palette.replace = copy(g:airline#themes#papercolor#palette.insert) +let g:airline#themes#papercolor#palette.replace.airline_a = [ '#d7005f' , '#e4e4e4' , 161 , 254, '' ] +let g:airline#themes#papercolor#palette.replace_modified = { + \ 'airline_c': [ '#eeeeee' , '#005f87' , 255 , 24 , '' ] , + \ } + + +" Visual Mode: +let s:V1 = [ '#005f87', '#e4e4e4', 24, 254 ] +let s:V2 = [ '', '#0087af', '', 31 ] +let s:V3 = [ '#e4e4e4', '#005f87', 254, 24 ] + +let g:airline#themes#papercolor#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#papercolor#palette.visual_modified = { + \ 'airline_c': [ '#e4e4e4', '#005f87', 254, 24 ] , + \ } + +" Inactive: +let s:IA = [ '#585858' , '#e4e4e4' , 240 , 254 , '' ] +let g:airline#themes#papercolor#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#papercolor#palette.inactive_modified = { + \ 'airline_c': [ '#585858' , '#e4e4e4' , 240 , 254 , '' ] , + \ } + + +" CtrlP: +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#papercolor#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#e4e4e4' , '#005f87' , 254 , 24 , '' ] , + \ [ '#e4e4e4' , '#0087af' , 254 , 31 , '' ] , + \ [ '#585858' , '#e4e4e4' , 240 , 254 , 'bold' ] ) + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/peaksea.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/peaksea.vim new file mode 100644 index 0000000..3ba5ff4 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/peaksea.vim @@ -0,0 +1,75 @@ +" peaksea Airline theme +" +" Author: Jonathan Dion +" Version: 1.0 +" License: MIT + +" Normal Mode +let s:N1 = [ '#3A3A3A' , '#C0D8F8' , 254 , 237 ] +let s:N2 = [ '#E4E4E4' , '#4E4E4E' , 254 , 239 ] +let s:N3 = [ '#EEEEEE' , '#262626' , 255 , 235 ] + +" Insert Mode +let s:I1 = [ '#3A3A3A' , '#60F080' , 254 , 237 ] +let s:I2 = [ '#E4E4E4' , '#4E4E4E' , 254 , 239 ] +let s:I3 = [ '#EEEEEE' , '#262626' , 255 , 235 ] + +" Visual Mode +let s:V1 = [ '#3A3A3A' , '#F0C0F0' , 254 , 237 ] +let s:V2 = [ '#E4E4E4' , '#4E4E4E' , 254 , 239 ] +let s:V3 = [ '#EEEEEE' , '#262626' , 255 , 235 ] + +" Replace Mode +let s:R1 = [ '#3A3A3A' , '#D0D090' , 254 , 237 ] +let s:R2 = [ '#E4E4E4' , '#4E4E4E' , 254 , 239 ] +let s:R3 = [ '#EEEEEE' , '#262626' , 255 , 235 ] + +" Inactive Mode +let s:IA = [ '#666666' , '#262626' , 242 , 235 , '' ] + +let g:airline#themes#peaksea#palette = {} +let g:airline#themes#peaksea#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#peaksea#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#peaksea#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#peaksea#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#peaksea#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + +" Warning Mode +let s:WI = [ '#1C1C1C' , '#E0C060' , 234 , 215 , '' ] +let g:airline#themes#peaksea#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] +let g:airline#themes#peaksea#palette.insert.airline_warning = g:airline#themes#peaksea#palette.normal.airline_warning +let g:airline#themes#peaksea#palette.visual.airline_warning = g:airline#themes#peaksea#palette.normal.airline_warning +let g:airline#themes#peaksea#palette.replace.airline_warning = g:airline#themes#peaksea#palette.normal.airline_warning + +" Error Mode +let s:ER = [ '#1C1C1C' , '' , 234 , 167 , '' ] +let g:airline#themes#peaksea#palette.normal.airline_error = [ + \ s:ER[0], s:ER[1], s:ER[2], s:ER[3] + \ ] +let g:airline#themes#peaksea#palette.insert.airline_error = g:airline#themes#peaksea#palette.normal.airline_error +let g:airline#themes#peaksea#palette.visual.airline_error = g:airline#themes#peaksea#palette.normal.airline_error +let g:airline#themes#peaksea#palette.replace.airline_error = g:airline#themes#peaksea#palette.normal.airline_error + +" Terminal +let s:TE = [ '#1C1C1C' , '#3A3A3A' , 254 , 237 , '' ] +let g:airline#themes#peaksea#palette.normal.airline_term = [ + \ s:TE[0], s:TE[1], s:TE[2], s:TE[3] + \ ] +let g:airline#themes#peaksea#palette.insert.airline_term = g:airline#themes#peaksea#palette.normal.airline_term +let g:airline#themes#peaksea#palette.visual.airline_term = g:airline#themes#peaksea#palette.normal.airline_term +let g:airline#themes#peaksea#palette.replace.airline_term = g:airline#themes#peaksea#palette.normal.airline_term + +" Accents +let g:airline#themes#peaksea#palette.accents = { + \ 'red': [ '#D75F5F' , '' , 167 , '' ] + \ } + +" CtrlP +if get(g:, 'loaded_ctrlp', 0) + let g:airline#themes#peaksea#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#E4E4E4' , '#262626' , 254 , 235 , '' ], + \ [ '#E4E4E4' , '#4E4E4E' , 254 , 239 , '' ], + \ [ '#585858' , '#E4E4E4' , 240 , 254 , 'bold' ]) +endif diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/powerlineish.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/powerlineish.vim new file mode 100644 index 0000000..3d3f6a0 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/powerlineish.vim @@ -0,0 +1,49 @@ +" Theme to mimic the default colorscheme of powerline +" Not 100% the same so it's powerline... ish. +" +" Differences from default powerline: +" * Paste indicator isn't colored different +" * Far right hand section matches the color of the mode indicator +" +" Differences from other airline themes: +" * No color differences when you're in a modified buffer +" * Visual mode only changes the mode section. Otherwise +" it appears the same as normal mode + +" Normal mode " fg & bg +let s:N1 = [ '#005f00' , '#afd700' , 22 , 148 ] " darkestgreen & brightgreen +let s:N2 = [ '#9e9e9e' , '#303030' , 247 , 236 ] " gray8 & gray2 +let s:N3 = [ '#ffffff' , '#121212' , 231 , 233 ] " white & gray4 + +" Insert mode " fg & bg +let s:I1 = [ '#005f5f' , '#ffffff' , 23 , 231 ] " darkestcyan & white +let s:I2 = [ '#5fafd7' , '#0087af' , 74 , 31 ] " darkcyan & darkblue +let s:I3 = [ '#87d7ff' , '#005f87' , 117 , 24 ] " mediumcyan & darkestblue + +" Visual mode " fg & bg +let s:V1 = [ '#080808' , '#ffaf00' , 232 , 214 ] " gray3 & brightestorange + +" Replace mode " fg & bg +let s:RE = [ '#ffffff' , '#d70000' , 231 , 160 ] " white & brightred + +let g:airline#themes#powerlineish#palette = {} + +let g:airline#themes#powerlineish#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let g:airline#themes#powerlineish#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#powerlineish#palette.insert_replace = { + \ 'airline_a': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ], + \ 'airline_z': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ] } + +let g:airline#themes#powerlineish#palette.visual = { + \ 'airline_a': [ s:V1[0] , s:V1[1] , s:V1[2] , s:V1[3] , '' ], + \ 'airline_z': [ s:V1[0] , s:V1[1] , s:V1[2] , s:V1[3] , '' ] } + +let g:airline#themes#powerlineish#palette.replace = copy(airline#themes#powerlineish#palette.normal) +let g:airline#themes#powerlineish#palette.replace.airline_a = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ] +let g:airline#themes#powerlineish#palette.replace.airline_z = g:airline#themes#powerlineish#palette.replace.airline_a + + +let s:IA = [ s:N2[0] , s:N3[1] , s:N2[2] , s:N3[3] , '' ] +let g:airline#themes#powerlineish#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/qwq.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/qwq.vim new file mode 100644 index 0000000..c028aca --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/qwq.vim @@ -0,0 +1,61 @@ +" github: https://github.com/LuciusChen +scriptencoding utf-8 + +let g:airline#themes#qwq#palette = {} + +" normalmode +let s:N1 = [ '#0E3B4F' , '#FFEEE5' , 17 , 190 ] +let s:N2 = [ '#0E3B4F' , '#FFD3CB' , 255 , 238 ] +let s:N3 = [ '#ffffff' , '#F7846E' , 85 , 234 ] +let s:N4 = [ '#ffffff' , '#FF5D4F' , 255 , 53 ] +let g:airline#themes#qwq#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#qwq#palette.normal_modified = { 'airline_c': [ s:N4[0], s:N4[1], s:N4[2], s:N4[3], '' ], } + +" insertmode +let s:I1 = [ '#0E3B4F' , '#FFF5D9' , 17 , 45 ] +let s:I2 = [ '#0E3B4F' , '#DDE58E' , 255 , 27 ] +let s:I3 = [ '#ffffff' , '#9ED47B' , 15 , 17 ] +let s:I4 = [ '#ffffff' , '#6BAD3F' , 255 , 53 ] +let s:I5 = [ '#ffffff' , '#6BAD3F' , 17 , 172 ] +let g:airline#themes#qwq#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#qwq#palette.insert_modified = { 'airline_c': [ s:I4[0], s:I4[1], s:I4[2], s:I4[3], '' ], } +let g:airline#themes#qwq#palette.insert_paste = { 'airline_a': [ s:I5[0], s:I5[2], s:I5[2], s:I5[3], '' ], } + +" replacemode +let s:R1 = [ '#0E3B4F' , '#C1F9CD' , 17 , 45 ] +let s:R2 = [ '#0E3B4F' , '#8BEFC7' , 255 , 27 ] +let s:R3 = [ '#ffffff' , '#04BEC3' , 15 , 17 ] +let s:R4 = [ '#ffffff' , '#008492' , 255 , 53 ] +let g:airline#themes#qwq#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#qwq#palette.replace.airline_a = [ s:R1[0], s:R1[1], s:R2[2], 124, ''] +let g:airline#themes#qwq#palette.replace_modified = { 'airline_c': [ s:R4[0], s:R4[1], s:R4[2], s:R4[3], '' ], } + + +" visualmode +let s:V1 = [ '#0E3B4F' , '#FFEEE5' , 232 , 214 ] +let s:V2 = [ '#0E3B4F' , '#FF9DA5' , 232 , 202 ] +let s:V3 = [ '#ffffff' , '#FF5B6F' , 15 , 52 ] +let s:V4 = [ '#ffffff' , '#FF003F' , 255 , 53 ] +let g:airline#themes#qwq#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#qwq#palette.visual_modified = { 'airline_c': [ s:V4[0], s:V4[1], s:V4[2], s:V4[3], '' ], } + +" inactive +let s:IA1 = [ '#0E3B4F' , '#FEFCF9' , 239 , 234 , '' ] +let s:IA2 = [ '#0E3B4F' , '#DDC6AF' , 239 , 235 , '' ] +let s:IA3 = [ '#ffffff' , '#A28E79' , 239 , 236 , '' ] +let g:airline#themes#qwq#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#qwq#palette.inactive_modified = { 'airline_c': [ '#ffffff', '', 97, '', '' ], } + +let g:airline#themes#qwq#palette.accents = { 'red': [ '#ffffff', '', 160, '' ] } + +" Here we define the color map for ctrlp. We check for the g:loaded_ctrlp +" variable so that related functionality is loaded iff the user is using +" ctrlp. Note that this is optional, and if you do not define ctrlp colors +" they will be chosen automatically from the existing palette. +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let s:C1 = [ '#0E3B4F' , '#FEFCF9' , 189 , 55 , '' ] +let s:C2 = [ '#0E3B4F' , '#DDC6AF' , 231 , 98 , '' ] +let s:C3 = [ '#ffffff' , '#B9A695' , 55 , 231 , '' ] +let g:airline#themes#qwq#palette.ctrlp = airline#extensions#ctrlp#generate_color_map(s:C1, s:C2, s:C3) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/raven.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/raven.vim new file mode 100644 index 0000000..02bfd73 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/raven.vim @@ -0,0 +1,85 @@ +let g:airline#themes#raven#palette = {} + +let g:airline#themes#raven#palette.accents = { + \ 'red': [ '#ff2121' , '' , 196 , '' , '' ], + \ } + +let s:N1 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ] +let s:N2 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ] +let s:N3 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ] +let g:airline#themes#raven#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#raven#palette.normal_modified = { + \ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] , + \ } + +let s:I1 = [ '#11c279' , '#2e2e2e' , 36 , 235 ] +let s:I2 = [ '#11c279' , '#2e2e2e' , 36 , 235 ] +let s:I3 = [ '#11c279' , '#2e2e2e' , 36 , 235 ] +let g:airline#themes#raven#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#raven#palette.insert_modified = { + \ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] , + \ } +let g:airline#themes#raven#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#2e2e2e' , s:I1[2] , 235 , '' ] , + \ } + +let g:airline#themes#raven#palette.replace = copy(g:airline#themes#raven#palette.insert) +let g:airline#themes#raven#palette.replace.airline_a = [ '#e60000' , s:I1[1] , 160 , s:I1[3] , '' ] +let g:airline#themes#raven#palette.replace.airline_z = [ '#e60000' , s:I1[1] , 160 , s:I1[3] , '' ] +let g:airline#themes#raven#palette.replace_modified = g:airline#themes#raven#palette.insert_modified + +let s:V1 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ] +let s:V2 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ] +let s:V3 = [ '#6565ff' , '#2e2e2e' , 63 , 235 ] +let g:airline#themes#raven#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#raven#palette.visual_modified = { + \ 'airline_c': [ '#e25000' , '#2e2e2e' , 166 , 235 , '' ] , + \ } + +let s:IA = [ '#5e5e5e' , '#222222' , 59 , 235 , '' ] +let g:airline#themes#raven#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#raven#palette.inactive_modified = { + \ 'airline_c': [ '#e25000' , '' , 166 , '' , '' ] , + \ } + +let g:airline#themes#raven#palette.tabline = { + \ 'airline_tab': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ], + \ 'airline_tabsel': ['#2e2e2e' , '#a4c639' , 235 , 149 , '' ], + \ 'airline_tabtype': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ], + \ 'airline_tabfill': ['#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ], + \ 'airline_tabmod': ['#2e2e2e' , '#a4c639' , 235 , 149 , '' ], + \ } + +let s:WI = [ '#ff0000', '#2e2e2e', 196, 235 ] +let g:airline#themes#raven#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#raven#palette.normal_modified.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.insert.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.insert_modified.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.visual.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.visual_modified.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.replace.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +let g:airline#themes#raven#palette.replace_modified.airline_warning = + \ g:airline#themes#raven#palette.normal.airline_warning + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#raven#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ] , + \ [ '#c8c8c8' , '#2e2e2e' , 188 , 235 , '' ] , + \ [ '#2e2e2e' , '#a4c639' , 235 , 149 , '' ] ) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ravenpower.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ravenpower.vim new file mode 100644 index 0000000..0f244ca --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ravenpower.vim @@ -0,0 +1,36 @@ +" Pretty much powerlineish clone, and some +" of the hex colours was borrowed from raven + +" Normal mode " fg & bg +let s:N1 = [ '#005f00' , '#1d1f21' , 7 , 8 ] " darkestgreen & brightgreen +let s:N2 = [ '#9e9e9e' , '#303030' , 247 , 236 ] " gray8 & gray2 +let s:N3 = [ '#c8c8c8' , '#2e2e2e' , 188 , 235 ] " white & gray4 + +" Insert mode " fg & bg +"let s:I1 = [ '#005f5f' , '#ffffff' , 23 , 231 ] " darkestcyan & white +"let s:I2 = [ '#5fafd7' , '#0087af' , 74 , 31 ] " darkcyan & darkblue +let s:I1 = [ '#87d7ff' , '#1d1f21' , 7 , 24 ] " mediumcyan & darkestblue + +" Visual mode " fg & bg +let s:V1 = [ '#080808' , '#ffaf00' , 232 , 214 ] " gray3 & brightestorange + +" Replace mode " fg & bg +let s:RE = [ '#ffffff' , '#d70000' , 231 , 160 ] " white & brightred + +let g:airline#themes#ravenpower#palette = {} + +let g:airline#themes#ravenpower#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let g:airline#themes#ravenpower#palette.insert = airline#themes#generate_color_map(s:I1, s:N2, s:N3) +let g:airline#themes#ravenpower#palette.insert_replace = { + \ 'airline_a': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ] } + +let g:airline#themes#ravenpower#palette.visual = { + \ 'airline_a': [ s:V1[0] , s:V1[1] , s:V1[2] , s:V1[3] , '' ] } + +let g:airline#themes#ravenpower#palette.replace = copy(airline#themes#ravenpower#palette.normal) +let g:airline#themes#ravenpower#palette.replace.airline_a = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ] + + +let s:IA = [ s:N2[1] , s:N3[1] , s:N2[3] , s:N3[3] , '' ] +let g:airline#themes#ravenpower#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/seagull.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/seagull.vim new file mode 100644 index 0000000..7fa0a0a --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/seagull.vim @@ -0,0 +1,189 @@ +" Airline theme for Seabird/Seagull: +" https://github.com/nightsense/seabird/blob/master/colors/seagull.vim +" +" Based on Solarized theme code: +" https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/solarized.vim +let g:airline#themes#seagull#palette = {} + +function! airline#themes#seagull#refresh() + """""""""""""""""""""""""""""""""""""""""""""""" + " Options + """""""""""""""""""""""""""""""""""""""""""""""" + let s:background = get(g:, 'airline_seagull_bg', &background) + let s:ansi_colors = get(g:, 'seagull_termcolors', 16) != 256 && &t_Co >= 16 ? 1 : 0 + let s:use_green = get(g:, 'airline_seagull_normal_green', 0) + let s:dark_inactive_border = get(g:, 'airline_seagull_dark_inactive_border', 0) + let s:tty = &t_Co == 8 + + """""""""""""""""""""""""""""""""""""""""""""""" + " Colors + """""""""""""""""""""""""""""""""""""""""""""""" + " Base colors + let s:base03 = {'t': 234, 'g': '#0b141a'} + let s:base02 = {'t': 235, 'g': '#1d252b'} + let s:base01 = {'t': 240, 'g': '#61707a'} + let s:base00 = {'t': 241, 'g': '#6d767d'} + let s:base0 = {'t': 244, 'g': '#787e82'} + let s:base1 = {'t': 245, 'g': '#808487'} + let s:base2 = {'t': 254, 'g': '#e6eaed'} + let s:base3 = {'t': 230, 'g': '#ffffff'} + let s:yellow = {'t': 136, 'g': '#bf8c00'} + let s:orange = {'t': 166, 'g': '#ff6200'} + let s:red = {'t': 160, 'g': '#ff4053'} + let s:magenta = {'t': 125, 'g': '#ff549b'} + let s:violet = {'t': 61, 'g': '#9854ff'} + let s:blue = {'t': 33, 'g': '#0099ff'} + let s:cyan = {'t': 37, 'g': '#00a5ab'} + let s:green = {'t': 64, 'g': '#11ab00'} + + """""""""""""""""""""""""""""""""""""""""""""""" + " Simple mappings + " NOTE: These are easily tweakable mappings. The actual mappings get + " the specific gui and terminal colors from the base color dicts. + """""""""""""""""""""""""""""""""""""""""""""""" + " Normal mode + if s:background == 'dark' + let s:N1 = [s:base3, (s:use_green ? s:green : s:base1), 'bold'] + let s:N2 = [s:base2, (s:tty ? s:base01 : s:base00), ''] + let s:N3 = [s:base01, s:base02, ''] + else + let s:N1 = [s:base2, (s:use_green ? s:green : s:base00), 'bold'] + let s:N2 = [(s:tty ? s:base01 : s:base2), s:base1, ''] + let s:N3 = [s:base1, s:base2, ''] + endif + let s:NF = [s:orange, s:N3[1], ''] + let s:NW = [s:base3, s:orange, ''] + if s:background == 'dark' + let s:NM = [s:base1, s:N3[1], ''] + let s:NMi = [s:base2, s:N3[1], ''] + else + let s:NM = [s:base01, s:N3[1], ''] + let s:NMi = [s:base02, s:N3[1], ''] + endif + + " Insert mode + let s:I1 = [s:N1[0], s:cyan, 'bold'] + let s:I2 = s:N2 + let s:I3 = s:N3 + let s:IF = s:NF + let s:IM = s:NM + + " Visual mode + let s:V1 = [s:N1[0], s:green, 'bold'] + let s:V2 = s:N2 + let s:V3 = s:N3 + let s:VF = s:NF + let s:VM = s:NM + + " Replace mode + let s:R1 = [s:N1[0], s:red, ''] + let s:R2 = s:N2 + let s:R3 = s:N3 + let s:RM = s:NM + let s:RF = s:NF + + " Inactive, according to VertSplit in seagull + " (bg dark: base00; bg light: base0) + if s:background == 'dark' + if s:dark_inactive_border + let s:IA = [s:base01, s:base02, ''] + else + let s:IA = [s:base02, s:base00, ''] + endif + else + let s:IA = [s:base2, s:base0, ''] + endif + + """""""""""""""""""""""""""""""""""""""""""""""" + " Actual mappings + " WARNING: Don't modify this section unless necessary. + """""""""""""""""""""""""""""""""""""""""""""""" + let s:NFa = [s:NF[0].g, s:NF[1].g, s:NF[0].t, s:NF[1].t, s:NF[2]] + let s:IFa = [s:IF[0].g, s:IF[1].g, s:IF[0].t, s:IF[1].t, s:IF[2]] + let s:VFa = [s:VF[0].g, s:VF[1].g, s:VF[0].t, s:VF[1].t, s:VF[2]] + let s:RFa = [s:RF[0].g, s:RF[1].g, s:RF[0].t, s:RF[1].t, s:RF[2]] + + let g:airline#themes#seagull#palette.accents = { + \ 'red': s:NFa, + \ } + + let g:airline#themes#seagull#palette.inactive = airline#themes#generate_color_map( + \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]], + \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]], + \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]]) + let g:airline#themes#seagull#palette.inactive_modified = { + \ 'airline_c': [s:NMi[0].g, '', s:NMi[0].t, '', s:NMi[2]]} + + let g:airline#themes#seagull#palette.normal = airline#themes#generate_color_map( + \ [s:N1[0].g, s:N1[1].g, s:N1[0].t, s:N1[1].t, s:N1[2]], + \ [s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]], + \ [s:N3[0].g, s:N3[1].g, s:N3[0].t, s:N3[1].t, s:N3[2]]) + + let g:airline#themes#seagull#palette.normal.airline_warning = [ + \ s:NW[0].g, s:NW[1].g, s:NW[0].t, s:NW[1].t, s:NW[2]] + + let g:airline#themes#seagull#palette.normal.airline_error = [ + \ s:NW[0].g, s:NW[1].g, s:NW[0].t, s:NW[1].t, s:NW[2]] + + let g:airline#themes#seagull#palette.normal_modified = { + \ 'airline_c': [s:NM[0].g, s:NM[1].g, + \ s:NM[0].t, s:NM[1].t, s:NM[2]]} + + let g:airline#themes#seagull#palette.normal_modified.airline_warning = + \ g:airline#themes#seagull#palette.normal.airline_warning + + let g:airline#themes#seagull#palette.insert = airline#themes#generate_color_map( + \ [s:I1[0].g, s:I1[1].g, s:I1[0].t, s:I1[1].t, s:I1[2]], + \ [s:I2[0].g, s:I2[1].g, s:I2[0].t, s:I2[1].t, s:I2[2]], + \ [s:I3[0].g, s:I3[1].g, s:I3[0].t, s:I3[1].t, s:I3[2]]) + + let g:airline#themes#seagull#palette.insert.airline_warning = + \ g:airline#themes#seagull#palette.normal.airline_warning + + let g:airline#themes#seagull#palette.insert_modified = { + \ 'airline_c': [s:IM[0].g, s:IM[1].g, + \ s:IM[0].t, s:IM[1].t, s:IM[2]]} + + let g:airline#themes#seagull#palette.insert_modified.airline_warning = + \ g:airline#themes#seagull#palette.normal.airline_warning + + let g:airline#themes#seagull#palette.visual = airline#themes#generate_color_map( + \ [s:V1[0].g, s:V1[1].g, s:V1[0].t, s:V1[1].t, s:V1[2]], + \ [s:V2[0].g, s:V2[1].g, s:V2[0].t, s:V2[1].t, s:V2[2]], + \ [s:V3[0].g, s:V3[1].g, s:V3[0].t, s:V3[1].t, s:V3[2]]) + + let g:airline#themes#seagull#palette.visual.airline_warning = + \ g:airline#themes#seagull#palette.normal.airline_warning + + let g:airline#themes#seagull#palette.visual_modified = { + \ 'airline_c': [s:VM[0].g, s:VM[1].g, + \ s:VM[0].t, s:VM[1].t, s:VM[2]]} + + let g:airline#themes#seagull#palette.visual_modified.airline_warning = + \ g:airline#themes#seagull#palette.normal.airline_warning + + let g:airline#themes#seagull#palette.replace = airline#themes#generate_color_map( + \ [s:R1[0].g, s:R1[1].g, s:R1[0].t, s:R1[1].t, s:R1[2]], + \ [s:R2[0].g, s:R2[1].g, s:R2[0].t, s:R2[1].t, s:R2[2]], + \ [s:R3[0].g, s:R3[1].g, s:R3[0].t, s:R3[1].t, s:R3[2]]) + + let g:airline#themes#seagull#palette.replace.airline_warning = + \ g:airline#themes#seagull#palette.normal.airline_warning + + let g:airline#themes#seagull#palette.replace_modified = { + \ 'airline_c': [s:RM[0].g, s:RM[1].g, + \ s:RM[0].t, s:RM[1].t, s:RM[2]]} + + let g:airline#themes#seagull#palette.replace_modified.airline_warning = + \ g:airline#themes#seagull#palette.normal.airline_warning + + let g:airline#themes#seagull#palette.tabline = {} + + let g:airline#themes#seagull#palette.tabline.airline_tab = [ + \ s:I2[0].g, s:I2[1].g, s:I2[0].t, s:I2[1].t, s:I2[2]] + + let g:airline#themes#seagull#palette.tabline.airline_tabtype = [ + \ s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]] +endfunction + +call airline#themes#seagull#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/serene.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/serene.vim new file mode 100644 index 0000000..9191c07 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/serene.vim @@ -0,0 +1,41 @@ +let g:airline#themes#serene#palette = {} + +let s:guibg = '#080808' +let s:termbg = 232 +let s:termsep = 236 +let s:guisep = '#303030' + +let s:N1 = [ '#00dfff' , s:guibg , 45 , s:termbg ] +let s:N2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ] +let s:N3 = [ '#767676' , s:guibg , 7 , s:termbg ] + +let g:airline#themes#serene#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#serene#palette.normal_modified = { + \ 'airline_c': [ '#df0000' , s:guibg, 160 , s:termbg , '' ] , + \ } + +let s:I1 = [ '#5fff00' , s:guibg , 82 , s:termbg ] +let s:I2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ] +let s:I3 = [ '#767676' , s:guibg , 7 , s:termbg ] +let g:airline#themes#serene#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#serene#palette.insert_modified = copy(g:airline#themes#serene#palette.normal_modified) +let g:airline#themes#serene#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + +let g:airline#themes#serene#palette.replace = { + \ 'airline_a': [ s:I1[0] , '#af0000' , s:I1[2] , 124 , '' ] , + \ } +let g:airline#themes#serene#palette.replace_modified = copy(g:airline#themes#serene#palette.normal_modified) + +let s:V1 = [ '#dfdf00' , s:guibg , 184 , s:termbg ] +let s:V2 = [ '#ff5f00' , s:guibg , 202 , s:termbg ] +let s:V3 = [ '#767676' , s:guibg , 7 , s:termbg ] +let g:airline#themes#serene#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#serene#palette.visual_modified = copy(g:airline#themes#serene#palette.normal_modified) + +let s:IA = [ '#4e4e4e' , s:guibg , 239 , s:termbg , '' ] +let s:IA2 = [ '#4e4e4e' , s:guisep , 239 , s:termsep , '' ] +let g:airline#themes#serene#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA2, s:IA2) +let g:airline#themes#serene#palette.inactive_modified = copy(g:airline#themes#serene#palette.normal_modified) + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/sierra.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/sierra.vim new file mode 100644 index 0000000..d736459 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/sierra.vim @@ -0,0 +1,94 @@ +" File: sierra.vim +" Author: Danilo Augusto +" Date: 2017-02-26 +" License: MIT + +let s:gui00 = "#303030" " ANSI Black +let s:gui01 = "#af5f5f" " ANSI Red +let s:gui02 = "#d75f5f" " ANSI Green +let s:gui03 = "#afd7d7" " ANSI Yellow +let s:gui04 = "#af8787" " ANSI Blue +let s:gui05 = "#dfaf87" " ANSI Magenta +let s:gui06 = "#ffafaf" " ANSI Cyan +let s:gui07 = "#f7e4c0" " ANSI White +let s:gui08 = "#686868" +let s:gui09 = "#af5f5f" +let s:gui0A = "#d75f5f" +let s:gui0B = "#afd7d7" +let s:gui0C = "#af8787" +let s:gui0D = "#dfaf87" +let s:gui0E = "#ffb2af" +let s:gui0F = "#ffffff" + +let s:cterm00 = "236" +let s:cterm01 = "131" +let s:cterm02 = "167" +let s:cterm03 = "152" +let s:cterm04 = "138" +let s:cterm05 = "180" +let s:cterm06 = "217" +let s:cterm07 = "222" +let s:cterm08 = "242" +let s:cterm09 = "131" +let s:cterm0A = "167" +let s:cterm0B = "152" +let s:cterm0C = "138" +let s:cterm0D = "180" +let s:cterm0E = "217" +let s:cterm0F = "231" + +let s:guiWhite = "#ffffff" +let s:guiGray = "#666666" +let s:guiDarkGray = "#545454" +let s:guiAlmostBlack = "#2a2a2a" +let s:ctermWhite = "231" +let s:ctermGray = "243" +let s:ctermDarkGray = "240" +let s:ctermAlmostBlack = "235" + +let g:airline#themes#sierra#palette = {} +let s:modified = { 'airline_c': [s:gui07, '', s:cterm07, '', ''] } + +" Normal mode +let s:N1 = [s:guiWhite, s:gui0D, s:ctermWhite, s:cterm0D] +let s:N2 = [s:guiWhite, s:gui01, s:ctermWhite, s:cterm01] +let s:N3 = [s:gui02, s:guiDarkGray, s:cterm02, s:ctermDarkGray] +let g:airline#themes#sierra#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#sierra#palette.normal_modified = s:modified + +" Insert mode +let s:I1 = [s:guiWhite, s:gui0B, s:ctermWhite, s:cterm0B] +let s:I2 = s:N2 +let s:I3 = [s:guiWhite, s:gui01, s:ctermWhite, s:cterm01] +let g:airline#themes#sierra#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#sierra#palette.insert_modified = s:modified + +" Visual mode +let s:V1 = [s:guiWhite, s:gui08, s:ctermWhite, s:cterm08] +let s:V2 = s:N2 +let s:V3 = s:I3 +let g:airline#themes#sierra#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#sierra#palette.visual_modified = s:modified + +" Replace mode +let s:R1 = [s:gui08, s:gui00, s:cterm08, s:cterm00] +let s:R2 = s:N2 +let s:R3 = s:I3 +let g:airline#themes#sierra#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#sierra#palette.replace_modified = s:modified + +" Inactive mode +let s:IN1 = [s:guiGray, s:gui01, s:ctermGray, s:cterm01] +let s:IN2 = [s:gui02, s:guiAlmostBlack, s:cterm02, s:ctermAlmostBlack] +let s:IN3 = [s:gui02, s:guiAlmostBlack, s:cterm02, s:ctermAlmostBlack] +let g:airline#themes#sierra#palette.inactive = airline#themes#generate_color_map(s:IN1, s:IN2, s:IN3) +let g:airline#themes#sierra#palette.inactive_modified = s:modified + +" CtrlP +if !get(g:, 'loaded_ctrlp', 0) + finish +endif + +let s:CP1 = [s:guiWhite, s:gui01, s:ctermWhite, s:cterm01] +let s:CP2 = [s:guiWhite, s:gui03, s:ctermWhite, s:cterm01] +let s:CP3 = [s:guiWhite, s:gui0D, s:ctermWhite, s:cterm0D] diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/silver.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/silver.vim new file mode 100644 index 0000000..fd85edb --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/silver.vim @@ -0,0 +1,85 @@ +let g:airline#themes#silver#palette = {} + +let g:airline#themes#silver#palette.accents = { + \ 'red': [ '#ff2121' , '' , 196 , '' , '' ], + \ } + +let s:N1 = [ '#414141' , '#e1e1e1' , 59 , 188 ] +let s:N2 = [ '#414141' , '#e1e1e1' , 59 , 188 ] +let s:N3 = [ '#414141' , '#e1e1e1' , 59 , 188 ] +let g:airline#themes#silver#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#silver#palette.normal_modified = { + \ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] , + \ } + +let s:I1 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ] +let s:I2 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ] +let s:I3 = [ '#0d935c' , '#e1e1e1' , 29 , 188 ] +let g:airline#themes#silver#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#silver#palette.insert_modified = { + \ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] , + \ } +let g:airline#themes#silver#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#e1e1e1' , s:I1[2] , 188 , '' ] , + \ } + +let g:airline#themes#silver#palette.replace = copy(g:airline#themes#silver#palette.insert) +let g:airline#themes#silver#palette.replace.airline_a = [ '#b30000' , s:I1[1] , 124 , s:I1[3] , '' ] +let g:airline#themes#silver#palette.replace.airline_z = [ '#b30000' , s:I1[1] , 124 , s:I1[3] , '' ] +let g:airline#themes#silver#palette.replace_modified = g:airline#themes#silver#palette.insert_modified + +let s:V1 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ] +let s:V2 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ] +let s:V3 = [ '#0000b3' , '#e1e1e1' , 19 , 188 ] +let g:airline#themes#silver#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#silver#palette.visual_modified = { + \ 'airline_c': [ '#e25000' , '#e1e1e1' , 166 , 188 , '' ] , + \ } + +let s:IA = [ '#a1a1a1' , '#dddddd' , 145 , 188 , '' ] +let g:airline#themes#silver#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#silver#palette.inactive_modified = { + \ 'airline_c': [ '#e25000' , '' , 166 , '' , '' ] , + \ } + +let g:airline#themes#silver#palette.tabline = { + \ 'airline_tab': ['#414141' , '#e1e1e1' , 59 , 188 , '' ], + \ 'airline_tabsel': ['#e1e1e1' , '#007599' , 188 , 30 , '' ], + \ 'airline_tabtype': ['#414141' , '#e1e1e1' , 59 , 188 , '' ], + \ 'airline_tabfill': ['#414141' , '#e1e1e1' , 59 , 188 , '' ], + \ 'airline_tabmod': ['#e1e1e1' , '#007599' , 188 , 30 , '' ], + \ } + +let s:WI = [ '#ff0000', '#e1e1e1', 196, 188 ] +let g:airline#themes#silver#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#silver#palette.normal_modified.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.insert.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.insert_modified.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.visual.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.visual_modified.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.replace.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +let g:airline#themes#silver#palette.replace_modified.airline_warning = + \ g:airline#themes#silver#palette.normal.airline_warning + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#silver#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#414141' , '#e1e1e1' , 59 , 188 , '' ] , + \ [ '#414141' , '#e1e1e1' , 59 , 188 , '' ] , + \ [ '#e1e1e1' , '#007599' , 188 , 30 , '' ] ) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/simple.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/simple.vim new file mode 100644 index 0000000..a111a1c --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/simple.vim @@ -0,0 +1,46 @@ +let g:airline#themes#simple#palette = {} + +let s:guibg = '#080808' +let s:guibg2 = '#1c1c1c' +let s:termbg = 232 +let s:termbg2= 234 + +let s:N1 = [ s:guibg , '#00dfff' , s:termbg , 45 ] +let s:N2 = [ '#ff5f00' , s:guibg2, 202 , s:termbg2 ] +let s:N3 = [ '#767676' , s:guibg, 243 , s:termbg] +let g:airline#themes#simple#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#simple#palette.normal_modified = { + \ 'airline_c': [ '#df0000' , s:guibg, 160 , s:termbg , '' ] , + \ } + + +let s:I1 = [ s:guibg, '#5fff00' , s:termbg , 82 ] +let s:I2 = [ '#ff5f00' , s:guibg2, 202 , s:termbg2 ] +let s:I3 = [ '#767676' , s:guibg, 243 , s:termbg ] +let g:airline#themes#simple#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#simple#palette.insert_modified = copy(g:airline#themes#simple#palette.normal_modified) +let g:airline#themes#simple#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + + +let g:airline#themes#simple#palette.replace = { + \ 'airline_a': [ s:I1[0] , '#af0000' , s:I1[2] , 124 , '' ] , + \ } +let g:airline#themes#simple#palette.replace_modified = copy(g:airline#themes#simple#palette.normal_modified) + + +let s:V1 = [ s:guibg, '#dfdf00' , s:termbg , 184 ] +let s:V2 = [ '#ff5f00' , s:guibg2, 202 , s:termbg2 ] +let s:V3 = [ '#767676' , s:guibg, 243 , s:termbg ] +let g:airline#themes#simple#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#simple#palette.visual_modified = copy(g:airline#themes#simple#palette.normal_modified) + + +let s:IA = [ '#4e4e4e' , s:guibg , 239 , s:termbg , '' ] +let s:IA2 = [ '#4e4e4e' , s:guibg2 , 239 , s:termbg2 , '' ] +let g:airline#themes#simple#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA2, s:IA2) +let g:airline#themes#simple#palette.inactive_modified = { + \ 'airline_c': [ '#df0000', '', 160, '', '' ] , + \ } + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/soda.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/soda.vim new file mode 100644 index 0000000..582adc5 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/soda.vim @@ -0,0 +1,33 @@ +let g:airline#themes#soda#palette = {} + +let g:airline#themes#soda#palette.normal = airline#themes#generate_color_map( + \['#ffffff', '#875faf', 255, 97], + \['#ffffff', '#875f87', 255, 91], + \['#ffffff', '#5f0087', 255, 54]) + +let g:airline#themes#soda#palette.insert = airline#themes#generate_color_map( + \['#ffffff', '#005f00', 255, 22], + \['#ffffff', '#008700', 255, 28], + \['#ffffff', '#00af00', 255, 34]) + +let g:airline#themes#soda#palette.replace = {'airline_a': ['#767676', '#ffff5f', 243, 227]} + +let g:airline#themes#soda#palette.visual = airline#themes#generate_color_map( + \['#767676', '#ffff5f', 243, 227], + \['#767676', '#ffd75f', 243, 221], + \['#767676', '#ffaf5f', 243, 215]) + +let g:airline#themes#soda#palette.inactive = airline#themes#generate_color_map( + \['#767676', '#ffffff', 243, 255], + \['#767676', '#ffffff', 243, 255], + \['#767676', '#ffffff', 243, 255]) + +let g:airline#themes#soda#palette.inactive_modified = {'airline_c': ['#ffffff', '#df0000', 255, 160]} + +let g:airline#themes#soda#palette.tabline = { + \'airline_tab': ['#ffffff', '#5f0087', 255, 54], + \'airline_tabsel': ['#ffffff', '#875faf', 255, 97], + \'airline_tabtype': ['#ffffff', '#00af00', 255, 34], + \'airline_tabfill': ['#767676', '#ffffff', 243, 255], + \'airline_tabmod': ['#ffffff', '#767676', 255, 243]} + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/sol.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/sol.vim new file mode 100644 index 0000000..89ea505 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/sol.vim @@ -0,0 +1,90 @@ +" vim-airline companion theme of Sol +" (https://github.com/Pychimp/vim-sol) + +let g:airline#themes#sol#palette = {} + +let g:airline#themes#sol#palette.accents = { + \ 'red': [ '#ffffff' , '' , 231 , '' , '' ], + \ } + +let s:N1 = [ '#343434' , '#a0a0a0' , 237 , 248 ] +let s:N2 = [ '#343434' , '#b3b3b3' , 237 , 250 ] +let s:N3 = [ '#343434' , '#c7c7c7' , 237 , 252 ] +let g:airline#themes#sol#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#sol#palette.normal_modified = { + \ 'airline_c': [ '#ffffff' , '#ff6868' , 237 , 209 , '' ] , + \ } + + +let s:I1 = [ '#eeeeee' , '#09643f' , 255 , 30 ] +let s:I2 = [ '#343434' , '#a3a3a3' , 237 , 249 ] +let s:I3 = [ '#343434' , '#b0b0b0' , 237 , 250 ] +let g:airline#themes#sol#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#sol#palette.insert_modified = { + \ 'airline_c': [ '#343434' , '#ffdbc7' , 237 , 216 , '' ] , + \ } +let g:airline#themes#sol#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#09643f' , s:I1[2] , 30 , '' ] , + \ } + + +let g:airline#themes#sol#palette.replace = copy(g:airline#themes#sol#palette.insert) +let g:airline#themes#sol#palette.replace.airline_a = [ s:I1[0] , '#ff2121' , s:I1[2] , 196 , '' ] +let g:airline#themes#sol#palette.replace.airline_z = [ s:I1[0] , '#ff2121' , s:I1[2] , 196 , '' ] +let g:airline#themes#sol#palette.replace_modified = g:airline#themes#sol#palette.insert_modified + +let s:V1 = [ '#ffff9a' , '#ff6003' , 222 , 202 ] +let s:V2 = [ '#343434' , '#a3a3a3' , 237 , 249 ] +let s:V3 = [ '#343434' , '#b0b0b0' , 237 , 250 ] +let g:airline#themes#sol#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#sol#palette.visual_modified = { + \ 'airline_c': [ '#343434' , '#ffdbc7' , 237 , 216 , '' ] , + \ } + +let s:IA = [ '#777777' , '#c7c7c7' , 244 , 251 , '' ] +let g:airline#themes#sol#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#sol#palette.inactive_modified = { + \ 'airline_c': [ '#ff3535' , '' , 203 , '' , '' ] , + \ } + +let g:airline#themes#sol#palette.tabline = { + \ 'airline_tab': ['#343434', '#b3b3b3', 237, 250, ''], + \ 'airline_tabsel': ['#ffffff', '#004b9a', 231, 31 , ''], + \ 'airline_tabtype': ['#343434', '#a0a0a0', 237, 248, ''], + \ 'airline_tabfill': ['#343434', '#c7c7c7', 237, 251, ''], + \ 'airline_tabmod': ['#343434', '#ffdbc7', 237, 216, ''], + \ } + +let s:WI = [ '#eeeeee', '#e33900', 255, 166 ] +let g:airline#themes#sol#palette.normal.airline_warning = [ + \ s:WI[0], s:WI[1], s:WI[2], s:WI[3] + \ ] + +let g:airline#themes#sol#palette.normal_modified.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.insert.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.insert_modified.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.visual.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.visual_modified.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.replace.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +let g:airline#themes#sol#palette.replace_modified.airline_warning = + \ g:airline#themes#sol#palette.normal.airline_warning + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#sol#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#343434' , '#c7c7c7' , 237 , 251 , '' ] , + \ [ '#343434' , '#b3b3b3' , 237 , 250 , '' ] , + \ [ '#eeeeee' , '#007fff' , 255 , 27 , '' ] ) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/solarized.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/solarized.vim new file mode 100644 index 0000000..4f47265 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/solarized.vim @@ -0,0 +1,234 @@ +let g:airline#themes#solarized#palette = {} + +function! airline#themes#solarized#refresh() + """""""""""""""""""""""""""""""""""""""""""""""" + " Options + """""""""""""""""""""""""""""""""""""""""""""""" + let s:background = get(g:, 'airline_solarized_bg', &background) + let s:ansi_colors = get(g:, 'solarized_termcolors', 16) != 256 && &t_Co >= 16 ? 1 : 0 + let s:use_green = get(g:, 'airline_solarized_normal_green', 0) + let s:dark_inactive_tab = get(g:, 'airline_solarized_dark_inactive_background', 0) + let s:dark_text = get(g:, 'airline_solarized_dark_text', 0) + let s:dark_inactive_border = get(g:, 'airline_solarized_dark_inactive_border', 0) + let s:enable_command_color = get(g:, 'airline_solarized_enable_command_color', 0) + let s:tty = &t_Co == 8 + + """""""""""""""""""""""""""""""""""""""""""""""" + " Colors + """""""""""""""""""""""""""""""""""""""""""""""" + " Base colors + " Extended base16 support by @cuviper. + " Via https://github.com/blueyed/vim-colors-solarized/commit/92f2f994 / + " https://github.com/cuviper/vim-colors-solarized. + if s:ansi_colors && get(g:, 'solarized_base16', 0) + let s:base03 = {'t': 0, 'g': "#002b36"} " Base 00 + let s:base02 = {'t': 18, 'g': "#073642"} " Base 01 + let s:base01 = {'t': 19, 'g': "#586e75"} " Base 02 + let s:base00 = {'t': 8, 'g': "#657b83"} " Base 03 + let s:base0 = {'t': 20, 'g': "#839496"} " Base 04 + let s:base1 = {'t': 7, 'g': "#93a1a1"} " Base 05 + let s:base2 = {'t': 21, 'g': "#eee8d5"} " Base 06 + let s:base3 = {'t': 15, 'g': "#fdf6e3"} " Base 07 + let s:yellow = {'t': 3, 'g': "#dc322f"} " Base 0A + let s:orange = {'t': 16, 'g': "#cb4b16"} " Base 09 + let s:red = {'t': 1, 'g': "#b58900"} " Base 08 + let s:magenta = {'t': 17, 'g': "#859900"} " Base 0F + let s:violet = {'t': 5, 'g': "#2aa198"} " Base 0E + let s:blue = {'t': 4, 'g': "#268bd2"} " Base 0D + let s:cyan = {'t': 6, 'g': "#6c71c4"} " Base 0C + let s:green = {'t': 2, 'g': "#d33682"} " Base 0B + else + let s:base03 = {'t': s:ansi_colors ? 8 : (s:tty ? '0' : 234), 'g': '#002b36'} + let s:base02 = {'t': s:ansi_colors ? '0' : (s:tty ? '0' : 235), 'g': '#073642'} + let s:base01 = {'t': s:ansi_colors ? 10 : (s:tty ? '0' : 240), 'g': '#586e75'} + let s:base00 = {'t': s:ansi_colors ? 11 : (s:tty ? '7' : 241), 'g': '#657b83'} + let s:base0 = {'t': s:ansi_colors ? 12 : (s:tty ? '7' : 244), 'g': '#839496'} + let s:base1 = {'t': s:ansi_colors ? 14 : (s:tty ? '7' : 245), 'g': '#93a1a1'} + let s:base2 = {'t': s:ansi_colors ? 7 : (s:tty ? '7' : 254), 'g': '#eee8d5'} + let s:base3 = {'t': s:ansi_colors ? 15 : (s:tty ? '7' : 230), 'g': '#fdf6e3'} + let s:yellow = {'t': s:ansi_colors ? 3 : (s:tty ? '3' : 136), 'g': '#b58900'} + let s:orange = {'t': s:ansi_colors ? 9 : (s:tty ? '1' : 166), 'g': '#cb4b16'} + let s:red = {'t': s:ansi_colors ? 1 : (s:tty ? '1' : 160), 'g': '#dc322f'} + let s:magenta = {'t': s:ansi_colors ? 5 : (s:tty ? '5' : 125), 'g': '#d33682'} + let s:violet = {'t': s:ansi_colors ? 13 : (s:tty ? '5' : 61 ), 'g': '#6c71c4'} + let s:blue = {'t': s:ansi_colors ? 4 : (s:tty ? '4' : 33 ), 'g': '#268bd2'} + let s:cyan = {'t': s:ansi_colors ? 6 : (s:tty ? '6' : 37 ), 'g': '#2aa198'} + let s:green = {'t': s:ansi_colors ? 2 : (s:tty ? '2' : 64 ), 'g': '#859900'} + endif + + """""""""""""""""""""""""""""""""""""""""""""""" + " Simple mappings + " NOTE: These are easily tweakable mappings. The actual mappings get + " the specific gui and terminal colors from the base color dicts. + """""""""""""""""""""""""""""""""""""""""""""""" + " Normal mode + if s:background == 'dark' + let s:N1 = [(s:dark_text ? s:base03 : s:base3), (s:use_green ? s:green : s:base1), 'bold'] + let s:N2 = [s:base2, (s:tty ? s:base01 : s:base00), ''] + let s:N3 = [s:base01, s:base02, ''] + else + let s:N1 = [(s:dark_text ? s:base03 : s:base2), (s:use_green ? s:green : s:base00), 'bold'] + let s:N2 = [(s:tty ? s:base01 : s:base2), s:base1, ''] + let s:N3 = [s:base1, s:base2, ''] + endif + let s:NF = [s:orange, s:N3[1], ''] + let s:NW = [s:base3, s:orange, ''] + if s:background == 'dark' + let s:NM = [s:base1, s:N3[1], ''] + let s:NMi = [s:base2, s:N3[1], ''] + else + let s:NM = [s:base01, s:N3[1], ''] + let s:NMi = [s:base02, s:N3[1], ''] + endif + + " Insert mode + let s:I1 = [s:N1[0], s:yellow, 'bold'] + let s:I2 = s:N2 + let s:I3 = s:N3 + let s:IF = s:NF + let s:IM = s:NM + + " Visual mode + let s:V1 = [s:N1[0], s:magenta, 'bold'] + let s:V2 = s:N2 + let s:V3 = s:N3 + let s:VF = s:NF + let s:VM = s:NM + + " Replace mode + let s:R1 = [s:N1[0], s:red, ''] + let s:R2 = s:N2 + let s:R3 = s:N3 + let s:RM = s:NM + let s:RF = s:NF + + " Command mode + let s:C1 = [s:N1[0], s:violet, ''] + let s:C2 = s:N2 + let s:C3 = s:N3 + let s:CF = s:NF + let s:CM = s:NM + + " Inactive, according to VertSplit in solarized + " (bg dark: base00; bg light: base0) + if s:background == 'dark' + if s:dark_inactive_border + let s:IA = [s:base01, s:base02, ''] + else + let s:IA = [s:base02, s:base00, ''] + endif + else + let s:IA = [s:base2, s:base0, ''] + endif + + """""""""""""""""""""""""""""""""""""""""""""""" + " Actual mappings + " WARNING: Don't modify this section unless necessary. + """""""""""""""""""""""""""""""""""""""""""""""" + let s:NFa = [s:NF[0].g, s:NF[1].g, s:NF[0].t, s:NF[1].t, s:NF[2]] + let s:IFa = [s:IF[0].g, s:IF[1].g, s:IF[0].t, s:IF[1].t, s:IF[2]] + let s:VFa = [s:VF[0].g, s:VF[1].g, s:VF[0].t, s:VF[1].t, s:VF[2]] + let s:RFa = [s:RF[0].g, s:RF[1].g, s:RF[0].t, s:RF[1].t, s:RF[2]] + + let g:airline#themes#solarized#palette.accents = { + \ 'red': s:NFa, + \ } + + let g:airline#themes#solarized#palette.inactive = airline#themes#generate_color_map( + \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]], + \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]], + \ [s:IA[0].g, s:IA[1].g, s:IA[0].t, s:IA[1].t, s:IA[2]]) + let g:airline#themes#solarized#palette.inactive_modified = { + \ 'airline_c': [s:NMi[0].g, '', s:NMi[0].t, '', s:NMi[2]]} + + let g:airline#themes#solarized#palette.normal = airline#themes#generate_color_map( + \ [s:N1[0].g, s:N1[1].g, s:N1[0].t, s:N1[1].t, s:N1[2]], + \ [s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]], + \ [s:N3[0].g, s:N3[1].g, s:N3[0].t, s:N3[1].t, s:N3[2]]) + + let g:airline#themes#solarized#palette.normal.airline_warning = [ + \ s:NW[0].g, s:NW[1].g, s:NW[0].t, s:NW[1].t, s:NW[2]] + + let g:airline#themes#solarized#palette.normal.airline_error = [ + \ s:NW[0].g, s:NW[1].g, s:NW[0].t, s:NW[1].t, s:NW[2]] + + let g:airline#themes#solarized#palette.normal_modified = { + \ 'airline_c': [s:NM[0].g, s:NM[1].g, + \ s:NM[0].t, s:NM[1].t, s:NM[2]]} + + let g:airline#themes#solarized#palette.normal_modified.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.insert = airline#themes#generate_color_map( + \ [s:I1[0].g, s:I1[1].g, s:I1[0].t, s:I1[1].t, s:I1[2]], + \ [s:I2[0].g, s:I2[1].g, s:I2[0].t, s:I2[1].t, s:I2[2]], + \ [s:I3[0].g, s:I3[1].g, s:I3[0].t, s:I3[1].t, s:I3[2]]) + + let g:airline#themes#solarized#palette.insert.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.insert_modified = { + \ 'airline_c': [s:IM[0].g, s:IM[1].g, + \ s:IM[0].t, s:IM[1].t, s:IM[2]]} + + let g:airline#themes#solarized#palette.insert_modified.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.visual = airline#themes#generate_color_map( + \ [s:V1[0].g, s:V1[1].g, s:V1[0].t, s:V1[1].t, s:V1[2]], + \ [s:V2[0].g, s:V2[1].g, s:V2[0].t, s:V2[1].t, s:V2[2]], + \ [s:V3[0].g, s:V3[1].g, s:V3[0].t, s:V3[1].t, s:V3[2]]) + + let g:airline#themes#solarized#palette.visual.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.visual_modified = { + \ 'airline_c': [s:VM[0].g, s:VM[1].g, + \ s:VM[0].t, s:VM[1].t, s:VM[2]]} + + let g:airline#themes#solarized#palette.visual_modified.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.replace = airline#themes#generate_color_map( + \ [s:R1[0].g, s:R1[1].g, s:R1[0].t, s:R1[1].t, s:R1[2]], + \ [s:R2[0].g, s:R2[1].g, s:R2[0].t, s:R2[1].t, s:R2[2]], + \ [s:R3[0].g, s:R3[1].g, s:R3[0].t, s:R3[1].t, s:R3[2]]) + + let g:airline#themes#solarized#palette.replace.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.replace_modified = { + \ 'airline_c': [s:RM[0].g, s:RM[1].g, + \ s:RM[0].t, s:RM[1].t, s:RM[2]]} + + let g:airline#themes#solarized#palette.replace_modified.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.replace_modified.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + if s:enable_command_color + let g:airline#themes#solarized#palette.commandline = airline#themes#generate_color_map( + \ [s:C1[0].g, s:C1[1].g, s:C1[0].t, s:C1[1].t, s:C1[2]], + \ [s:C2[0].g, s:C2[1].g, s:C2[0].t, s:C2[1].t, s:C2[2]], + \ [s:C3[0].g, s:C3[1].g, s:C3[0].t, s:C3[1].t, s:C3[2]]) + + let g:airline#themes#solarized#palette.commandline.airline_warning = + \ g:airline#themes#solarized#palette.normal.airline_warning + + let g:airline#themes#solarized#palette.commandline_modified = { + \ 'airline_c': [s:RM[0].g, s:RM[1].g, + \ s:RM[0].t, s:RM[1].t, s:RM[2]]} + endif + + let g:airline#themes#solarized#palette.tabline = {} + + let g:airline#themes#solarized#palette.tabline.airline_tab = [ + \ s:I2[0].g, s:I2[1].g, s:I2[0].t, (s:dark_inactive_tab ? s:I3[0].t : s:I2[1].t), s:I2[2]] + + let g:airline#themes#solarized#palette.tabline.airline_tabtype = [ + \ s:N2[0].g, s:N2[1].g, s:N2[0].t, s:N2[1].t, s:N2[2]] +endfunction + +call airline#themes#solarized#refresh() + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/solarized_flood.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/solarized_flood.vim new file mode 100644 index 0000000..cefe469 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/solarized_flood.vim @@ -0,0 +1,174 @@ +" Name: Solarized Flood +" Changed: June 3 2018 +" Maintainer: https://github.com/Neur1n +" Description: +" A vim-airline theme made based on and tested with the Solarized colorscheme +" (https://github.com/frankier/neovim-colors-solarized-truecolor-only) in +" Windows 10 OS and GVim 8.1. +" +" This script is based on the 'dark' theme. The 'inactive' and 'ctrlp' parts +" were not changed. +" +" It is call 'flood' since the statusline and the tabline will be highlighted +" with the 'base03' color in Solarized (dark). If you use the dark Solarized +" colorscheme for Vim and, in Windows, set 'Personalization-Colors-Choose +" your color - Custom color' to be '#002B36' (*), then most parts of the GVim +" window will be 'flooded' with the color. +" NOTE: This will make some components of the airline less distinguishable +" from the others. If anyone has better ideas, I will be happy to take +" a conversation with you. :) + +" (*): Your PC may not support the exact color but it will pick the nearest +" color for you and it should work fine. + + +scriptencoding utf-8 + +" The following color definitions: +" 'hex': originated from official solarized (dark) colors +" 'term': calculated by 'x256' package of Python +" '*': 'term' value that is different with solarized official definition +" '#': picked manually +let s:base03 = {'hex': '#002B36', 'term': 234} " 0, 43, 54 +let s:base02 = {'hex': '#073642', 'term': 235} " 7, 54, 66 +let s:base01 = {'hex': '#586E75', 'term': 242} " 88, 110, 117 * +let s:base00 = {'hex': '#657B83', 'term': 66} " 101, 123, 131 * + +let s:base0 = {'hex': '#839496', 'term': 246} " 131, 148, 150 * +let s:base1 = {'hex': '#93A1A1', 'term': 247} " 147, 161, 161 * +let s:base2 = {'hex': '#EEE8D5', 'term': 254} " 238, 232, 213 +let s:base3 = {'hex': '#FDF6E3', 'term': 230} " 253, 246, 227 + +let s:yellow = {'hex': '#B58900', 'term': 136} " 181, 137, 0 +let s:orange = {'hex': '#CB4B16', 'term': 166} " 203, 75, 22 +let s:red = {'hex': '#DC322F', 'term': 160} " 220, 50, 47 * +let s:magenta = {'hex': '#D33682', 'term': 168} " 211, 54, 130 * +let s:violet = {'hex': '#6C71C4', 'term': 62} " 108, 113, 196 * +let s:blue = {'hex': '#268BD2', 'term': 32} " 38, 139, 210 * +let s:cyan = {'hex': '#2AA198', 'term': 36} " 42, 161, 152 * +let s:green = {'hex': '#859900', 'term': 106} " 133, 153, 0 # + +let g:airline#themes#solarized_flood#palette = {} + + +" ***************************************************************************** +" Normal Mode +" ***************************************************************************** +let s:airline_a_normal = [s:base03['hex'], s:green['hex'], + \ s:base03['term'], s:green['term'], 'italic'] + +let s:airline_b_normal = [s:base1['hex'], s:base03['hex'], + \ s:base1['term'], s:base03['term'], 'italic'] + +let s:airline_c_normal = [s:cyan['hex'], s:base03['hex'], + \ s:cyan['term'], s:base03['term'], 'italic'] + +let g:airline#themes#solarized_flood#palette.normal = + \ airline#themes#generate_color_map(s:airline_a_normal, + \ s:airline_b_normal, + \ s:airline_c_normal) + +let g:airline#themes#solarized_flood#palette.normal['airline_z'] = + \ [s:green['hex'], s:base03['hex'], s:green['term'], s:base03['term'], + \ 'italic'] + +let g:airline#themes#solarized_flood#palette.normal_modified = { + \ 'airline_c': [s:magenta['hex'], s:base03['hex'], + \ s:magenta['term'], s:base03['term'], 'italic'], + \ } + +" ***************************************************************************** +" Insert Mode +" ***************************************************************************** +let s:airline_a_insert = [s:base03['hex'] , s:cyan['hex'], + \ s:base03['term'], s:cyan['term'], 'bold'] + +let s:airline_b_insert = [s:base1['hex'], s:base03['hex'], + \ s:base1['term'], s:base03['term'], 'bold'] + +let s:airline_c_insert = [s:blue['hex'], s:base03['hex'], + \ s:blue['term'], s:base03['term'], 'bold'] + +let g:airline#themes#solarized_flood#palette.insert = + \ airline#themes#generate_color_map(s:airline_a_insert, + \ s:airline_b_insert, + \ s:airline_c_insert) + +let g:airline#themes#solarized_flood#palette.insert['airline_z'] = + \ [s:cyan['hex'], s:base03['hex'], s:cyan['term'], s:base03['term'], + \ 'bold'] + +let g:airline#themes#solarized_flood#palette.insert_modified = { + \ 'airline_c': [s:magenta['hex'], s:base03['hex'], + \ s:magenta['term'], s:base03['term'], 'bold'], + \ } + +let g:airline#themes#solarized_flood#palette.insert_paste = { + \ 'airline_a': [s:base03['hex'], s:orange['hex'], + \ s:base03['term'], s:orange['term'], 'bold'], + \ } + +" ***************************************************************************** +" Replace Mode +" ***************************************************************************** +let g:airline#themes#solarized_flood#palette.replace = + \ copy(g:airline#themes#solarized_flood#palette.insert) + +let g:airline#themes#solarized_flood#palette.replace.airline_a = + \ [s:base03['hex'], s:red['hex'], s:base03['term'], s:red['term'], 'bold'] + +let g:airline#themes#solarized_flood#palette.replace_modified = + \ g:airline#themes#solarized_flood#palette.insert_modified + +" ***************************************************************************** +" Visual Mode +" ***************************************************************************** +let s:airline_a_visual = [s:base03['hex'], s:yellow['hex'], + \ s:base03['term'], s:yellow['term'], 'italic'] + +let s:airline_b_visual = [s:base1['hex'], s:base03['hex'], + \ s:base1['term'], s:base03['term'], 'italic'] + +let s:airline_c_visual = [s:red['hex'], s:base03['hex'], + \ s:red['term'], s:base03['term'], 'italic'] + +let g:airline#themes#solarized_flood#palette.visual = + \ airline#themes#generate_color_map(s:airline_a_visual, + \ s:airline_b_visual, + \ s:airline_c_visual) + +let g:airline#themes#solarized_flood#palette.visual['airline_z'] = + \ [s:yellow['hex'], s:base03['hex'], s:yellow['term'], s:base03['term'], + \ 'italic'] + +let g:airline#themes#solarized_flood#palette.visual_modified = { + \ 'airline_c': [s:magenta['hex'], s:base03['hex'], + \ s:magenta['term'], s:base03['term'], 'italic'], + \ } + +" ***************************************************************************** +" Inactive Mode +" ***************************************************************************** +let s:airline_a_inactive = ['#4e4e4e', '#1c1c1c', 239, 234, ''] +let s:airline_b_inactive = ['#4e4e4e', '#262626', 239, 235, ''] +let s:airline_c_inactive = ['#4e4e4e', '#303030', 239, 236, ''] +let g:airline#themes#solarized_flood#palette.inactive = + \ airline#themes#generate_color_map(s:airline_a_inactive, + \ s:airline_b_inactive, + \ s:airline_c_inactive) +let g:airline#themes#solarized_flood#palette.inactive_modified = { + \ 'airline_c': ['#875faf', '', 97, '', ''] , + \ } + + +let g:airline#themes#solarized_flood#palette.accents = { + \ 'red': [s:red['hex'], '', s:red['term'], ''] + \ } + + +if get(g:, 'loaded_ctrlp', 0) + let g:airline#themes#solarized_flood#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#d7d7ff', '#5f00af', 189, 55 , '' ], + \ [ '#ffffff', '#875fd7', 231, 98 , '' ], + \ [ '#5f00af', '#ffffff', 55 , 231, 'bold']) +endif diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/term.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/term.vim new file mode 100644 index 0000000..9845a44 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/term.vim @@ -0,0 +1,92 @@ + +" vim-airline 'term' theme +" it is using current terminal colorscheme +" and in gvim i left colors from 'wombat' theme but i am not using it anyway + +" Normal mode +" [ guifg, guibg, ctermfg, ctermbg, opts ] +let s:N1 = [ '#141413' , '#CAE682' , 232 , 2 ] " mode +let s:N2 = [ '#CAE682' , '#32322F' , 2 , 'black' ] " info +let s:N3 = [ '#CAE682' , '#242424' , 2 , 233 ] " statusline +let s:N4 = [ '#86CD74' , 10 ] " mode modified + +" Insert mode +let s:I1 = [ '#141413' , '#FDE76E' , 232 , 3 ] +let s:I2 = [ '#FDE76E' , '#32322F' , 3 , 'black' ] +let s:I3 = [ '#FDE76E' , '#242424' , 3 , 233 ] +let s:I4 = [ '#FADE3E' , 11 ] + +" Visual mode +let s:V1 = [ '#141413' , '#B5D3F3' , 232 , 4 ] +let s:V2 = [ '#B5D3F3' , '#32322F' , 4 , 'black' ] +let s:V3 = [ '#B5D3F3' , '#242424' , 4 , 233 ] +let s:V4 = [ '#7CB0E6' , 12 ] + +" Replace mode +let s:R1 = [ '#141413' , '#E5786D' , 232 , 1 ] +let s:R2 = [ '#E5786D' , '#32322F' , 1 , 'black' ] +let s:R3 = [ '#E5786D' , '#242424' , 1 , 233 ] +let s:R4 = [ '#E55345' , 9 ] + +" Paste mode +let s:PA = [ '#94E42C' , 6 ] + +" Info modified +let s:IM = [ '#40403C' , 7 ] + +" Inactive mode +let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ] + +let g:airline#themes#term#palette = {} + +let g:airline#themes#term#palette.accents = { + \ 'red': [ '#E5786D' , '' , 203 , '' , '' ], + \ } + +let g:airline#themes#term#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#term#palette.normal_modified = { + \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , + \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#term#palette.insert_modified = { + \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , + \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#term#palette.visual_modified = { + \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , + \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#term#palette.replace_modified = { + \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , + \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , + \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#term#palette.inactive_modified = { + \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } + + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#term#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#DADADA' , '#242424' , 253 , 234 , '' ] , + \ [ '#DADADA' , '#40403C' , 253 , 238 , '' ] , + \ [ '#141413' , '#DADADA' , 232 , 253 , 'bold' ] ) + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/term_light.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/term_light.vim new file mode 100644 index 0000000..c4c3100 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/term_light.vim @@ -0,0 +1,92 @@ + +" vim-airline 'term_light' theme +" it is using current terminal colorscheme +" and in gvim i left colors from 'wombat' theme but i am not using it anyway + +" Normal mode +" [ guifg, guibg, ctermfg, ctermbg, opts ] +let s:N1 = [ '#f0f0f0' , '#86CD74' , 15, 2 ] " mode +let s:N2 = [ '#86CD74' , '#deded9' , 2, 8 ] " info +let s:N3 = [ '#86CD74' , '#888a85' , 2, 15 ] " statusline +let s:N4 = [ '#CAE682' , '#141413' , 10, 0 ] " mode modified + +" Insert mode +let s:I1 = [ '#f0f0f0' , '#FADE3E' , 15, 3 ] +let s:I2 = [ '#FADE3E' , '#deded9' , 3, 8 ] +let s:I3 = [ '#FADE3E' , '#888a85' , 3, 15 ] +let s:I4 = [ '#FDE76E' , '#141413' , 11, 0 ] + +" Visual mode +let s:V1 = [ '#f0f0f0' , '#7CB0E6' , 15, 4 ] +let s:V2 = [ '#7CB0E6' , '#deded9' , 4, 8 ] +let s:V3 = [ '#7CB0E6' , '#888a85' , 4, 15 ] +let s:V4 = [ '#B5D3F3' , '#141413' , 12, 0 ] + +" Replace mode +let s:R1 = [ '#f0f0f0' , '#E55345' , 15, 1 ] +let s:R2 = [ '#E55345' , '#deded9' , 1, 8 ] +let s:R3 = [ '#E55345' , '#888a85' , 1, 15 ] +let s:R4 = [ '#E5786D' , '#141413' , 9, 0 ] + +" Paste mode +let s:PA = [ '#94E42C' , 6 ] + +" Info modified +let s:IM = [ '#40403C' , 7 ] + +" Inactive mode +let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ] + +let g:airline#themes#term_light#palette = {} + +let g:airline#themes#term_light#palette.accents = { + \ 'red': [ '#E5786D' , '' , 203 , '' , '' ], + \ } + +let g:airline#themes#term_light#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#term_light#palette.normal_modified = { + \ 'airline_a': [ s:N4[1] , s:N4[0] , s:N4[3] , s:N4[2] , '' ] , + \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[2] , s:IM[1] , '' ] , + \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[2] , s:N3[3] , '' ] } + + +let g:airline#themes#term_light#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#term_light#palette.insert_modified = { + \ 'airline_a': [ s:I4[1] , s:I4[0] , s:I4[3] , s:I4[2] , '' ] , + \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[2] , s:IM[1] , '' ] , + \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[2] , s:N3[3] , '' ] } + + +let g:airline#themes#term_light#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#term_light#palette.visual_modified = { + \ 'airline_a': [ s:V4[1] , s:V4[0] , s:V4[3] , s:V4[2] , '' ] , + \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[2] , s:IM[1] , '' ] , + \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[2] , s:N3[3] , '' ] } + + +let g:airline#themes#term_light#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#term_light#palette.replace_modified = { + \ 'airline_a': [ s:R4[1] , s:R4[0] , s:R4[3] , s:R4[2] , '' ] , + \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[2] , s:IM[1] , '' ] , + \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[2] , s:N3[3] , '' ] } + + +let g:airline#themes#term_light#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , + \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } + + +let g:airline#themes#term_light#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#term_light#palette.inactive_modified = { + \ 'airline_c': [ s:N4[0] , '' , s:N4[2] , '' , '' ] } + + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#term_light#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#DADADA' , '#242424' , 253 , 234 , '' ] , + \ [ '#DADADA' , '#40403C' , 253 , 238 , '' ] , + \ [ '#141413' , '#DADADA' , 232 , 253 , 'bold' ] ) + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/tomorrow.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/tomorrow.vim new file mode 100644 index 0000000..f382fc1 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/tomorrow.vim @@ -0,0 +1,44 @@ +let g:airline#themes#tomorrow#palette = {} + +function! airline#themes#tomorrow#refresh() + let g:airline#themes#tomorrow#palette.accents = { + \ 'red': airline#themes#get_highlight('Constant'), + \ } + + let s:N1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Directory', 'fg'], 'bold') + let s:N2 = airline#themes#get_highlight('Pmenu') + let s:N3 = airline#themes#get_highlight('CursorLine') + let g:airline#themes#tomorrow#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + + let group = airline#themes#get_highlight('vimCommand') + let g:airline#themes#tomorrow#palette.normal_modified = { + \ 'airline_c': [ group[0], '', group[2], '', '' ] + \ } + + let s:I1 = airline#themes#get_highlight2(['Normal', 'bg'], ['MoreMsg', 'fg'], 'bold') + let s:I2 = airline#themes#get_highlight2(['MoreMsg', 'fg'], ['Normal', 'bg']) + let s:I3 = s:N3 + let g:airline#themes#tomorrow#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#tomorrow#palette.insert_modified = g:airline#themes#tomorrow#palette.normal_modified + + let s:R1 = airline#themes#get_highlight('Error', 'bold') + let s:R2 = s:N2 + let s:R3 = s:N3 + let g:airline#themes#tomorrow#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#tomorrow#palette.replace_modified = g:airline#themes#tomorrow#palette.normal_modified + + let s:V1 = airline#themes#get_highlight2(['Normal', 'bg'], ['Constant', 'fg'], 'bold') + let s:V2 = airline#themes#get_highlight2(['Constant', 'fg'], ['Normal', 'bg']) + let s:V3 = s:N3 + let g:airline#themes#tomorrow#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#tomorrow#palette.visual_modified = g:airline#themes#tomorrow#palette.normal_modified + + let s:IA = airline#themes#get_highlight2(['NonText', 'fg'], ['CursorLine', 'bg']) + let g:airline#themes#tomorrow#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#tomorrow#palette.inactive_modified = { + \ 'airline_c': [ group[0], '', group[2], '', '' ] + \ } +endfunction + +call airline#themes#tomorrow#refresh() + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ubaryd.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ubaryd.vim new file mode 100644 index 0000000..9ee9ed0 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/ubaryd.vim @@ -0,0 +1,87 @@ +" vim-airline companion theme of Ubaryd +" (https://github.com/Donearm/Ubaryd) +" +" Author: Gianluca fiore +" Version: 1.12 +" License: MIT + +" Normal mode +" +let s:N1 = [ '#005f00' , '#f8f6f2','22','15'] +let s:N2 = [ '#f8f6f2' , '#005f00','15','22'] +let s:N3 = [ '#b88853' , '#242321' , 137, 235 ] +let s:N4 = [ '#005f00' , 22 ] + +" Insert mode +let s:I1 = [ '#f8f6f2', '#e25a74','15','161'] +let s:I2 = [ '#242321', '#c14c3d','235','160'] +let s:I3 = [ '#f4cf86' , '#242321' , 222 , 235 ] +let s:I4 = [ '#f4cf86' , 222 ] + +" Visual mode +let s:V1 = [ '#416389', '#f8f6f2','18','15'] +let s:V2 = [ '#416389', '#f4cf86','18','222'] +let s:V3 = [ '#9a4820' , '#f8f6f2','88','15'] +let s:V4 = [ '#9a4820' , 88 ] + +" Replace mode +let s:R1 = [ '#242321' , '#f8f6f2','235','15'] +let s:R2 = [ '#ffa724' , '#666462','214','241'] +let s:R3 = [ '#f8f6f2' , '#ff7400','15','215'] +let s:R4 = [ '#ffa724' , 214 ] + +" Paste mode +let s:PA = [ '#f9ef6d' , 154 ] + +" Info modified +let s:IM = [ '#242321' , 235 ] + +" Inactive mode +let s:IA = [ s:N2[1], s:N3[1], s:N2[3], s:N3[3], '' ] + +let g:airline#themes#ubaryd#palette = {} + +let g:airline#themes#ubaryd#palette.accents = { + \ 'red': [ '#ff7400' , '' , 202 , '' , '' ], + \ } + +let g:airline#themes#ubaryd#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#ubaryd#palette.normal_modified = { + \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , + \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#ubaryd#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#ubaryd#palette.insert_modified = { + \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , + \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#ubaryd#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#ubaryd#palette.visual_modified = { + \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , + \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#ubaryd#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#ubaryd#palette.replace_modified = { + \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , + \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#ubaryd#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , + \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } + + +let g:airline#themes#ubaryd#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#ubaryd#palette.inactive_modified = { + \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } + + + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/understated.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/understated.vim new file mode 100644 index 0000000..b3e7917 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/understated.vim @@ -0,0 +1,43 @@ +let g:airline#themes#understated#palette = {} + +let s:N1 = ['#FFFFFF', '#5F87FF', 15, 69] " Outside blocks in normal mode (mode and file position) +let s:N2 = ['#AFAF87', '#5F5F5F', 144, 59] " Next blocks inside (branch and file format) +let s:N3 = ['#AFAF87', '#5F5F5F', 144, 59] " The middle block + +let g:airline#themes#understated#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#understated#palette.normal_modified = {'airline_c': ['#ffffff', '#5f005f', 144, 59, 'bold'] ,} + +let s:I1 = ['#FFFFFF', '#87AF5F', 15, 107] " Outside blocks in normal mode (mode and file position) +let s:I2 = ['#AFAF87', '#5F5F5F', 144, 59] " Next blocks inside (branch and file format) +let s:I3 = ['#AFAF87', '#5F5F5F', 144, 59] " The middle block +let g:airline#themes#understated#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#understated#palette.insert_modified = {'airline_c': ['#AFAF87', '#5F5F5F', 144, 59, 'bold'] ,} +let g:airline#themes#understated#palette.insert_paste = {'airline_c': ['#AFAF87', '#5F5F5F', 144, 59, ''] ,} + +let g:airline#themes#understated#palette.replace = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#understated#palette.replace.airline_a = ['#FFFFFF', '#870000', 15, 88, ''] +let g:airline#themes#understated#palette.replace_modified = {'airline_c': ['#AFAF87', '#5F5F5F', 144, 59, 'bold'] ,} + +let s:V1 = ['#FFFFFF', '#AF5F00', 15, 130] +let s:V2 = ['#AFAF87', '#5F5F5F', 144, 59] +let s:V3 = ['#AFAF87', '#5F5F5F', 144, 59] +let g:airline#themes#understated#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#understated#palette.visual_modified = {'airline_c': [ '#AFAF87', '#5f005f', 144, 59, 'bold'] ,} + +let s:V1 = ['#080808', '#FFAF00', 232, 214] +let s:IA1 = ['#4E4E4E', '#1C1C1C', 239, 234, ''] +let s:IA2 = ['#4E4E4E', '#1C1C1C', 239, 234, ''] +let s:IA3 = ['#4E4E4E', '#1C1C1C', 239, 234, ''] +let g:airline#themes#understated#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#understated#palette.inactive_modified = {'airline_c': ['#4E4E4E', '', 239, '', 'bold'] ,} + +let g:airline#themes#understated#palette.accents = {'red': ['#FF0000', '', 88, '']} + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#understated#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ ['#FFFFFF', '#1C1C1C', 15, 234, '' ], + \ ['#FFFFFF', '#262626', 15, 235, '' ], + \ ['#FFFFFF', '#303030', 15, 236, 'bold']) + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/violet.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/violet.vim new file mode 100644 index 0000000..94199a0 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/violet.vim @@ -0,0 +1,32 @@ +" Normal mode " guifg guibg ctermfg ctermbg +let s:N1 = [ '#bcbcbc' , '#875faf' , 250 , 97 ] +let s:N2 = [ '#d75fd7' , '#4e4e4e' , 170 , 239 ] +let s:N3 = [ '#c6c6c6' , '#3a3a3a' , 251 , 237 ] + +" Insert mode +let s:I1 = [ '#CACFD2' , '#009966' , 253 , 35 ] +let s:I2 = [ '#d75fd7' , '#4e4e4e' , 170 , 239 ] +let s:I3 = [ '#c6c6c6' , '#3a3a3a' , 251 , 237 ] + +" Visual mode +let s:V1 = [ '#5f0000' , '#ff5faf' , 52 , 205 ] + +" Replace mode +let s:RE = [ '#c6c6c6' , '#ce537a' , 251, 168 ] + +let g:airline#themes#violet#palette = {} + +let g:airline#themes#violet#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + +let g:airline#themes#violet#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#violet#palette.insert_replace = { + \ 'airline_a': [ s:RE[0] , s:I1[1] , s:RE[1] , s:I1[3] , '' ] } + +let g:airline#themes#violet#palette.visual = { + \ 'airline_a': [ s:V1[0] , s:V1[1] , s:V1[2] , s:V1[3] , '' ] } + +let g:airline#themes#violet#palette.replace = copy(g:airline#themes#violet#palette.normal) +let g:airline#themes#violet#palette.replace.airline_a = [ s:RE[0] , s:RE[1] , s:RE[2] , s:RE[3] , '' ] + +let s:IA = [ s:N1[1] , s:N3[1] , s:N1[3] , s:N3[3] , '' ] +let g:airline#themes#violet#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/wombat.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/wombat.vim new file mode 100644 index 0000000..622683f --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/wombat.vim @@ -0,0 +1,90 @@ +" vim-airline companion theme of Wombat +" looks great with wombat256 vim colorscheme + +" Normal mode +" [ guifg, guibg, ctermfg, ctermbg, opts ] +let s:N1 = [ '#141413' , '#CAE682' , 232 , 192 ] " mode +let s:N2 = [ '#CAE682' , '#32322F' , 192 , 238 ] " info +let s:N3 = [ '#CAE682' , '#242424' , 192 , 235 ] " statusline +let s:N4 = [ '#86CD74' , 113 ] " mode modified + +" Insert mode +let s:I1 = [ '#141413' , '#FDE76E' , 232 , 227 ] +let s:I2 = [ '#FDE76E' , '#32322F' , 227 , 238 ] +let s:I3 = [ '#FDE76E' , '#242424' , 227 , 235 ] +let s:I4 = [ '#FADE3E' , 221 ] + +" Visual mode +let s:V1 = [ '#141413' , '#B5D3F3' , 232 , 153 ] +let s:V2 = [ '#B5D3F3' , '#32322F' , 153 , 238 ] +let s:V3 = [ '#B5D3F3' , '#242424' , 153 , 235 ] +let s:V4 = [ '#7CB0E6' , 111 ] + +" Replace mode +let s:R1 = [ '#141413' , '#E5786D' , 232 , 173 ] +let s:R2 = [ '#E5786D' , '#32322F' , 173 , 238 ] +let s:R3 = [ '#E5786D' , '#242424' , 173 , 235 ] +let s:R4 = [ '#E55345' , 203 ] + +" Paste mode +let s:PA = [ '#94E42C' , 47 ] + +" Info modified +let s:IM = [ '#40403C' , 238 ] + +" Inactive mode +let s:IA = [ '#767676' , s:N3[1] , 243 , s:N3[3] , '' ] + +let g:airline#themes#wombat#palette = {} + +let g:airline#themes#wombat#palette.accents = { + \ 'red': [ '#E5786D' , '' , 203 , '' , '' ], + \ } + +let g:airline#themes#wombat#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#wombat#palette.normal_modified = { + \ 'airline_a': [ s:N1[0] , s:N4[0] , s:N1[2] , s:N4[1] , '' ] , + \ 'airline_b': [ s:N4[0] , s:IM[0] , s:N4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:N4[0] , s:N3[1] , s:N4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#wombat#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#wombat#palette.insert_modified = { + \ 'airline_a': [ s:I1[0] , s:I4[0] , s:I1[2] , s:I4[1] , '' ] , + \ 'airline_b': [ s:I4[0] , s:IM[0] , s:I4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:I4[0] , s:N3[1] , s:I4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#wombat#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#wombat#palette.visual_modified = { + \ 'airline_a': [ s:V1[0] , s:V4[0] , s:V1[2] , s:V4[1] , '' ] , + \ 'airline_b': [ s:V4[0] , s:IM[0] , s:V4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:V4[0] , s:N3[1] , s:V4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#wombat#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) +let g:airline#themes#wombat#palette.replace_modified = { + \ 'airline_a': [ s:R1[0] , s:R4[0] , s:R1[2] , s:R4[1] , '' ] , + \ 'airline_b': [ s:R4[0] , s:IM[0] , s:R4[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:R4[0] , s:N3[1] , s:R4[1] , s:N3[3] , '' ] } + + +let g:airline#themes#wombat#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , s:PA[0] , s:I1[2] , s:PA[1] , '' ] , + \ 'airline_b': [ s:PA[0] , s:IM[0] , s:PA[1] , s:IM[1] , '' ] , + \ 'airline_c': [ s:PA[0] , s:N3[1] , s:PA[1] , s:N3[3] , '' ] } + + +let g:airline#themes#wombat#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) +let g:airline#themes#wombat#palette.inactive_modified = { + \ 'airline_c': [ s:N4[0] , '' , s:N4[1] , '' , '' ] } + + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif +let g:airline#themes#wombat#palette.ctrlp = airline#extensions#ctrlp#generate_color_map( + \ [ '#DADADA' , '#242424' , 253 , 234 , '' ] , + \ [ '#DADADA' , '#40403C' , 253 , 238 , '' ] , + \ [ '#141413' , '#DADADA' , 232 , 253 , 'bold' ] ) + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/xtermlight.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/xtermlight.vim new file mode 100644 index 0000000..21d349e --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/xtermlight.vim @@ -0,0 +1,45 @@ +let g:airline#themes#xtermlight#palette = {} + +let s:N1 = [ '#eeeeee' , '#005fff' , 255 , 27 ] +let s:N2 = [ '#000087' , '#00d7ff' , 18 , 45 ] +let s:N3 = [ '#005fff' , '#afffff' , 27 , 159 ] +let g:airline#themes#xtermlight#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) +let g:airline#themes#xtermlight#palette.normal_modified = { + \ 'airline_c': [ '#d70000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } + + +let s:I1 = [ '#eeeeee' , '#00875f' , 255 , 29 ] +let s:I2 = [ '#005f00' , '#00d787' , 22 , 42 ] +let s:I3 = [ '#005f5f' , '#afff87' , 23 , 156 ] +let g:airline#themes#xtermlight#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) +let g:airline#themes#xtermlight#palette.insert_modified = { + \ 'airline_c': [ '#d70000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } +let g:airline#themes#xtermlight#palette.insert_paste = { + \ 'airline_a': [ s:I1[0] , '#d78700' , s:I1[2] , 172 , '' ] , + \ } + + +let g:airline#themes#xtermlight#palette.replace = copy(g:airline#themes#xtermlight#palette.insert) +let g:airline#themes#xtermlight#palette.replace.airline_a = [ s:I2[0] , '#ff0000' , s:I1[2] , 196 , '' ] +let g:airline#themes#xtermlight#palette.replace_modified = g:airline#themes#xtermlight#palette.insert_modified + + +let s:V1 = [ '#eeeeee' , '#ff5f00' , 255 , 202 ] +let s:V2 = [ '#5f0000' , '#ffaf00' , 52 , 214 ] +let s:V3 = [ '#d75f00' , '#ffff87' , 166 , 228 ] +let g:airline#themes#xtermlight#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) +let g:airline#themes#xtermlight#palette.visual_modified = { + \ 'airline_c': [ '#d70000' , '#ffdfdf' , 160 , 224 , '' ] , + \ } + + +let s:IA1 = [ '#6c6c6c' , '#b2b2b2' , 242 , 249 , '' ] +let s:IA2 = [ '#8a8a8a' , '#d0d0d0' , 245 , 252 , '' ] +let s:IA3 = [ '#a8a8a8' , '#eeeeee' , 248 , 255 , '' ] +let g:airline#themes#xtermlight#palette.inactive = airline#themes#generate_color_map(s:IA1, s:IA2, s:IA3) +let g:airline#themes#xtermlight#palette.inactive_modified = { + \ 'airline_c': [ '#d70000' , '' , 160 , '' , '' ] , + \ } + diff --git a/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/zenburn.vim b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/zenburn.vim new file mode 100644 index 0000000..58fae81 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/autoload/airline/themes/zenburn.vim @@ -0,0 +1,45 @@ +let g:airline#themes#zenburn#palette = {} + +function! airline#themes#zenburn#refresh() + let g:airline#themes#zenburn#palette.accents = { + \ 'red': airline#themes#get_highlight('Constant'), + \ } + + let s:N1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['Folded', 'fg'], 'bold') + let s:N2 = airline#themes#get_highlight('Folded') + let s:N3 = airline#themes#get_highlight('NonText') + let s:Nmod = airline#themes#get_highlight('Comment') + + let g:airline#themes#zenburn#palette.normal = airline#themes#generate_color_map(s:N1, s:N2, s:N3) + let g:airline#themes#zenburn#palette.normal.airline_c = s:Nmod + let g:airline#themes#zenburn#palette.normal_modified = { + \ 'airline_c': s:Nmod + \ } + + let s:I1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['String', 'fg'], 'bold') + let s:I2 = airline#themes#get_highlight2(['String', 'fg'], ['Folded', 'bg']) + let s:I3 = s:N3 + let g:airline#themes#zenburn#palette.insert = airline#themes#generate_color_map(s:I1, s:I2, s:I3) + let g:airline#themes#zenburn#palette.insert.airline_c = s:Nmod + let g:airline#themes#zenburn#palette.insert_modified = g:airline#themes#zenburn#palette.normal_modified + + let s:R1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['Comment', 'fg'], 'bold') + let s:R2 = airline#themes#get_highlight2(['Comment', 'fg'], ['Folded', 'bg']) + let s:R3 = s:N3 + let g:airline#themes#zenburn#palette.replace = airline#themes#generate_color_map(s:R1, s:R2, s:R3) + let g:airline#themes#zenburn#palette.replace_modified = g:airline#themes#zenburn#palette.normal_modified + + let s:V1 = airline#themes#get_highlight2(['DbgCurrent', 'bg'], ['Identifier', 'fg'], 'bold') + let s:V2 = airline#themes#get_highlight2(['Identifier', 'fg'], ['Folded', 'bg']) + let s:V3 = s:N3 + let g:airline#themes#zenburn#palette.visual = airline#themes#generate_color_map(s:V1, s:V2, s:V3) + let g:airline#themes#zenburn#palette.visual_modified = g:airline#themes#zenburn#palette.normal_modified + + let s:IA = airline#themes#get_highlight('NonText') + let g:airline#themes#zenburn#palette.inactive = airline#themes#generate_color_map(s:IA, s:IA, s:IA) + let g:airline#themes#zenburn#palette.inactive_modified = { + \ 'airline_c': s:Nmod + \ } +endfunction + +call airline#themes#zenburn#refresh() diff --git a/_vim/.vim/plugged/vim-airline-themes/doc/airline-themes.txt b/_vim/.vim/plugged/vim-airline-themes/doc/airline-themes.txt new file mode 100644 index 0000000..98b5256 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/doc/airline-themes.txt @@ -0,0 +1,301 @@ +*airline-themes.txt* Themes for vim-airline + _ _ _ _ ~ + __ _(_)_ __ ___ __ _(_)_ __| (_)_ __ ___ ~ + \ \ / / | '_ ` _ \ _____ / _` | | '__| | | '_ \ / _ \ ~ + \ V /| | | | | | |_____| (_| | | | | | | | | | __/ ~ + \_/ |_|_| |_| |_| \__,_|_|_| |_|_|_| |_|\___| ~ + ~ +============================================================================== +CONTENTS *airline-theme-contents* + + 01. Intro ........................................ |airline-themes-intro| + 02. Features ........................................... |airline-themes| + 03. Configuration ........................ |airline-themes-configuration| + 04. Contributions ........................ |airline-themes-contributions| + 05. License .................................... |airline-themes-license| + +============================================================================== +INTRODUCTION *airline-themes-intro* + +This is a plugin for vim-airline and provides several themes to be used in +conjunction with |vim-airline| + +============================================================================== +FEATURES *airline-themes-list* + +Currently this repository contains the following themes: + + * alduin + * angr + * atomic + * ayu_light + * ayu_mirage + * ayu_dark + * badwolf + * base16 (|airline-theme-base16|) + * base16_vim (|airline-theme-base16_vim|) + * base16_shell (|airline-theme-base16_shell|) + * base16_3024 + * base16_adwaita + * base16_apathy + * base16_ashes + * base16_atelierdune + * base16_atelierforest + * base16_atelierheath + * base16_atelierlakeside + * base16_atelierseaside + * base16_bespin + * base16_brewer + * base16_bright + * base16_chalk + * base16_classic + * base16_codeschool + * base16_colors + * base16_default + * base16_eighties + * base16_embers + * base16_flat + * base16_google + * base16_grayscale + * base16_greenscreen + * base16_gruvbox_dark_hard + * base16_harmonic16 + * base16_hopscotch + * base16_isotope + * base16_londontube + * base16_marrakesh + * base16_mocha + * base16_monokai + * base16_nord + * base16_ocean + * base16_oceanicnext + * base16_paraiso + * base16_pop + * base16_railscasts + * base16_seti + * base16_shapeshifter + * base16_solarized + * base16_spacemacs + * base16_summerfruit + * base16_tomorrow + * base16_twilight + * base16_vim + * base16color + * behelit + * biogoo + * bubblegum + * cobalt2 + * cool + * dark + * dark_minimal + * desertink + * deus + * distinguished + * durant + * faryfloss + * fruit_punch + * hybrid + * hybridline + * jay + * jellybeans + * jet + * kalisi + * kolor + * laederon + * light + * lucius + * luna + * minimalist (|airline-theme-minimalist|) + * molokai + * monochrome + * murmur + * night_owl + * onedark (|airline-theme-onedark|) + * ouo + * owo + * papercolor + * peaksea + * powerlineish + * qwq + * raven + * ravenpower + * seagull + * serene + * sierra + * silver + * simple + * soda + * sol + * solarized (|airline-theme-solarized|) + * solarized_flood + * term + * term_light + * tomorrow + * ubaryd + * understated + * violet + * wombat + * xtermlight + * zenburn + +============================================================================== +NAME *airline-themes-configuration* + + *g:airline_theme* + +To define a theme to be used by vim-airline you can set the variable +g:airline_theme in your |.vimrc| like this: > + :let g:airline_theme='dark' +< +*airline-theme-base16_vim* +*airline-theme-base16_shell* +------------------------------------------------------------------------------ +Base16 is an extensive collection of colorschemes built on a common +architecture by Chris Kempson (http://chriskempson.com/projects/base16/). The +base16_vim airline theme integrates with the base16-vim plugin +(https://github.com/chriskempson/base16-vim) to match the currently selected +colorscheme. This works with all modes of using base16-vim: running vim in +a terminal configured with base16-shell +(https://github.com/chriskempson/base16-shell), running vim with +'termguicolors' set, or running gvim. + +The alias base16_shell is provided for backward compatibility. + +This theme provides two options: + + *g:airline_base16_improved_contrast* + +Improve the contrast for the inactive statusline. > + let g:airline_base16_improved_contrast = 1 +Default: 0 + *g:airline_base16_monotone* + *g:airline_base16_solarized* + +Adjust the theme for a more monotonic look. This option is designed with the +base16-solarized-(light|dark) colorschemes in mind, but work well with the +other base16 colorshemes as well. > + let g:airline_base16_monotone = 1 +or, > + let g:airline_base16_solarized = 1 " retained for backward compatibility +Default: 0 + +*airline-theme-base16* +------------------------------------------------------------------------------ +This theme matches base16 colorschemes by extracting colors from highlight +groups, and also provides a static option. + + *airline#themes#base16#constant* + +Use a predefined palette instead of guessing values from highlight groups. To +enable: > + let g:airline#themes#base16#constant = 1 +Default: 0 + +A number of static themes that match particular base16 colorschemes are also +available, see |airline-themes-list|. + +*airline-theme-dark_minimal* +------------------------------------------------------------------------------ +This is a copy of the dark.vim theme, however it does not change colors in +the different modes, so should bring some performance improvements because +airline does not have to redefine highlighting groups after they have been +setup once. However, it won't change colors if e.g. the mode changes. + +*airline-theme-deus* +------------------------------------------------------------------------------ + *g:deus_termcolors* + +Set to 256 for 256-color mode (the default), or 16 for 16-color mode. +Has no effect if using true/24-bit color. To enable 16-color mode: > + let g:deus_termcolors = 16 + +*airline-theme-minimalist* +------------------------------------------------------------------------------ + *g:airline_minimalist_showmod* + +Highlight when the buffer is modified. + let g:airline_minimalist_showmod = 1 +< +*airline-theme-onedark* +------------------------------------------------------------------------------ + *g:onedark_termcolors* + +Set to 256 for 256-color mode (the default), or 16 for 16-color mode. +Has no effect if using true/24-bit color. To enable 16-color mode: > + let g:onedark_termcolors = 16 +< +16-color mode is intended to be used with specific terminal colors as +described in the installation notes for the joshdick/onedark.vim colorscheme: +(https://github.com/joshdick/onedark.vim#installation) + +*airline-theme-molokai* +------------------------------------------------------------------------------ +Enable brighter molokai theme. Mainly, the branch and filetype sections will +be shown in a nice orange. > + let g:airline_molokai_bright = 1 +< +*airline-theme-solarized* +------------------------------------------------------------------------------ + *g:airline_solarized_normal_green* + +Turns the outer-most section of the statusline Solarized green, making it +look more like classic powerline in normal mode. To enable it: > + let g:airline_solarized_normal_green = 1 +< + *airline_solarized_dark_inactive_background* + +For buffer(s) in the tabline that are displayed in an inactive window pane, +use a darker background for the buffer display in the tabline. To enable it: > + let g:airline_solarized_dark_inactive_background = 1 +< + *g:airline_solarized_dark_text* + +Turns the text color of the outer-most sections of the statusline to be dark. +To enable it: > + let g:airline_solarized_dark_text = 1 +< + *g:airline_solarized_dark_inactive_border* + +Changes inactive window panes to have a dark bottom border instead +of light by default. To enable it: > + let g:airline_solarized_dark_inactive_border = 1 +< + *g:airline_solarized_enable_command_color* + +In command mode, set the status line to its own color (violet). To enable it: > + let airline_solarized_enable_command_color = 1 +< + *g:solarized_base16* + +Base16 has a Solarized theme with the usual colors, but mapped in the +terminal differently. The main difference is that the bright colors, +Ansi 9-15, are left the same as their Ansi 1-7 counterparts. The +remaining solarized colors are mapped into higher indexes by using +Base16 Shell. To enable it: > + let g:solarized_base16 = 1 +< +See also https://github.com/blueyed/vim-colors-solarized/commit/92f2f994. + +*airline-theme-zenburn* +------------------------------------------------------------------------------ + *g:zenburn_high_Contrast* + +Enable higher contrast colors for the zenburn colorscheme and the +corresponding airline theme. Must be set before switching to the zenburn +colorscheme > + let g:zenburn_high_Contrast = 1 + +The zenburn colorscheme also supports a couple of other configuration +variables, that possibly also influence the colors in the zenburn airline +theme. Please check the zenburn color scheme on how to configure it. +============================================================================== +CONTRIBUTIONS *airline-themes-contributions* + +Contributions and pull requests are welcome. + +============================================================================== +LICENSE *airline-themes-license* + +MIT License. Copyright © 2013-2020 Bailey Ling, et al + + vim:tw=78:ts=8:ft=help:norl: diff --git a/_vim/.vim/plugged/vim-airline-themes/plugin/airline-themes.vim b/_vim/.vim/plugged/vim-airline-themes/plugin/airline-themes.vim new file mode 100644 index 0000000..d3ea8a5 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/plugin/airline-themes.vim @@ -0,0 +1,15 @@ +" MIT License. Copyright (c) 2013-2020 Bailey Ling & Contributors. +" vim: et ts=2 sts=2 sw=2 + +let s:save_cpo = &cpo +set cpo&vim + +scriptencoding utf-8 + +if &cp || v:version < 702 || (exists('g:loaded_airline_themes') && g:loaded_airline_themes) + finish +endif +let g:loaded_airline_themes = 1 + +let &cpo = s:save_cpo +unlet s:save_cpo diff --git a/_vim/.vim/plugged/vim-airline-themes/test/airline-themes.vader b/_vim/.vim/plugged/vim-airline-themes/test/airline-themes.vader new file mode 100644 index 0000000..ba46da4 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline-themes/test/airline-themes.vader @@ -0,0 +1,38 @@ +# Make sure that theme and 5 basic modes don't throw an error +# Get list of all included themes +Execute (validate themes): + let themes = readfile('themes.txt') + call sort(themes) + + let err_proc = v:false + try + + for themePath in themes + + " Check all the basic modes and their modified counterparts + " This test only fails on exceptional cases + let theme = fnamemodify(themePath, ':t:r') + Log theme + execute('AirlineTheme ' . theme) + execute('source ' . themePath) + normal i + normal : + normal R + normal v + setlocal mod + normal i + normal : + normal R + normal v + setlocal nomod + + endfor + + catch + let err_proc = v:true + Log "Failed validation testing with exception:" + Log string(v:exception) + endtry + AirlineRefresh + + Assert !err_proc diff --git a/_vim/.vim/plugged/vim-airline/.github/ISSUE_TEMPLATE.md b/_vim/.vim/plugged/vim-airline/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..eeba3c3 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,23 @@ +#### environment + +- vim: ???? +- vim-airline: ???? +- OS: ???? +- Have you reproduced with a minimal vimrc: ??? +- What is your airline configuration: ??? +if you are using terminal: +- terminal: ???? +- $TERM variable: ??? +- color configuration (:set t_Co?): +if you are using Neovim: +- does it happen in Vim: ??? + +#### actual behavior + +???? + +#### expected behavior + +???? + +#### screen shot (if possible) diff --git a/_vim/.vim/plugged/vim-airline/.github/workflows/reviewdog.yml b/_vim/.vim/plugged/vim-airline/.github/workflows/reviewdog.yml new file mode 100644 index 0000000..1e0d8df --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/.github/workflows/reviewdog.yml @@ -0,0 +1,22 @@ +name: reviewdog + +on: + push: + branches: + - master + pull_request: + branches: + - master + +jobs: + vint: + name: runner / vint + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + - name: vint + uses: reviewdog/action-vint@v1 + with: + github_token: ${{ secrets.github_token }} + level: error + reporter: github-pr-check diff --git a/_vim/.vim/plugged/vim-airline/.gitignore b/_vim/.vim/plugged/vim-airline/.gitignore new file mode 100644 index 0000000..59bacbb --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/.gitignore @@ -0,0 +1,5 @@ +.DS_Store +doc/tags +*.lock +.vim-flavor +*.swp diff --git a/_vim/.vim/plugged/vim-airline/.travis.yml b/_vim/.vim/plugged/vim-airline/.travis.yml new file mode 100644 index 0000000..378e746 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/.travis.yml @@ -0,0 +1,31 @@ +# This config is based on lightline.vim + +language: ruby +before_install: + - curl -f -L "https://raw.githubusercontent.com/vim-airline/vim-airline-themes/master/autoload/airline/themes/simple.vim" -o autoload/airline/themes/simple.vim + - curl -f -L "https://raw.githubusercontent.com/vim-airline/vim-airline-themes/master/autoload/airline/themes/molokai.vim" -o autoload/airline/themes/molokai.vim + - mkdir colors && curl -f -L 'https://raw.githubusercontent.com/tomasr/molokai/master/colors/molokai.vim' -o colors/molokai.vim + - (if ! test -d $HOME/vim-$VIM_VERSION/bin; then + git clone https://github.com/vim/vim $HOME/vim && + cd $HOME/vim && + git checkout v$VIM_VERSION && + ./configure --prefix=$HOME/vim-$VIM_VERSION && + make && + make install; + fi) + #rvm: + # - 1.9.3 +cache: + directories: + - $HOME/vim-$VIM_VERSION + +env: + - VIM_VERSION=8.2.0000 + - VIM_VERSION=8.1.0000 + - VIM_VERSION=8.0.0000 + - VIM_VERSION=7.4 + +script: + - export PATH=$HOME/vim-$VIM_VERSION/bin:$PATH + - cd $TRAVIS_BUILD_DIR + - rake ci diff --git a/_vim/.vim/plugged/vim-airline/CHANGELOG.md b/_vim/.vim/plugged/vim-airline/CHANGELOG.md new file mode 100644 index 0000000..8d19f93 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/CHANGELOG.md @@ -0,0 +1,237 @@ +# Change Log + +This is the Changelog for the vim-airline project. + +## [0.12] - Unreleased +- New features + - Extensions: + - [poetv](https://github.com/petobens/poet-v) support + - [vim-lsp](https://github.com/prabirshrestha/vim-lsp) support + - [zoomwintab](https://github.com/troydm/zoomwintab.vim) support +- Improvements + - git branch can also be displayed using [gina.vim](https://github.com/lambdalisue/gina.vim) + - coc extensions can also show additional status messages + - [coc-git](https://github.com/neoclide/coc-git) extension integrated into hunks extension +- Other + - Introduce Vim script static analysis using [reviewdog](https://github.com/reviewdog/action-vint) + - Added multiple Vim versions to unit tests using Travis CI + +## [0.11] - 2019-11-10 +- New features + - Extensions: + - [Coc](https://github.com/neoclide/coc.nvim) support + - [Defx](https://github.com/Shougo/defx.nvim) support + - [gina](https://github.com/lambdalisue/gina.vim) support + - [vim-bookmark](https://github.com/MattesGroeger/vim-bookmarks) support + - [vista.vim](https://github.com/liuchengxu/vista.vim) support + - [tabws](https://github.com/s1341/vim-tabws) support for the tabline +- Improvements + - The statusline can be configured to be shown on top (in the tabline) + Set the `g:airline_statusline_ontop` to enable this experimental feature. + - If `buffer_idx_mode=2`, up to 89 mappings will be exposed to access more + buffers directly (issue [#1823](https://github.com/vim-airline/vim-airline/issues/1823)) + - Allow to use `random` as special theme name, which will switch to a random + airline theme (at least if a random number can be generated :() + - The branch extensions now also displays whether the repository is in a clean state + (will append a ! or ⚡if the repository is considered dirty). + - The whitespace extensions will also check for conflict markers + - `:AirlineRefresh` command now takes an additional `!` attribute, that **skips** + recreating the highlighting groups (which might have a serious performance + impact if done very often, as might be the case when the configuration variable + `airline_skip_empty_sections` is active). + - airline can now also detect multiple cursor mode (issue [#1933](https://github.com/vim-airline/vim-airline/issues/1933)) + - expose hunks output using the function `airline#extensions#hunks#get_raw_hunks()` to the outside [#1877](https://github.com/vim-airline/vim-airline/pull/1877) + - expose wordcount affected filetype list to the public using the `airline#extensions#wordcount#filetypes` variable [#1887](https://github.com/vim-airline/vim-airline/pull/1887) + - for the `:AirlineExtension` command, indicate whether the extension has been loaded from an external source [#1890](https://github.com/vim-airline/vim-airline/issues/1890) + - correctly load custom wordcount formatters [#1896](https://github.com/vim-airline/vim-airline/issues/1896) + - add a new short_path formatter for the tabline [#1898](https://github.com/vim-airline/vim-airline/pull/1898) + - several improvements to the branch, denite and tabline extension, as well as the async code for Vim and Neovim + - the term extension supports [neoterm](https://github.com/kassio/neoterm) vim plugin + +## [0.10] - 2018-12-15 +- New features + - Extensions: + - [LanguageClient](https://github.com/autozimu/LanguageClient-neovim) + - [vim-gutentags](https://github.com/ludovicchabant/vim-gutentags) + - [vim-localsearch](https://github.com/mox-mox/vim-localsearch) + - [xtabline](https://github.com/mg979/vim-xtabline) + - [vim-grepper](https://github.com/mhinz/vim-grepper) + - Add custom AirlineModeChanged autocommand, allowing to call user defined commands + whenever airline displays a different mode + - New :AirlineExtensions command, to show which extensions have been loaded + - Detect several new modes (e.g. completion, virtual replace, etc) +- Improvements + - Various performance improvements, should Vim keep responsive, even when + many highlighting groups need to be re-created + - Rework tabline extension + - Refactor [vim-ctrlspace](https://github.com/szw/vim-ctrlspace) extension + - Refactor the wordcount extension + - Reworked the po extension + - Allow to disable line numbers for the [Ale Extension](https://github.com/w0rp/ale) + - [fugitive](https://github.com/tpope/vim-fugitive) plugin has been refactored + causing adjustments for vim-airline, also uses Fugitives new API calls + - some improvements to Vims terminal mode + - Allow to use alternative seperators for inactive windows ([#1236](https://github.com/vim-airline/vim-airline/issues/1236)) + - Statusline can be set to inactive, whenever Vim loses focus (using FocusLost autocommand) + +## [0.9] - 2018-01-15 +- Changes + - Look of default Airline Symbols has been improved [#1397](https://github.com/vim-airline/vim-airline/issues/1397) + - Airline does now set `laststatus=2` if needed + - Syntastic extension now displays warnings and errors separately + - Updates on Resize and SessionLoad events + - Add `maxlinenr` symbol to `airline_section_z` + - Add quickfix title to inactive windows +- Improvements + - Many performance improvements (using caching and async feature when possible) + - Cache changes to highlighting groups if `g:airline_highlighting_cache = 1` is set + - Allow to skip empty sections by setting `g:airline_skip_empty_sections` variable + - Make use of improved Vim Script API, if available (e.g. getwininfo()) + - Support for Vims terminal feature (very experimental since it hasn't been stabilized yet) + - More configuration for the tabline extension (with clickable buffers for Neovim) + - Works better on smaller window sizes + - Make airline aware of git worktrees + - Improvements to the fugitive extension [#1603](https://github.com/vim-airline/vim-airline/issues/1603) + - Allows for configurable fileformat output if `g:airline#parts#ffenc#skip_expected_string` is set + - Improvements to the documentation +- New features + - Full async support for Vim 8 and Neovim + - Extensions: + - [vim-bufmru](https://github.com/mildred/vim-bufmru) + - [xkb-switch](https://github.com/ierton/xkb-switch) + - [input-source-switcher](https://github.com/vovkasm/input-source-switcher) + - [vimagit](https://github.com/jreybert/vimagit) + - [denite](https://github.com/Shougo/denite.nvim) + - [dein](https://github.com/Shougo/dein.vim) + - [vimtex](https://github.com/lervag/vimtex) + - [minpac](https://github.com/k-takata/minpac/) + - [vim-cursormode](https://github.com/vheon/vim-cursormode) + - [Neomake](https://github.com/neomake/neomake) + - [Ale](https://github.com/w0rp/ale) + - [vim-obsession](https://github.com/tpope/vim-obsession) + - spell (can also display Spell language) + - keymap + - Formatters: + - Formatters for JavaScript [#1617](https://github.com/vim-airline/vim-airline/issues/1617) + - Tabline: Allow for custom formatter for `tab_nr_type` [#1418](https://github.com/vim-airline/vim-airline/issues/1418) + - Customizable wordcount formatter [#1584](https://github.com/vim-airline/vim-airline/issues/1584) + - Add User autocommand for Theme changing [#1226](https://github.com/vim-airline/vim-airline/issues/1226) + - Shows mercurial mq status if hg mq extension is enabled + +## [0.8] - 2016-03-09 +- Changes + - Airline converted to an organization and moved to new [repository](https://github.com/vim-airline/vim-airline) + - Themes have been split into an separate repository [vim-airline-themes](https://github.com/vim-airline/vim-airline-themes) +- Improvements + - Extensions + - branch: support Git and Mercurial simultaneously, untracked files + - whitespace: new mixed-indent rule + - Windows support + - Many bug fixes + - Support for Neovim +- New features + - Many new themes + - Extensions/integration + - [taboo](https://github.com/gcmt/taboo.vim) + - [vim-ctrlspace](https://github.com/szw/vim-ctrlspace) + - [quickfixsigns](https://github.com/tomtom/quickfixsigns_vim) + - [YouCompleteMe](https://github.com/Valloric/YouCompleteMe) + - [po.vim](http://www.vim.org/scripts/script.php?script_id=695) + - [unicode.vim](https://github.com/chrisbra/unicode.vim) + - wordcount + - crypt indicator + - byte order mark indicator + - Tabline's tab mode can display splits simultaneously + +## [0.7] - 2014-12-10 +- New features + - accents support; allowing multiple colors/styles in the same section + - extensions: eclim + - themes: understated, monochrome, murmur, sol, lucius +- Improvements + - solarized theme; support for 8 color terminals + - tabline resizes dynamically based on number of open buffers + - miscellaneous bug fixes + +## [0.6] - 2013-10-08 + +- New features + - accents support; allowing multiple colors/styles in the same section + - extensions: eclim + - themes: understated, monochrome, murmur, sol, lucius +- Improvements + - solarized theme; support for 8 color terminals + - tabline resizes dynamically based on number of open buffers + - miscellaneous bug fixes + +## [0.5] - 2013-09-13 + +- New features + - smart tabline extension which displays all buffers when only one tab is visible + - automatic section truncation when the window resizes + - support for a declarative style of configuration, allowing parts to contain metadata such as minimum window width or conditional visibility + - themes: zenburn, serene +- Other + - a sizable chunk of vim-airline is now running through a unit testing suite, automated via Travis CI + +## [0.4] - 2013-08-26 + + - New features + - integration with csv.vim and vim-virtualenv + - hunks extension for vim-gitgutter and vim-signify + - automatic theme switching with matching colorschemes + - commands: AirlineToggle + - themes: base16 (all variants) + - Improvements + - integration with undotree, tagbar, and unite + - Other + - refactored core and exposed statusline builder and pipeline + - all extension related g:airline_variables have been deprecated in favor of g:airline#extensions# variables + - extensions found in the runtimepath outside of the default distribution will be automatically loaded + +## [0.3] - 2013-08-12 + +- New features + - first-class integration with tagbar + - white space detection for trailing spaces and mixed indentation + - introduced warning section for syntastic and white space detection + - improved ctrlp integration: colors are automatically selected based on the current airline theme + - new themes: molokai, bubblegum, jellybeans, tomorrow +- Bug fixes + - improved handling of eventignore used by other plugins +- Other + - code cleaned up for clearer separation between core functionality and extensions + - introduced color extraction from highlight groups, allowing themes to be generated off of the active colorscheme (e.g. jellybeans and tomorrow) + - License changed to MIT + +## [0.2] - 2013-07-28 + +- New features + - iminsert detection + - integration with vimshell, vimfiler, commandt, lawrencium + - enhanced bufferline theming + - support for ctrlp theming + - support for custom window excludes +- New themes + - luna and wombat +- Bug fixes + - refresh branch name after switching with a shell command + +## [0.1] - 2013-07-17 + +- Initial release + - integration with other plugins: netrw, unite, nerdtree, undotree, gundo, tagbar, minibufexplr, ctrlp + - support for themes: 8 included + +[0.12]: https://github.com/vim-airline/vim-airline/compare/v0.11...HEAD +[0.11]: https://github.com/vim-airline/vim-airline/compare/v0.10...v0.11 +[0.10]: https://github.com/vim-airline/vim-airline/compare/v0.9...v0.10 +[0.9]: https://github.com/vim-airline/vim-airline/compare/v0.8...v0.9 +[0.8]: https://github.com/vim-airline/vim-airline/compare/v0.7...v0.8 +[0.7]: https://github.com/vim-airline/vim-airline/compare/v0.6...v0.7 +[0.6]: https://github.com/vim-airline/vim-airline/compare/v0.5...v0.6 +[0.5]: https://github.com/vim-airline/vim-airline/compare/v0.4...v0.5 +[0.4]: https://github.com/vim-airline/vim-airline/compare/v0.3...v0.4 +[0.3]: https://github.com/vim-airline/vim-airline/compare/v0.2...v0.3 +[0.2]: https://github.com/vim-airline/vim-airline/compare/v0.1...v0.2 +[0.1]: https://github.com/vim-airline/vim-airline/releases/tag/v0.1 diff --git a/_vim/.vim/plugged/vim-airline/CONTRIBUTING.md b/_vim/.vim/plugged/vim-airline/CONTRIBUTING.md new file mode 100644 index 0000000..f97699e --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/CONTRIBUTING.md @@ -0,0 +1,32 @@ +# Contributions + +Contributions and pull requests are welcome. Please take note of the following guidelines: + +* Adhere to the existing style as much as possible; notably, 2 space indents and long-form keywords. +* Keep the history clean! Squash your branches before you submit a pull request. `pull --rebase` is your friend. +* Any changes to the core should be tested against Vim 7.2. + +# Bugs + +Tracking down bugs can take a very long time due to different configurations, versions, and operating systems. To ensure a timely response, please help me out by doing the following: + +* Reproduce it with this [minivimrc][7] repository to rule out any configuration conflicts. Even better, create a `gist` of your vimrc that is compatible with [pathogen][11]. +* And to make it easier to reproduce, please supply the following: + * the `:version` of vim + * the commit of vim-airline you're using + * the OS that you're using, including terminal emulator, GUI vs non-GUI + +# Themes + +* If you submit a theme, please create a screenshot so it can be added to the [Wiki][14]. +* In the majority of cases, modifications to colors of existing themes will likely be rejected. Themes are a subjective thing, so while you may prefer that a particular color be darker, another user will prefer it to be lighter, or something entirely different. The more popular the theme, the more unlikely the change will be accepted. However, it's pretty simple to create your own theme; copy the theme to `~/.vim/autoload/airline/themes` under a new name with your modifications, and it can be used. + +# Maintenance + +If you would like to take a more active role in improving vim-airline, please consider [becoming a maintainer][43]. + + +[7]: https://github.com/bling/minivimrc +[11]: https://github.com/tpope/vim-pathogen +[14]: https://github.com/vim-airline/vim-airline/wiki/Screenshots +[43]: https://github.com/vim-airline/vim-airline/wiki/Becoming-a-Maintainer diff --git a/_vim/.vim/plugged/vim-airline/Gemfile b/_vim/.vim/plugged/vim-airline/Gemfile new file mode 100644 index 0000000..723a32d --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/Gemfile @@ -0,0 +1,2 @@ +source 'https://rubygems.org' +gem 'vim-flavor', '~> 2.2.2' diff --git a/_vim/.vim/plugged/vim-airline/LICENSE b/_vim/.vim/plugged/vim-airline/LICENSE new file mode 100644 index 0000000..89af08e --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/LICENSE @@ -0,0 +1,21 @@ +The MIT License (MIT) + +Copyright (C) 2013-2020 Bailey Ling, Christian Brabandt, et al. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the "Software"), +to deal in the Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, sublicense, +and/or sell copies of the Software, and to permit persons to whom the +Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE +OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/_vim/.vim/plugged/vim-airline/README.md b/_vim/.vim/plugged/vim-airline/README.md new file mode 100644 index 0000000..f105162 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/README.md @@ -0,0 +1,355 @@ +# vim-airline [![Build Status](https://travis-ci.org/vim-airline/vim-airline.svg?branch=master)](https://travis-ci.org/vim-airline/vim-airline) [![Say Thanks!](https://img.shields.io/badge/Say%20Thanks-!-1EAEDB.svg)](https://saythanks.io/to/cb%40256bit.org) [![reviewdog](https://github.com/vim-airline/vim-airline/workflows/reviewdog/badge.svg?branch=master&event=push)](https://github.com/vim-airline/vim-airline/actions?query=workflow%3Areviewdog+event%3Apush+branch%3Amaster) + +Lean & mean status/tabline for vim that's light as air. + +![img](https://github.com/vim-airline/vim-airline/wiki/screenshots/demo.gif) + +When the plugin is correctly loaded, Vim will draw a nice statusline at the +bottom of each window. + +That line consists of several sections, each one displaying some piece of +information. By default (without configuration) this line will look like this: + +``` ++-----------------------------------------------------------------------------+ +|~ | +|~ | +|~ VIM - Vi IMproved | +|~ | +|~ version 8.2 | +|~ by Bram Moolenaar et al. | +|~ Vim is open source and freely distributable | +|~ | +|~ type :h :q to exit | +|~ type :help or for on-line help | +|~ type :help version8 for version info | +|~ | +|~ | ++-----------------------------------------------------------------------------+ +| A | B | C X | Y | Z | [...] | ++-----------------------------------------------------------------------------+ +``` + +The statusline is the colored line at the bottom, which contains the sections +(possibly in different colors): + +section|meaning (example) +-------|------------------ + A | displays the mode + additional flags like crypt/spell/paste (INSERT) + B | VCS information (branch, hunk summary) (master) + C | filename + read-only flag (~/.vim/vimrc RO) + X | filetype (vim) + Y | file encoding[fileformat] (utf-8[unix]) + Z | current position in the file + [...] | additional sections (warning/errors/statistics) from external plugins (e.g. YCM, syntastic, ...) + +The information in Section Z looks like this: + +`10% ☰ 10/100 ln : 20` + +This means: +``` +10% - 10 percent down the top of the file +☰ 10 - current line 10 +/100 ln - of 100 lines +: 20 - current column 20 +``` + +For a better look, those sections can be colored differently, depending on various conditions +(e.g. the mode or whether the current file is 'modified') + +# Features + +* Tiny core written with extensibility in mind ([open/closed principle][8]). +* Integrates with a variety of plugins, including: [vim-bufferline][6], + [fugitive][4], [unite][9], [ctrlp][10], [minibufexpl][15], [gundo][16], + [undotree][17], [nerdtree][18], [tagbar][19], [vim-gitgutter][29], + [vim-signify][30], [quickfixsigns][39], [syntastic][5], [eclim][34], + [lawrencium][21], [virtualenv][31], [tmuxline][35], [taboo.vim][37], + [ctrlspace][38], [vim-bufmru][47], [vimagit][50], [denite][51] and more. +* Looks good with regular fonts and provides configuration points so you can use unicode or powerline symbols. +* Optimized for speed; it loads in under a millisecond. +* Extensive suite of themes for popular color schemes including [solarized][23] (dark and light), [tomorrow][24] (all variants), [base16][32] (all variants), [molokai][25], [jellybeans][26] and others. + Note these are now external to this plugin. See [below][46] for detail. +* Supports 7.2 as the minimum Vim version. +* The master branch tries to be as stable as possible, and new features are merged in only after they have gone through a [full regression test][33]. +* Unit testing suite. + +## Straightforward customization + +If you don't like the defaults, you can replace all sections with standard `statusline` syntax. Give your statusline that you've built over the years a face lift. + +![image](https://f.cloud.github.com/assets/306502/1009429/d69306da-0b38-11e3-94bf-7c6e3eef41e9.png) + +## Themes + +Themes have moved to +another repository as of [this commit][45]. + +Install the themes as you would this plugin (Vundle example): + +```vim +Plugin 'vim-airline/vim-airline' +Plugin 'vim-airline/vim-airline-themes' +``` + +See https://github.com/vim-airline/vim-airline-themes for more. + +## Automatic truncation + +Sections and parts within sections can be configured to automatically hide when the window size shrinks. + +![image](https://f.cloud.github.com/assets/306502/1060831/05c08aac-11bc-11e3-8470-a506a3037f45.png) + +## Smarter tab line + +Automatically displays all buffers when there's only one tab open. + +![tabline](https://f.cloud.github.com/assets/306502/1072623/44c292a0-1495-11e3-9ce6-dcada3f1c536.gif) + +This is disabled by default; add the following to your vimrc to enable the extension: + + let g:airline#extensions#tabline#enabled = 1 + +Separators can be configured independently for the tabline, so here is how you can define "straight" tabs: + + let g:airline#extensions#tabline#left_sep = ' ' + let g:airline#extensions#tabline#left_alt_sep = '|' + +In addition, you can also choose which path formatter airline uses. This affects how file paths are +displayed in each individual tab as well as the current buffer indicator in the upper right. +To do so, set the `formatter` field with: + + let g:airline#extensions#tabline#formatter = 'default' + +Here is a complete list of formatters with screenshots: + +#### `default` +![image](https://user-images.githubusercontent.com/2652762/34422844-1d005efa-ebe6-11e7-8053-c784c0da7ba7.png) + +#### `jsformatter` +![image](https://user-images.githubusercontent.com/2652762/34422843-1cf6a4d2-ebe6-11e7-810a-07e6eb08de24.png) + +#### `unique_tail` +![image](https://user-images.githubusercontent.com/2652762/34422841-1ce5b4ec-ebe6-11e7-86e9-3d45c876068b.png) + +#### `unique_tail_improved` +![image](https://user-images.githubusercontent.com/2652762/34422842-1cee23f2-ebe6-11e7-962d-97e068873077.png) + +## Seamless integration + +vim-airline integrates with a variety of plugins out of the box. These extensions will be lazily loaded if and only if you have the other plugins installed (and of course you can turn them off). + +#### [ctrlp.vim][10] +![image](https://f.cloud.github.com/assets/306502/962258/7345a224-04ec-11e3-8b5a-f11724a47437.png) + +#### [unite.vim][9] +![image](https://f.cloud.github.com/assets/306502/962319/4d7d3a7e-04ed-11e3-9d59-ab29cb310ff8.png) + +#### [denite.nvim][51] +![image](https://cloud.githubusercontent.com/assets/246230/23939717/f65bce6e-099c-11e7-85c3-918dbc839392.png) + +#### [tagbar][19] +![image](https://f.cloud.github.com/assets/306502/962150/7e7bfae6-04ea-11e3-9e28-32af206aed80.png) + +#### [csv.vim][28] +![image](https://f.cloud.github.com/assets/306502/962204/cfc1210a-04eb-11e3-8a93-42e6bcd21efa.png) + +#### [syntastic][5] +![image](https://f.cloud.github.com/assets/306502/962864/9824c484-04f7-11e3-9928-da94f8c7da5a.png) + +#### hunks ([vim-gitgutter][29] & [vim-signify][30] & [coc-git][59]) +![image](https://f.cloud.github.com/assets/306502/995185/73fc7054-09b9-11e3-9d45-618406c6ed98.png) + +#### [vimagit][50] +![vim-airline-vimagit-demo](https://cloud.githubusercontent.com/assets/533068/22107273/2ea85ba0-de4d-11e6-9fa8-331103b88df4.gif) + +#### [virtualenv][31] +![image](https://f.cloud.github.com/assets/390964/1022566/cf81f830-0d98-11e3-904f-cf4fe3ce201e.png) + +#### [tmuxline][35] +![image](https://f.cloud.github.com/assets/1532071/1559276/4c28fbac-4fc7-11e3-90ef-7e833d980f98.gif) + +#### [promptline][36] +![airline-promptline-sc](https://f.cloud.github.com/assets/1532071/1871900/7d4b28a0-789d-11e3-90e4-16f37269981b.gif) + +#### [ctrlspace][38] +![papercolor_with_ctrlspace](https://cloud.githubusercontent.com/assets/493242/12912041/7fc3c6ec-cf16-11e5-8775-8492b9c64ebf.png) + +#### [xkb-switch][48]/[xkb-layout][49] +![image](https://cloud.githubusercontent.com/assets/5715281/22061422/347e7842-ddb8-11e6-8bdb-7abbd418653c.gif) + +#### [vimtex][53] +![image](https://cloud.githubusercontent.com/assets/1798172/25799740/e77d5c2e-33ee-11e7-8660-d34ce4c5f13f.png) + +#### [localsearch][54] +![image](https://raw.githubusercontent.com/mox-mox/vim-localsearch/master/vim-airline-localsearch-indicator.png) + +#### [LanguageClient][57] +![image](https://user-images.githubusercontent.com/9622/45275524-52f45c00-b48b-11e8-8b83-a66240b10747.gif) + +## Extras + +vim-airline also supplies some supplementary stand-alone extensions. In addition to the tabline extension mentioned earlier, there is also: + +#### whitespace +![image](https://f.cloud.github.com/assets/306502/962401/2a75385e-04ef-11e3-935c-e3b9f0e954cc.png) + +### statusline on top +The statusline can alternatively by drawn on top, making room for other plugins to use the statusline: +The example shows a custom statusline setting, that imitates Vims default statusline, while allowing +to call custom functions. Use `:let g:airline_statusline_ontop=1` to enable it. + +![image](https://i.imgur.com/tW1lMRU.png) + +## Configurable and extensible + +#### Fine-tuned configuration + +Every section is composed of parts, and you can reorder and reconfigure them at will. + +![image](https://f.cloud.github.com/assets/306502/1073278/f291dd4c-14a3-11e3-8a83-268e2753f97d.png) + +Sections can contain accents, which allows for very granular control of visuals (see configuration [here](https://github.com/vim-airline/vim-airline/issues/299#issuecomment-25772886)). + +![image](https://f.cloud.github.com/assets/306502/1195815/4bfa38d0-249d-11e3-823e-773cfc2ca894.png) + +#### Extensible pipeline + +Completely transform the statusline to your liking. Build out the statusline as you see fit by extracting colors from the current colorscheme's highlight groups. + +![allyourbase](https://f.cloud.github.com/assets/306502/1022714/e150034a-0da7-11e3-94a5-ca9d58a297e8.png) + +# Rationale + +There's already [powerline][2], why yet another statusline? + +* 100% vimscript; no python needed. + +What about [vim-powerline][1]? + +* vim-powerline has been deprecated in favor of the newer, unifying powerline, which is under active development; the new version is written in python at the core and exposes various bindings such that it can style statuslines not only in vim, but also tmux, bash, zsh, and others. + +# Where did the name come from? + +I wrote the initial version on an airplane, and since it's light as air it turned out to be a good name. Thanks for flying vim! + +# Installation + +This plugin follows the standard runtime path structure, and as such it can be installed with a variety of plugin managers: + +| Plugin Manager | Install with... | +| ------------- | ------------- | +| [Pathogen][11] | `git clone https://github.com/vim-airline/vim-airline ~/.vim/bundle/vim-airline`
Remember to run `:Helptags` to generate help tags | +| [NeoBundle][12] | `NeoBundle 'vim-airline/vim-airline'` | +| [Vundle][13] | `Plugin 'vim-airline/vim-airline'` | +| [Plug][40] | `Plug 'vim-airline/vim-airline'` | +| [VAM][22] | `call vam#ActivateAddons([ 'vim-airline' ])` | +| [Dein][52] | `call dein#add('vim-airline/vim-airline')` | +| [minpac][55] | `call minpac#add('vim-airline/vim-airline')` | +| pack feature (native Vim 8 package feature)| `git clone https://github.com/vim-airline/vim-airline ~/.vim/pack/dist/start/vim-airline`
Remember to run `:helptags ~/.vim/pack/dist/start/vim-airline/doc` to generate help tags | +| manual | copy all of the files into your `~/.vim` directory | + +# Documentation + +`:help airline` + +# Integrating with powerline fonts + +For the nice looking powerline symbols to appear, you will need to install a patched font. Instructions can be found in the official powerline [documentation][20]. Prepatched fonts can be found in the [powerline-fonts][3] repository. + +Finally, you can add the convenience variable `let g:airline_powerline_fonts = 1` to your vimrc which will automatically populate the `g:airline_symbols` dictionary with the powerline symbols. + +# FAQ + +Solutions to common problems can be found in the [Wiki][27]. + +# Performance + +Whoa! Everything got slow all of a sudden... + +vim-airline strives to make it easy to use out of the box, which means that by default it will look for all compatible plugins that you have installed and enable the relevant extension. + +Many optimizations have been made such that the majority of users will not see any performance degradation, but it can still happen. For example, users who routinely open very large files may want to disable the `tagbar` extension, as it can be very expensive to scan for the name of the current function. + +The [minivimrc][7] project has some helper mappings to troubleshoot performance related issues. + +If you don't want all the bells and whistles enabled by default, you can define a value for `g:airline_extensions`. When this variable is defined, only the extensions listed will be loaded; an empty array would effectively disable all extensions (e.g. `:let g:airline_extensions = []`). + +Also, you can enable caching of the various syntax highlighting groups. This will try to prevent some of the more expensive `:hi` calls in Vim, which seem to be expensive in the Vim core at the expense of possibly not being one hundred percent correct all the time (especially if you often change highlighting groups yourself using `:hi` commands). To set this up do `:let g:airline_highlighting_cache = 1`. A `:AirlineRefresh` will however clear the cache. + +In addition you might want to check out the [dark_minimal theme][56], which does not change highlighting groups once they are defined. Also please check the [FAQ][27] for more information on how to diagnose and fix the problem. + +# Screenshots + +A full list of screenshots for various themes can be found in the [Wiki][14]. + +# Maintainers + +The project is currently being maintained by [Bailey Ling][41], [Christian Brabandt][42], and [Mike Hartington][44]. + +If you are interested in becoming a maintainer (we always welcome more maintainers), please [go here][43]. + +# License + +[MIT License][58]. Copyright (c) 2013-2020 Bailey Ling & Contributors. + +[1]: https://github.com/Lokaltog/vim-powerline +[2]: https://github.com/Lokaltog/powerline +[3]: https://github.com/Lokaltog/powerline-fonts +[4]: https://github.com/tpope/vim-fugitive +[5]: https://github.com/scrooloose/syntastic +[6]: https://github.com/bling/vim-bufferline +[7]: https://github.com/bling/minivimrc +[8]: http://en.wikipedia.org/wiki/Open/closed_principle +[9]: https://github.com/Shougo/unite.vim +[10]: https://github.com/ctrlpvim/ctrlp.vim +[11]: https://github.com/tpope/vim-pathogen +[12]: https://github.com/Shougo/neobundle.vim +[13]: https://github.com/VundleVim/Vundle.vim +[14]: https://github.com/vim-airline/vim-airline/wiki/Screenshots +[15]: https://github.com/techlivezheng/vim-plugin-minibufexpl +[16]: https://github.com/sjl/gundo.vim +[17]: https://github.com/mbbill/undotree +[18]: https://github.com/preservim/nerdtree +[19]: https://github.com/majutsushi/tagbar +[20]: https://powerline.readthedocs.org/en/master/installation.html#patched-fonts +[21]: https://bitbucket.org/ludovicchabant/vim-lawrencium +[22]: https://github.com/MarcWeber/vim-addon-manager +[23]: https://github.com/altercation/solarized +[24]: https://github.com/chriskempson/tomorrow-theme +[25]: https://github.com/tomasr/molokai +[26]: https://github.com/nanotech/jellybeans.vim +[27]: https://github.com/vim-airline/vim-airline/wiki/FAQ +[28]: https://github.com/chrisbra/csv.vim +[29]: https://github.com/airblade/vim-gitgutter +[30]: https://github.com/mhinz/vim-signify +[31]: https://github.com/jmcantrell/vim-virtualenv +[32]: https://github.com/chriskempson/base16-vim +[33]: https://github.com/vim-airline/vim-airline/wiki/Test-Plan +[34]: http://eclim.org +[35]: https://github.com/edkolev/tmuxline.vim +[36]: https://github.com/edkolev/promptline.vim +[37]: https://github.com/gcmt/taboo.vim +[38]: https://github.com/vim-ctrlspace/vim-ctrlspace +[39]: https://github.com/tomtom/quickfixsigns_vim +[40]: https://github.com/junegunn/vim-plug +[41]: https://github.com/bling +[42]: https://github.com/chrisbra +[43]: https://github.com/vim-airline/vim-airline/wiki/Becoming-a-Maintainer +[44]: https://github.com/mhartington +[45]: https://github.com/vim-airline/vim-airline/commit/d7fd8ca649e441b3865551a325b10504cdf0711b +[46]: https://github.com/vim-airline/vim-airline#themes +[47]: https://github.com/mildred/vim-bufmru +[48]: https://github.com/ierton/xkb-switch +[49]: https://github.com/vovkasm/input-source-switcher +[50]: https://github.com/jreybert/vimagit +[51]: https://github.com/Shougo/denite.nvim +[52]: https://github.com/Shougo/dein.vim +[53]: https://github.com/lervag/vimtex +[54]: https://github.com/mox-mox/vim-localsearch +[55]: https://github.com/k-takata/minpac/ +[56]: https://github.com/vim-airline/vim-airline-themes/blob/master/autoload/airline/themes/dark_minimal.vim +[57]: https://github.com/autozimu/LanguageClient-neovim +[58]: https://github.com/vim-airline/vim-airline/blob/master/LICENSE +[59]: https://github.com/neoclide/coc-git diff --git a/_vim/.vim/plugged/vim-airline/Rakefile b/_vim/.vim/plugged/vim-airline/Rakefile new file mode 100644 index 0000000..741cfc2 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/Rakefile @@ -0,0 +1,14 @@ +#!/usr/bin/env rake + +task :default => [:test] + +task :ci => [:dump, :test] + +task :dump do + sh 'vim --version' +end + +task :test do + sh 'bundle exec vim-flavor test' +end + diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline.vim b/_vim/.vim/plugged/vim-airline/autoload/airline.vim new file mode 100644 index 0000000..f2e2016 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline.vim @@ -0,0 +1,285 @@ +" MIT License. Copyright (c) 2013-2020 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let g:airline_statusline_funcrefs = get(g:, 'airline_statusline_funcrefs', []) + +let s:sections = ['a','b','c','gutter','x','y','z', 'error', 'warning'] +let s:inactive_funcrefs = [] +let s:contexts = {} +let s:core_funcrefs = [ + \ function('airline#extensions#apply'), + \ function('airline#extensions#default#apply') ] + + +function! airline#add_statusline_func(name) + call airline#add_statusline_funcref(function(a:name)) +endfunction + +function! airline#add_statusline_funcref(function) + if index(g:airline_statusline_funcrefs, a:function) >= 0 + call airline#util#warning(printf('The airline statusline funcref "%s" has already been added.', string(a:function))) + return + endif + call add(g:airline_statusline_funcrefs, a:function) +endfunction + +function! airline#remove_statusline_func(name) + let i = index(g:airline_statusline_funcrefs, function(a:name)) + if i > -1 + call remove(g:airline_statusline_funcrefs, i) + endif +endfunction + +function! airline#add_inactive_statusline_func(name) + call add(s:inactive_funcrefs, function(a:name)) +endfunction + +function! airline#load_theme() + let g:airline_theme = get(g:, 'airline_theme', 'dark') + if exists('*airline#themes#{g:airline_theme}#refresh') + call airline#themes#{g:airline_theme}#refresh() + endif + + let palette = g:airline#themes#{g:airline_theme}#palette + call airline#themes#patch(palette) + + if exists('g:airline_theme_patch_func') + let Fn = function(g:airline_theme_patch_func) + call Fn(palette) + endif + + call airline#highlighter#load_theme() + call airline#extensions#load_theme() + call airline#update_statusline() +endfunction + +" Load an airline theme +function! airline#switch_theme(name, ...) + let silent = get(a:000, '0', 0) + " get all available themes + let themes = airline#util#themes('') + let err = 0 + try + if index(themes, a:name) == -1 + " Theme not available + if !silent + call airline#util#warning(printf('The specified theme "%s" cannot be found.', a:name)) + endif + throw "not-found" + let err = 1 + else + exe "ru autoload/airline/themes/". a:name. ".vim" + let g:airline_theme = a:name + endif + catch /^Vim/ + " catch only Vim errors, not "not-found" + call airline#util#warning(printf('There is an error in theme "%s".', a:name)) + if &vbs + call airline#util#warning(v:exception) + endif + let err = 1 + endtry + + if err + if exists('g:airline_theme') + return + else + let g:airline_theme = 'dark' + endif + endif + + unlet! w:airline_lastmode + call airline#load_theme() + + call airline#util#doautocmd('AirlineAfterTheme') + + " this is required to prevent clobbering the startup info message, i don't know why... + call airline#check_mode(winnr()) +endfunction + +" Try to load the right theme for the current colorscheme +function! airline#switch_matching_theme() + if exists('g:colors_name') + let existing = g:airline_theme + let theme = tr(tolower(g:colors_name), '-', '_') + try + call airline#switch_theme(theme, 1) + return 1 + catch + for map in items(g:airline_theme_map) + if match(g:colors_name, map[0]) > -1 + try + call airline#switch_theme(map[1], 1) + catch + call airline#switch_theme(existing) + endtry + return 1 + endif + endfor + endtry + endif + return 0 +endfunction + +" Update the statusline +function! airline#update_statusline() + if airline#util#stl_disabled(winnr()) + return + endif + let range = filter(range(1, winnr('$')), 'v:val != winnr()') + " create inactive statusline + call airline#update_statusline_inactive(range) + + unlet! w:airline_render_left w:airline_render_right + exe 'unlet! ' 'w:airline_section_'. join(s:sections, ' w:airline_section_') + + " Now create the active statusline + let w:airline_active = 1 + let context = { 'winnr': winnr(), 'active': 1, 'bufnr': winbufnr(winnr()) } + call s:invoke_funcrefs(context, g:airline_statusline_funcrefs) +endfunction + +" Function to be called to make all statuslines inactive +" Triggered on FocusLost autocommand +function! airline#update_statusline_focuslost() + if get(g:, 'airline_focuslost_inactive', 0) + let bufnr=bufnr('%') + call airline#highlighter#highlight_modified_inactive(bufnr) + call airline#highlighter#highlight(['inactive'], bufnr) + call airline#update_statusline_inactive(range(1, winnr('$'))) + endif +endfunction + +" Function to draw inactive statuslines for inactive windows +function! airline#update_statusline_inactive(range) + if airline#util#stl_disabled(winnr()) + return + endif + for nr in a:range + if airline#util#stl_disabled(nr) + continue + endif + call setwinvar(nr, 'airline_active', 0) + let context = { 'winnr': nr, 'active': 0, 'bufnr': winbufnr(nr) } + if get(g:, 'airline_inactive_alt_sep', 0) + call extend(context, { + \ 'left_sep': g:airline_left_alt_sep, + \ 'right_sep': g:airline_right_alt_sep }, 'keep') + endif + call s:invoke_funcrefs(context, s:inactive_funcrefs) + endfor +endfunction + +" Gather output from all funcrefs which will later be returned by the +" airline#statusline() function +function! s:invoke_funcrefs(context, funcrefs) + let builder = airline#builder#new(a:context) + let err = airline#util#exec_funcrefs(a:funcrefs + s:core_funcrefs, builder, a:context) + if err == 1 + let a:context.line = builder.build() + let s:contexts[a:context.winnr] = a:context + let option = get(g:, 'airline_statusline_ontop', 0) ? '&tabline' : '&statusline' + call setwinvar(a:context.winnr, option, '%!airline#statusline('.a:context.winnr.')') + endif +endfunction + +" Main statusline function per window +" will be set to the statusline option +function! airline#statusline(winnr) + if has_key(s:contexts, a:winnr) + return '%{airline#check_mode('.a:winnr.')}'.s:contexts[a:winnr].line + endif + " in rare circumstances this happens...see #276 + return '' +endfunction + +" Check if mode has changed +function! airline#check_mode(winnr) + if !has_key(s:contexts, a:winnr) + return '' + endif + let context = s:contexts[a:winnr] + + if get(w:, 'airline_active', 1) + let l:m = mode(1) + if l:m ==# "i" + let l:mode = ['insert'] + elseif l:m[0] ==# "i" + let l:mode = ['insert'] + elseif l:m ==# "Rv" + let l:mode =['replace'] + elseif l:m[0] ==# "R" + let l:mode = ['replace'] + elseif l:m[0] =~# '\v(v|V||s|S|)' + let l:mode = ['visual'] + elseif l:m ==# "t" + let l:mode = ['terminal'] + elseif l:m[0] ==# "c" + let l:mode = ['commandline'] + elseif l:m ==# "no" " does not work, most likely, Vim does not refresh the statusline in OP mode + let l:mode = ['normal'] + elseif l:m[0:1] ==# 'ni' + let l:mode = ['normal'] + let l:m = 'ni' + else + let l:mode = ['normal'] + endif + if exists("*VMInfos") && !empty(VMInfos()) + " Vim plugin Multiple Cursors https://github.com/mg979/vim-visual-multi + let l:m = 'multi' + endif + if index(['Rv', 'no', 'ni', 'ix', 'ic', 'multi'], l:m) == -1 + let l:m = l:m[0] + endif + let w:airline_current_mode = get(g:airline_mode_map, l:m, l:m) + else + let l:mode = ['inactive'] + let w:airline_current_mode = get(g:airline_mode_map, '__') + endif + + if g:airline_detect_modified && &modified + call add(l:mode, 'modified') + endif + + if g:airline_detect_paste && &paste + call add(l:mode, 'paste') + endif + + if g:airline_detect_crypt && exists("+key") && !empty(&key) + call add(l:mode, 'crypt') + endif + + if g:airline_detect_spell && &spell + call add(l:mode, 'spell') + endif + + if &readonly || ! &modifiable + call add(l:mode, 'readonly') + endif + + let mode_string = join(l:mode) + if get(w:, 'airline_lastmode', '') != mode_string + call airline#highlighter#highlight_modified_inactive(context.bufnr) + call airline#highlighter#highlight(l:mode, context.bufnr) + call airline#util#doautocmd('AirlineModeChanged') + let w:airline_lastmode = mode_string + endif + + return '' +endfunction + +function! airline#update_tabline() + if get(g:, 'airline_statusline_ontop', 0) + call airline#extensions#tabline#redraw() + endif +endfunction + +function! airline#mode_changed() + " airline#visual_active + " Boolean: for when to get visual wordcount + " needed for the wordcount extension + let g:airline#visual_active = (mode() =~? '[vs]') + call airline#update_tabline() +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/async.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/async.vim new file mode 100644 index 0000000..8b1678d --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/async.vim @@ -0,0 +1,379 @@ +" MIT License. Copyright (c) 2013-2020 Christian Brabandt et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:untracked_jobs = {} +let s:mq_jobs = {} +let s:po_jobs = {} +let s:clean_jobs = {} + +" Generic functions handling on exit event of the various async functions +function! s:untracked_output(dict, buf) + if a:buf =~? ('^'. a:dict.cfg['untracked_mark']) + let a:dict.cfg.untracked[a:dict.file] = get(g:, 'airline#extensions#branch#notexists', g:airline_symbols.notexists) + else + let a:dict.cfg.untracked[a:dict.file] = '' + endif +endfunction + +" also called from branch extension (for non-async vims) +function! airline#async#mq_output(buf, file) + let buf=a:buf + if !empty(a:buf) + if a:buf =~# 'no patches applied' || + \ a:buf =~# "unknown command 'qtop'" || + \ a:buf =~# "abort" + let buf = '' + elseif exists("b:mq") && b:mq isnot# buf + " make sure, statusline is updated + unlet! b:airline_head + endif + let b:mq = buf + endif + if has_key(s:mq_jobs, a:file) + call remove(s:mq_jobs, a:file) + endif +endfunction + +function! s:po_output(buf, file) + if !empty(a:buf) + let b:airline_po_stats = printf("%s", a:buf) + else + let b:airline_po_stats = '' + endif + if has_key(s:po_jobs, a:file) + call remove(s:po_jobs, a:file) + endif +endfunction + +function! s:valid_dir(dir) + if empty(a:dir) || !isdirectory(a:dir) + return getcwd() + endif + return a:dir +endfunction + +function! airline#async#vcs_untracked(config, file, vcs) + if g:airline#init#vim_async + " Vim 8 with async support + noa call airline#async#vim_vcs_untracked(a:config, a:file) + else + " nvim async or vim without job-feature + noa call airline#async#nvim_vcs_untracked(a:config, a:file, a:vcs) + endif +endfunction + +function! s:set_clean_variables(file, vcs, val) + let var=getbufvar(fnameescape(a:file), 'buffer_vcs_config', {}) + if has_key(var, a:vcs) && has_key(var[a:vcs], 'dirty') && + \ type(getbufvar(fnameescape(a:file), 'buffer_vcs_config')) == type({}) + let var[a:vcs].dirty=a:val + try + call setbufvar(fnameescape(a:file), 'buffer_vcs_config', var) + unlet! b:airline_head + catch + endtry + endif +endfunction + +function! s:set_clean_jobs_variable(vcs, file, id) + if !has_key(s:clean_jobs, a:vcs) + let s:clean_jobs[a:vcs] = {} + endif + let s:clean_jobs[a:vcs][a:file]=a:id +endfunction + +function! s:on_exit_clean(...) dict abort + let buf=self.buf + call s:set_clean_variables(self.file, self.vcs, !empty(buf)) + if has_key(get(s:clean_jobs, self.vcs, {}), self.file) + call remove(s:clean_jobs[self.vcs], self.file) + endif +endfunction + +function! airline#async#vcs_clean(cmd, file, vcs) + if g:airline#init#vim_async + " Vim 8 with async support + noa call airline#async#vim_vcs_clean(a:cmd, a:file, a:vcs) + elseif has("nvim") + " nvim async + noa call airline#async#nvim_vcs_clean(a:cmd, a:file, a:vcs) + else + " Vim pre 8 using system() + call airline#async#vim7_vcs_clean(a:cmd, a:file, a:vcs) + endif +endfunction + +if v:version >= 800 && has("job") + " Vim 8.0 with Job feature + " TODO: Check if we need the cwd option for the job_start() functions + " (only works starting with Vim 8.0.0902) + + function! s:on_stdout(channel, msg) dict abort + let self.buf .= a:msg + endfunction + + function! s:on_exit_mq(channel) dict abort + call airline#async#mq_output(self.buf, self.file) + endfunction + + function! s:on_exit_untracked(channel) dict abort + call s:untracked_output(self, self.buf) + if has_key(s:untracked_jobs, self.file) + call remove(s:untracked_jobs, self.file) + endif + endfunction + + function! s:on_exit_po(channel) dict abort + call s:po_output(self.buf, self.file) + call airline#extensions#po#shorten() + endfunction + + function! airline#async#get_mq_async(cmd, file) + if g:airline#init#is_windows && &shell =~ 'cmd\|powershell' + let cmd = a:cmd + else + let cmd = [&shell, &shellcmdflag, a:cmd] + endif + + let options = {'cmd': a:cmd, 'buf': '', 'file': a:file} + if has_key(s:mq_jobs, a:file) + if job_status(get(s:mq_jobs, a:file)) == 'run' + return + elseif has_key(s:mq_jobs, a:file) + call remove(s:mq_jobs, a:file) + endif + endif + let id = job_start(cmd, { + \ 'err_io': 'out', + \ 'out_cb': function('s:on_stdout', options), + \ 'close_cb': function('s:on_exit_mq', options)}) + let s:mq_jobs[a:file] = id + endfunction + + function! airline#async#get_msgfmt_stat(cmd, file) + if g:airline#init#is_windows || !executable('msgfmt') + " no msgfmt on windows? + return + else + let cmd = ['sh', '-c', a:cmd. shellescape(a:file)] + endif + + let options = {'buf': '', 'file': a:file} + if has_key(s:po_jobs, a:file) + if job_status(get(s:po_jobs, a:file)) == 'run' + return + elseif has_key(s:po_jobs, a:file) + call remove(s:po_jobs, a:file) + endif + endif + let id = job_start(cmd, { + \ 'err_io': 'out', + \ 'out_cb': function('s:on_stdout', options), + \ 'close_cb': function('s:on_exit_po', options)}) + let s:po_jobs[a:file] = id + endfunction + + function! airline#async#vim_vcs_clean(cmd, file, vcs) + if g:airline#init#is_windows && &shell =~ 'cmd\|powershell' + let cmd = a:cmd + else + let cmd = [&shell, &shellcmdflag, a:cmd] + endif + + let options = {'buf': '', 'vcs': a:vcs, 'file': a:file} + let jobs = get(s:clean_jobs, a:vcs, {}) + if has_key(jobs, a:file) + if job_status(get(jobs, a:file)) == 'run' + return + elseif has_key(jobs, a:file) + " still running + return + " jobs dict should be cleaned on exit, so not needed here + " call remove(jobs, a:file) + endif + endif + let id = job_start(cmd, { + \ 'err_io': 'null', + \ 'out_cb': function('s:on_stdout', options), + \ 'close_cb': function('s:on_exit_clean', options)}) + call s:set_clean_jobs_variable(a:vcs, a:file, id) + endfunction + + function! airline#async#vim_vcs_untracked(config, file) + if g:airline#init#is_windows && &shell =~ 'cmd\|powershell' + let cmd = a:config['cmd'] . shellescape(a:file) + else + let cmd = [&shell, &shellcmdflag, a:config['cmd'] . shellescape(a:file)] + endif + + let options = {'cfg': a:config, 'buf': '', 'file': a:file} + if has_key(s:untracked_jobs, a:file) + if job_status(get(s:untracked_jobs, a:file)) == 'run' + return + elseif has_key(s:untracked_jobs, a:file) + call remove(s:untracked_jobs, a:file) + endif + endif + let id = job_start(cmd, { + \ 'err_io': 'out', + \ 'out_cb': function('s:on_stdout', options), + \ 'close_cb': function('s:on_exit_untracked', options)}) + let s:untracked_jobs[a:file] = id + endfunction + +elseif has("nvim") + " NVim specific functions + + function! s:nvim_output_handler(job_id, data, event) dict + if a:event == 'stdout' || a:event == 'stderr' + let self.buf .= join(a:data) + endif + endfunction + + function! s:nvim_untracked_job_handler(job_id, data, event) dict + if a:event == 'exit' + call s:untracked_output(self, self.buf) + if has_key(s:untracked_jobs, self.file) + call remove(s:untracked_jobs, self.file) + endif + endif + endfunction + + function! s:nvim_mq_job_handler(job_id, data, event) dict + if a:event == 'exit' + call airline#async#mq_output(self.buf, self.file) + endif + endfunction + + function! s:nvim_po_job_handler(job_id, data, event) dict + if a:event == 'exit' + call s:po_output(self.buf, self.file) + call airline#extensions#po#shorten() + endif + endfunction + + function! airline#async#nvim_get_mq_async(cmd, file) + let config = { + \ 'buf': '', + \ 'file': a:file, + \ 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h')), + \ 'on_stdout': function('s:nvim_output_handler'), + \ 'on_stderr': function('s:nvim_output_handler'), + \ 'on_exit': function('s:nvim_mq_job_handler') + \ } + if g:airline#init#is_windows && &shell =~ 'cmd\|powershell' + let cmd = a:cmd + else + let cmd = [&shell, &shellcmdflag, a:cmd] + endif + + if has_key(s:mq_jobs, a:file) + call remove(s:mq_jobs, a:file) + endif + let id = jobstart(cmd, config) + let s:mq_jobs[a:file] = id + endfunction + + function! airline#async#nvim_get_msgfmt_stat(cmd, file) + let config = { + \ 'buf': '', + \ 'file': a:file, + \ 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h')), + \ 'on_stdout': function('s:nvim_output_handler'), + \ 'on_stderr': function('s:nvim_output_handler'), + \ 'on_exit': function('s:nvim_po_job_handler') + \ } + if g:airline#init#is_windows && &shell =~ 'cmd\|powershell' + " no msgfmt on windows? + return + else + let cmd = [&shell, &shellcmdflag, a:cmd. shellescape(a:file)] + endif + + if has_key(s:po_jobs, a:file) + call remove(s:po_jobs, a:file) + endif + let id = jobstart(cmd, config) + let s:po_jobs[a:file] = id + endfunction + + function! airline#async#nvim_vcs_clean(cmd, file, vcs) + let config = { + \ 'buf': '', + \ 'vcs': a:vcs, + \ 'file': a:file, + \ 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h')), + \ 'on_stdout': function('s:nvim_output_handler'), + \ 'on_stderr': function('s:nvim_output_handler'), + \ 'on_exit': function('s:on_exit_clean')} + if g:airline#init#is_windows && &shell =~ 'cmd\|powershell' + let cmd = a:cmd + else + let cmd = [&shell, &shellcmdflag, a:cmd] + endif + + if !has_key(s:clean_jobs, a:vcs) + let s:clean_jobs[a:vcs] = {} + endif + if has_key(s:clean_jobs[a:vcs], a:file) + " still running + return + " jobs dict should be cleaned on exit, so not needed here + " call remove(s:clean_jobs[a:vcs], a:file) + endif + let id = jobstart(cmd, config) + call s:set_clean_jobs_variable(a:vcs, a:file, id) + endfunction + +endif + +" Should work in either Vim pre 8 or Nvim +function! airline#async#nvim_vcs_untracked(cfg, file, vcs) + let cmd = a:cfg.cmd . shellescape(a:file) + let id = -1 + let config = { + \ 'buf': '', + \ 'vcs': a:vcs, + \ 'cfg': a:cfg, + \ 'file': a:file, + \ 'cwd': s:valid_dir(fnamemodify(a:file, ':p:h')) + \ } + if has("nvim") + call extend(config, { + \ 'on_stdout': function('s:nvim_output_handler'), + \ 'on_exit': function('s:nvim_untracked_job_handler')}) + if has_key(s:untracked_jobs, config.file) + " still running + return + endif + try + let id = jobstart(cmd, config) + catch + " catch-all, jobstart() failed, fall back to system() + let id=-1 + endtry + let s:untracked_jobs[a:file] = id + endif + " vim without job feature or nvim jobstart failed + if id < 1 + let output=system(cmd) + call s:untracked_output(config, output) + call airline#extensions#branch#update_untracked_config(a:file, a:vcs) + endif +endfunction + +function! airline#async#vim7_vcs_clean(cmd, file, vcs) + " Vim pre 8, fallback using system() + " don't want to to see error messages + if g:airline#init#is_windows && &shell =~ 'cmd' + let cmd = a:cmd .' 2>nul' + elseif g:airline#init#is_windows && &shell =~ 'powerline' + let cmd = a:cmd .' 2> $null' + else + let cmd = a:cmd .' 2>/dev/null' + endif + let output=system(cmd) + call s:set_clean_variables(a:file, a:vcs, !empty(output)) +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/builder.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/builder.vim new file mode 100644 index 0000000..345297b --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/builder.vim @@ -0,0 +1,244 @@ +" MIT License. Copyright (c) 2013-2020 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:prototype = {} + +function! s:prototype.split(...) dict + call add(self._sections, ['|', a:0 ? a:1 : '%=']) +endfunction + +function! s:prototype.add_section_spaced(group, contents) dict + let spc = empty(a:contents) ? '' : g:airline_symbols.space + call self.add_section(a:group, spc.a:contents.spc) +endfunction + +function! s:prototype.add_section(group, contents) dict + call add(self._sections, [a:group, a:contents]) +endfunction + +function! s:prototype.add_raw(text) dict + call add(self._sections, ['', a:text]) +endfunction + +function! s:prototype.insert_section(group, contents, position) dict + call insert(self._sections, [a:group, a:contents], a:position) +endfunction + +function! s:prototype.insert_raw(text, position) dict + call insert(self._sections, ['', a:text], a:position) +endfunction + +function! s:prototype.get_position() dict + return len(self._sections) +endfunction + +function! airline#builder#get_prev_group(sections, i) + let x = a:i - 1 + while x >= 0 + let group = a:sections[x][0] + if group != '' && group != '|' + return group + endif + let x = x - 1 + endwhile + return '' +endfunction + +function! airline#builder#get_next_group(sections, i) + let x = a:i + 1 + let l = len(a:sections) + while x < l + let group = a:sections[x][0] + if group != '' && group != '|' + return group + endif + let x = x + 1 + endwhile + return '' +endfunction + +function! s:prototype.build() dict + let side = 1 + let line = '' + let i = 0 + let length = len(self._sections) + let split = 0 + let is_empty = 0 + let prev_group = '' + + while i < length + let section = self._sections[i] + let group = section[0] + let contents = section[1] + let pgroup = prev_group + let prev_group = airline#builder#get_prev_group(self._sections, i) + if group ==# 'airline_c' && &buftype ==# 'terminal' && self._context.active + let group = 'airline_term' + elseif group ==# 'airline_c' && !self._context.active && has_key(self._context, 'bufnr') + let group = 'airline_c'. self._context.bufnr + elseif prev_group ==# 'airline_c' && !self._context.active && has_key(self._context, 'bufnr') + let prev_group = 'airline_c'. self._context.bufnr + endif + if is_empty + let prev_group = pgroup + endif + let is_empty = s:section_is_empty(self, contents) + + if is_empty + " need to fix highlighting groups, since we + " have skipped a section, we actually need + " the previous previous group and so the + " seperator goes from the previous previous group + " to the current group + let pgroup = group + endif + + if group == '' + let line .= contents + elseif group == '|' + let side = 0 + let line .= contents + let split = 1 + else + if prev_group == '' + let line .= '%#'.group.'#' + elseif split + if !is_empty + let line .= s:get_transitioned_seperator(self, prev_group, group, side) + endif + let split = 0 + else + if !is_empty + let line .= s:get_seperator(self, prev_group, group, side) + endif + endif + let line .= is_empty ? '' : s:get_accented_line(self, group, contents) + endif + + let i = i + 1 + endwhile + + if !self._context.active + "let line = substitute(line, '%#airline_c#', '%#airline_c'.self._context.bufnr.'#', '') + let line = substitute(line, '%#.\{-}\ze#', '\0_inactive', 'g') + endif + return line +endfunction + +function! airline#builder#should_change_group(group1, group2) + if a:group1 == a:group2 + return 0 + endif + let color1 = airline#highlighter#get_highlight(a:group1) + let color2 = airline#highlighter#get_highlight(a:group2) + if g:airline_gui_mode ==# 'gui' + return color1[1] != color2[1] || color1[0] != color2[0] + else + return color1[3] != color2[3] || color1[2] != color2[2] + endif +endfunction + +function! s:get_transitioned_seperator(self, prev_group, group, side) + let line = '' + if get(a:self._context, 'tabline', 0) && get(g:, 'airline#extensions#tabline#alt_sep', 0) && a:group ==# 'airline_tabsel' && a:side + call airline#highlighter#add_separator(a:prev_group, a:group, 0) + let line .= '%#'.a:prev_group.'_to_'.a:group.'#' + let line .= a:self._context.right_sep.'%#'.a:group.'#' + else + call airline#highlighter#add_separator(a:prev_group, a:group, a:side) + let line .= '%#'.a:prev_group.'_to_'.a:group.'#' + let line .= a:side ? a:self._context.left_sep : a:self._context.right_sep + let line .= '%#'.a:group.'#' + endif + return line +endfunction + +function! s:get_seperator(self, prev_group, group, side) + if airline#builder#should_change_group(a:prev_group, a:group) + return s:get_transitioned_seperator(a:self, a:prev_group, a:group, a:side) + else + return a:side ? a:self._context.left_alt_sep : a:self._context.right_alt_sep + endif +endfunction + +function! s:get_accented_line(self, group, contents) + if a:self._context.active + " active window + let contents = [] + let content_parts = split(a:contents, '__accent') + for cpart in content_parts + let accent = matchstr(cpart, '_\zs[^#]*\ze') + call add(contents, cpart) + endfor + let line = join(contents, a:group) + let line = substitute(line, '__restore__', a:group, 'g') + else + " inactive window + let line = substitute(a:contents, '%#__accent[^#]*#', '', 'g') + let line = substitute(line, '%#__restore__#', '', 'g') + endif + return line +endfunction + +function! s:section_is_empty(self, content) + let start=1 + + " do not check for inactive windows or the tabline + if a:self._context.active == 0 + return 0 + elseif get(a:self._context, 'tabline', 0) + return 0 + endif + + " only check, if airline#skip_empty_sections == 1 + if get(g:, 'airline_skip_empty_sections', 0) == 0 + return 0 + endif + + " only check, if airline#skip_empty_sections == 1 + if get(w:, 'airline_skip_empty_sections', -1) == 0 + return 0 + endif + " assume accents sections to be never empty + " (avoides, that on startup the mode message becomes empty) + if match(a:content, '%#__accent_[^#]*#.*__restore__#') > -1 + return 0 + endif + if empty(a:content) + return 1 + endif + let list=matchlist(a:content, '%{\zs.\{-}\ze}', 1, start) + if empty(list) + return 0 " no function in statusline text + endif + while len(list) > 0 + let expr = list[0] + try + " catch all exceptions, just in case + if !empty(eval(expr)) + return 0 + endif + catch + return 0 + endtry + let start += 1 + let list=matchlist(a:content, '%{\zs.\{-}\ze}', 1, start) + endw + return 1 +endfunction + +function! airline#builder#new(context) + let builder = copy(s:prototype) + let builder._context = a:context + let builder._sections = [] + + call extend(builder._context, { + \ 'left_sep': g:airline_left_sep, + \ 'left_alt_sep': g:airline_left_alt_sep, + \ 'right_sep': g:airline_right_sep, + \ 'right_alt_sep': g:airline_right_alt_sep, + \ }, 'keep') + return builder +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/debug.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/debug.vim new file mode 100644 index 0000000..7cf6108 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/debug.vim @@ -0,0 +1,51 @@ +" MIT License. Copyright (c) 2013-2020 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +function! airline#debug#profile1() + profile start airline-profile-switch.log + profile func * + profile file * + split + for i in range(1, 1000) + wincmd w + redrawstatus + endfor + profile pause + noautocmd qall! +endfunction + +function! airline#debug#profile2() + profile start airline-profile-cursor.log + profile func * + profile file * + edit blank + call setline(1, 'all your base are belong to us') + call setline(2, 'all your base are belong to us') + let positions = [[1,2], [2,2], [1,2], [1,1]] + for i in range(1, 1000) + for pos in positions + call cursor(pos[0], pos[1]) + redrawstatus + endfor + endfor + profile pause + noautocmd qall! +endfunction + +function! airline#debug#profile3() + profile start airline-profile-mode.log + profile func * + profile file * + + for i in range(1000) + startinsert + redrawstatus + stopinsert + redrawstatus + endfor + + profile pause + noautocmd qall! +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions.vim new file mode 100644 index 0000000..99b701f --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions.vim @@ -0,0 +1,451 @@ +" MIT License. Copyright (c) 2013-2020 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:loaded_ext = [] +let s:ext = {} +let s:ext._theme_funcrefs = [] + +function! s:ext.add_statusline_func(name) dict + call airline#add_statusline_func(a:name) +endfunction +function! s:ext.add_statusline_funcref(function) dict + call airline#add_statusline_funcref(a:function) +endfunction +function! s:ext.add_inactive_statusline_func(name) dict + call airline#add_inactive_statusline_func(a:name) +endfunction +function! s:ext.add_theme_func(name) dict + call add(self._theme_funcrefs, function(a:name)) +endfunction + +let s:script_path = tolower(resolve(expand(':p:h'))) + +let s:filetype_overrides = { + \ 'defx': ['defx', '%{b:defx.paths[0]}'], + \ 'fugitive': ['fugitive', '%{airline#util#wrap(airline#extensions#branch#get_head(),80)}'], + \ 'gundo': [ 'Gundo', '' ], + \ 'help': [ 'Help', '%f' ], + \ 'minibufexpl': [ 'MiniBufExplorer', '' ], + \ 'startify': [ 'startify', '' ], + \ 'vim-plug': [ 'Plugins', '' ], + \ 'vimfiler': [ 'vimfiler', '%{vimfiler#get_status_string()}' ], + \ 'vimshell': ['vimshell','%{vimshell#get_status_string()}'], + \ 'vaffle' : [ 'Vaffle', '' ], + \ } + +if get(g:, 'airline#extensions#nerdtree_statusline', 1) + let s:filetype_overrides['nerdtree'] = [ get(g:, 'NERDTreeStatusline', 'NERD'), '' ] +else + let s:filetype_overrides['nerdtree'] = ['NERDTree', ''] +endif + +let s:filetype_regex_overrides = {} + +function! s:check_defined_section(name) + if !exists('w:airline_section_{a:name}') + let w:airline_section_{a:name} = g:airline_section_{a:name} + endif +endfunction + +function! airline#extensions#append_to_section(name, value) + call check_defined_section(a:name) + let w:airline_section_{a:name} .= a:value +endfunction + +function! airline#extensions#prepend_to_section(name, value) + call check_defined_section(a:name) + let w:airline_section_{a:name} = a:value . w:airline_section_{a:name} +endfunction + +function! airline#extensions#apply_left_override(section1, section2) + let w:airline_section_a = a:section1 + let w:airline_section_b = a:section2 + let w:airline_section_c = airline#section#create(['readonly']) + let w:airline_render_left = 1 + let w:airline_render_right = 0 +endfunction + +function! airline#extensions#apply(...) + let filetype_overrides = get(s:, 'filetype_overrides', {}) + call extend(filetype_overrides, get(g:, 'airline_filetype_overrides', {}), 'force') + + if s:is_excluded_window() + return -1 + endif + + if &buftype == 'terminal' + let w:airline_section_x = '' + let w:airline_section_y = '' + endif + + if &previewwindow && empty(get(w:, 'airline_section_a', '')) + let w:airline_section_a = 'Preview' + let w:airline_section_b = '' + let w:airline_section_c = bufname(winbufnr(winnr())) + endif + + if has_key(filetype_overrides, &ft) && + \ ((&filetype == 'help' && &buftype == 'help') || &filetype !~ 'help') + " for help files only override it, if the buftype is also of type 'help', + " else it would trigger when editing Vim help files + let args = filetype_overrides[&ft] + call airline#extensions#apply_left_override(args[0], args[1]) + endif + + if &buftype == 'help' + let w:airline_section_x = '' + let w:airline_section_y = '' + let w:airline_render_right = 1 + endif + + for item in items(s:filetype_regex_overrides) + if match(&ft, item[0]) >= 0 + call airline#extensions#apply_left_override(item[1][0], item[1][1]) + endif + endfor +endfunction + +function! s:is_excluded_window() + for matchft in g:airline_exclude_filetypes + if matchft ==# &ft + return 1 + endif + endfor + + for matchw in g:airline_exclude_filenames + if matchstr(expand('%'), matchw) ==# matchw + return 1 + endif + endfor + + if g:airline_exclude_preview && &previewwindow + return 1 + endif + + return 0 +endfunction + +function! airline#extensions#load_theme() + call airline#util#exec_funcrefs(s:ext._theme_funcrefs, g:airline#themes#{g:airline_theme}#palette) +endfunction + +function! airline#extensions#load() + let s:loaded_ext = [] + + if exists('g:airline_extensions') + for ext in g:airline_extensions + try + call airline#extensions#{ext}#init(s:ext) + catch /^Vim\%((\a\+)\)\=:E117/ " E117, function does not exist + call airline#util#warning("Extension '".ext."' not installed, ignoring!") + continue + endtry + call add(s:loaded_ext, ext) + endfor + return + endif + + call airline#extensions#quickfix#init(s:ext) + call add(s:loaded_ext, 'quickfix') + + if get(g:, 'loaded_unite', 0) + call airline#extensions#unite#init(s:ext) + call add(s:loaded_ext, 'unite') + endif + + if get(g:, 'loaded_denite', 0) + call airline#extensions#denite#init(s:ext) + call add(s:loaded_ext, 'denite') + endif + + if get(g:, 'loaded_gina', 0) && get(g:, 'airline#extensions#gina#enabled', 1) + call airline#extensions#gina#init(s:ext) + call add(s:loaded_ext, 'gina') + endif + + if exists(':NetrwSettings') + call airline#extensions#netrw#init(s:ext) + call add(s:loaded_ext, 'netrw') + endif + + if (has("terminal") || has('nvim')) && + \ get(g:, 'airline#extensions#term#enabled', 1) + call airline#extensions#term#init(s:ext) + call add(s:loaded_ext, 'term') + endif + + if get(g:, 'airline#extensions#ycm#enabled', 0) && exists('g:loaded_youcompleteme') + call airline#extensions#ycm#init(s:ext) + call add(s:loaded_ext, 'ycm') + endif + + if get(g:, 'loaded_vimfiler', 0) + let g:vimfiler_force_overwrite_statusline = 0 + endif + + if get(g:, 'loaded_ctrlp', 0) + call airline#extensions#ctrlp#init(s:ext) + call add(s:loaded_ext, 'ctrlp') + endif + + if get(g:, 'loaded_localsearch', 0) + call airline#extensions#localsearch#init(s:ext) + call add(s:loaded_ext, 'localsearch') + endif + + if get(g:, 'CtrlSpaceLoaded', 0) + call airline#extensions#ctrlspace#init(s:ext) + call add(s:loaded_ext, 'ctrlspace') + endif + + if get(g:, 'command_t_loaded', 0) + call airline#extensions#commandt#init(s:ext) + call add(s:loaded_ext, 'commandt') + endif + + if exists(':UndotreeToggle') + call airline#extensions#undotree#init(s:ext) + call add(s:loaded_ext, 'undotree') + endif + + if get(g:, 'airline#extensions#hunks#enabled', 1) + \ && (exists('g:loaded_signify') + \ || exists('g:loaded_gitgutter') + \ || exists('g:loaded_changes') + \ || exists('g:loaded_quickfixsigns') + \ || exists(':CocCommand')) + call airline#extensions#hunks#init(s:ext) + call add(s:loaded_ext, 'hunks') + endif + + if get(g:, 'airline#extensions#vimagit#enabled', 1) + \ && (exists('g:loaded_magit')) + call airline#extensions#vimagit#init(s:ext) + call add(s:loaded_ext, 'vimagit') + endif + + if get(g:, 'airline#extensions#tagbar#enabled', 1) + \ && exists(':TagbarToggle') + call airline#extensions#tagbar#init(s:ext) + call add(s:loaded_ext, 'tagbar') + endif + + if get(g:, 'airline#extensions#vista#enabled', 1) + \ && exists(':Vista') + call airline#extensions#vista#init(s:ext) + call add(s:loaded_ext, 'vista') + endif + + if get(g:, 'airline#extensions#bookmark#enabled', 1) + \ && exists(':BookmarkToggle') + call airline#extensions#bookmark#init(s:ext) + call add(s:loaded_ext, 'bookmark') + endif + + if get(g:, 'airline#extensions#csv#enabled', 1) + \ && (get(g:, 'loaded_csv', 0) || exists(':Table')) + call airline#extensions#csv#init(s:ext) + call add(s:loaded_ext, 'csv') + endif + + if get(g:, 'airline#extensions#zoomwintab#enabled', 0) + call airline#extensions#zoomwintab#init(s:ext) + call add(s:loaded_ext, 'zoomwintab') + endif + + if exists(':VimShell') + let s:filetype_regex_overrides['^int-'] = ['vimshell','%{substitute(&ft, "int-", "", "")}'] + endif + + if get(g:, 'airline#extensions#branch#enabled', 1) && ( + \ airline#util#has_fugitive() || + \ airline#util#has_gina() || + \ airline#util#has_lawrencium() || + \ airline#util#has_vcscommand() || + \ airline#util#has_custom_scm()) + call airline#extensions#branch#init(s:ext) + call add(s:loaded_ext, 'branch') + endif + + if get(g:, 'airline#extensions#bufferline#enabled', 1) + \ && exists('*bufferline#get_status_string') + call airline#extensions#bufferline#init(s:ext) + call add(s:loaded_ext, 'bufferline') + endif + + if get(g:, 'airline#extensions#fugitiveline#enabled', 1) + \ && airline#util#has_fugitive() + \ && index(s:loaded_ext, 'bufferline') == -1 + call airline#extensions#fugitiveline#init(s:ext) + call add(s:loaded_ext, 'fugitiveline') + endif + + " NOTE: This means that if both virtualenv and poetv are enabled and + " available, poetv silently takes precedence and the virtualenv + " extension won't be initialized. Since both extensions currently just + " add a virtualenv identifier section to the airline, this seems + " acceptable. + if (get(g:, 'airline#extensions#poetv#enabled', 1) && (exists(':PoetvActivate'))) + call airline#extensions#poetv#init(s:ext) + call add(s:loaded_ext, 'poetv') + elseif (get(g:, 'airline#extensions#virtualenv#enabled', 1) && (exists(':VirtualEnvList'))) + call airline#extensions#virtualenv#init(s:ext) + call add(s:loaded_ext, 'virtualenv') + elseif (get(g:, 'airline#extensions#poetv#enabled', 1) && (isdirectory($VIRTUAL_ENV))) + call airline#extensions#poetv#init(s:ext) + call add(s:loaded_ext, 'poetv') + endif + + if (get(g:, 'airline#extensions#eclim#enabled', 1) && exists(':ProjectCreate')) + call airline#extensions#eclim#init(s:ext) + call add(s:loaded_ext, 'eclim') + endif + + if get(g:, 'airline#extensions#syntastic#enabled', 1) + \ && exists(':SyntasticCheck') + call airline#extensions#syntastic#init(s:ext) + call add(s:loaded_ext, 'syntastic') + endif + + if (get(g:, 'airline#extensions#ale#enabled', 1) && exists(':ALELint')) + call airline#extensions#ale#init(s:ext) + call add(s:loaded_ext, 'ale') + endif + + if (get(g:, 'airline#extensions#lsp#enabled', 1) && exists(':LspDeclaration')) + call airline#extensions#lsp#init(s:ext) + call add(s:loaded_ext, 'lsp') + endif + + if (get(g:, 'airline#extensions#coc#enabled', 1) && exists(':CocCommand')) + call airline#extensions#coc#init(s:ext) + call add(s:loaded_ext, 'coc') + endif + + if (get(g:, 'airline#extensions#languageclient#enabled', 1) && exists(':LanguageClientStart')) + call airline#extensions#languageclient#init(s:ext) + call add(s:loaded_ext, 'languageclient') + endif + + if get(g:, 'airline#extensions#whitespace#enabled', 1) + call airline#extensions#whitespace#init(s:ext) + call add(s:loaded_ext, 'whitespace') + endif + + if (get(g:, 'airline#extensions#neomake#enabled', 1) && exists(':Neomake')) + call airline#extensions#neomake#init(s:ext) + call add(s:loaded_ext, 'neomake') + endif + + if get(g:, 'airline#extensions#po#enabled', 1) && executable('msgfmt') + call airline#extensions#po#init(s:ext) + call add(s:loaded_ext, 'po') + endif + + if get(g:, 'airline#extensions#wordcount#enabled', 1) + call airline#extensions#wordcount#init(s:ext) + call add(s:loaded_ext, 'wordcount') + endif + + if get(g:, 'airline#extensions#tabline#enabled', 0) + call airline#extensions#tabline#init(s:ext) + call add(s:loaded_ext, 'tabline') + endif + + if get(g:, 'airline#extensions#tmuxline#enabled', 1) && exists(':Tmuxline') + call airline#extensions#tmuxline#init(s:ext) + call add(s:loaded_ext, 'tmuxline') + endif + + if get(g:, 'airline#extensions#promptline#enabled', 1) && exists(':PromptlineSnapshot') && len(get(g:, 'airline#extensions#promptline#snapshot_file', '')) + call airline#extensions#promptline#init(s:ext) + call add(s:loaded_ext, 'promptline') + endif + + if get(g:, 'airline#extensions#nrrwrgn#enabled', 1) && exists(':NR') == 2 + call airline#extensions#nrrwrgn#init(s:ext) + call add(s:loaded_ext, 'nrrwrgn') + endif + + if get(g:, 'airline#extensions#unicode#enabled', 1) && exists(':UnicodeTable') == 2 + call airline#extensions#unicode#init(s:ext) + call add(s:loaded_ext, 'unicode') + endif + + if (get(g:, 'airline#extensions#capslock#enabled', 1) && exists('*CapsLockStatusline')) + call airline#extensions#capslock#init(s:ext) + call add(s:loaded_ext, 'capslock') + endif + + if (get(g:, 'airline#extensions#gutentags#enabled', 1) && get(g:, 'loaded_gutentags', 0)) + call airline#extensions#gutentags#init(s:ext) + call add(s:loaded_ext, 'gutentags') + endif + + if (get(g:, 'airline#extensions#grepper#enabled', 1) && get(g:, 'loaded_grepper', 0)) + call airline#extensions#grepper#init(s:ext) + call add(s:loaded_ext, 'grepper') + endif + + if (get(g:, 'airline#extensions#xkblayout#enabled', 1) && exists('g:XkbSwitchLib')) + call airline#extensions#xkblayout#init(s:ext) + call add(s:loaded_ext, 'xkblayout') + endif + + if (get(g:, 'airline#extensions#keymap#enabled', 1) && has('keymap')) + call airline#extensions#keymap#init(s:ext) + call add(s:loaded_ext, 'keymap') + endif + + if (get(g:, 'airline#extensions#windowswap#enabled', 1) && get(g:, 'loaded_windowswap', 0)) + call airline#extensions#windowswap#init(s:ext) + call add(s:loaded_ext, 'windowswap') + endif + + if (get(g:, 'airline#extensions#obsession#enabled', 1) && exists('*ObsessionStatus')) + call airline#extensions#obsession#init(s:ext) + call add(s:loaded_ext, 'obsession') + endif + + if get(g:, 'airline#extensions#vimtex#enabled', 1) + runtime autoload/vimtex.vim + if exists('*vimtex#init') + call airline#extensions#vimtex#init(s:ext) + call add(s:loaded_ext, 'vimtex') + endif + endif + + if (get(g:, 'airline#extensions#cursormode#enabled', 0)) + call airline#extensions#cursormode#init(s:ext) + call add(s:loaded_ext, 'cursormode') + endif + + if !get(g:, 'airline#extensions#disable_rtp_load', 0) + " load all other extensions, which are not part of the default distribution. + " (autoload/airline/extensions/*.vim outside of our s:script_path). + for file in split(globpath(&rtp, "autoload/airline/extensions/*.vim"), "\n") + " we have to check both resolved and unresolved paths, since it's possible + " that they might not get resolved properly (see #187) + if stridx(tolower(resolve(fnamemodify(file, ':p'))), s:script_path) < 0 + \ && stridx(tolower(fnamemodify(file, ':p')), s:script_path) < 0 + let name = fnamemodify(file, ':t:r') + if !get(g:, 'airline#extensions#'.name.'#enabled', 1) || + \ index(s:loaded_ext, name) > -1 + continue + endif + try + call airline#extensions#{name}#init(s:ext) + " mark as external + call add(s:loaded_ext, name.'*') + catch + endtry + endif + endfor + endif +endfunction + +function! airline#extensions#get_loaded_extensions() + return s:loaded_ext +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/ale.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/ale.vim new file mode 100644 index 0000000..4b19bca --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/ale.vim @@ -0,0 +1,134 @@ +" MIT License. Copyright (c) 2013-2019 Bjorn Neergaard, w0rp et al. +" Plugin: https://github.com/dense-analysis/ale +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'loaded_ale_dont_use_this_in_other_plugins_please', 0) + finish +endif + +function! s:airline_ale_count(cnt, symbol) + return a:cnt ? a:symbol. a:cnt : '' +endfunction + +function! s:legacy_airline_ale_get_line_number(cnt, type) abort + " Before ALE introduced the FirstProblem API function, this is how + " airline would get the line numbers: + " 1. Get the whole loclist; 2. Filter it for the desired problem type. + " 3. Return the line number of the first element in the filtered list. + if a:cnt == 0 + return '' + endif + + let buffer = bufnr('') + let problem_type = (a:type ==# 'error') ? 'E' : 'W' + let problems = copy(ale#engine#GetLoclist(buffer)) + + call filter(problems, 'v:val.bufnr is buffer && v:val.type is# problem_type') + + if empty(problems) + return '' + endif + + let open_lnum_symbol = get(g:, 'airline#extensions#ale#open_lnum_symbol', '(L') + let close_lnum_symbol = get(g:, 'airline#extensions#ale#close_lnum_symbol', ')') + + return open_lnum_symbol . problems[0].lnum . close_lnum_symbol +endfunction + +function! s:new_airline_ale_get_line_number(cnt, type) abort + " The FirstProblem call in ALE is a far more efficient way + " of obtaining line number data. If the installed ALE supports + " it, we should use this method of getting line data. + if a:cnt == 0 + return '' + endif + let l:buffer = bufnr('') + + " Try to get the first error from ALE. + let l:result = ale#statusline#FirstProblem(l:buffer, a:type) + if empty(l:result) + " If there are no errors then try and check for style errors. + let l:result = ale#statusline#FirstProblem(l:buffer, 'style_' . a:type) + endif + + if empty(l:result) + return '' + endif + + let l:open_lnum_symbol = + \ get(g:, 'airline#extensions#ale#open_lnum_symbol', '(L') + let l:close_lnum_symbol = + \ get(g:, 'airline#extensions#ale#close_lnum_symbol', ')') + + return open_lnum_symbol . l:result.lnum . close_lnum_symbol +endfunction + +function! s:airline_ale_get_line_number(cnt, type) abort + " Use the new ALE statusline API function if it is available. + if exists("*ale#statusline#FirstProblem") + return s:new_airline_ale_get_line_number(a:cnt, a:type) + endif + + return s:legacy_airline_ale_get_line_number(a:cnt, a:type) +endfunction + +function! airline#extensions#ale#get(type) + if !exists(':ALELint') + return '' + endif + + let error_symbol = get(g:, 'airline#extensions#ale#error_symbol', 'E:') + let warning_symbol = get(g:, 'airline#extensions#ale#warning_symbol', 'W:') + let checking_symbol = get(g:, 'airline#extensions#ale#checking_symbol', '...') + let show_line_numbers = get(g:, 'airline#extensions#ale#show_line_numbers', 1) + + let is_err = a:type ==# 'error' + + if ale#engine#IsCheckingBuffer(bufnr('')) == 1 + return is_err ? '' : checking_symbol + endif + + let symbol = is_err ? error_symbol : warning_symbol + + let counts = ale#statusline#Count(bufnr('')) + if type(counts) == type({}) && has_key(counts, 'error') + " Use the current Dictionary format. + let errors = counts.error + counts.style_error + let num = is_err ? errors : counts.total - errors + else + " Use the old List format. + let num = is_err ? counts[0] : counts[1] + endif + + if show_line_numbers == 1 + return s:airline_ale_count(num, symbol) . airline_ale_get_line_number(num, a:type) + else + return s:airline_ale_count(num, symbol) + endif +endfunction + +function! airline#extensions#ale#get_warning() + return airline#extensions#ale#get('warning') +endfunction + +function! airline#extensions#ale#get_error() + return airline#extensions#ale#get('error') +endfunction + +function! airline#extensions#ale#init(ext) + call airline#parts#define_function('ale_error_count', 'airline#extensions#ale#get_error') + call airline#parts#define_function('ale_warning_count', 'airline#extensions#ale#get_warning') + augroup airline_ale + autocmd! + autocmd CursorHold,BufWritePost * call ale_refresh() + autocmd User ALEJobStarted,ALELintPost call ale_refresh() + augroup END +endfunction + +function! s:ale_refresh() + if get(g:, 'airline_skip_empty_sections', 0) + exe ':AirlineRefresh!' + endif +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/bookmark.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/bookmark.vim new file mode 100644 index 0000000..da0a55b --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/bookmark.vim @@ -0,0 +1,30 @@ +" MIT License. Copyright (c) 2019 Bjoern Petri +" Plugin: https://github.com/MattesGroeger/vim-bookmarks +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !exists(':BookmarkToggle') + finish +endif + +function! airline#extensions#bookmark#currentbookmark() + if get(w:, 'airline_active', 0) + let file = expand("%:p") + if file ==# "" + return + endif + + let current_line = line('.') + let has_bm = bm#has_bookmark_at_line(file, current_line) + let bm = has_bm ? bm#get_bookmark_by_line(file, current_line) : 0 + let annotation = has_bm ? bm['annotation'] : "" + + return annotation + endif + return '' +endfunction + +function! airline#extensions#bookmark#init(ext) + call airline#parts#define_function('bookmark', 'airline#extensions#bookmark#currentbookmark') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim new file mode 100644 index 0000000..9d9f263 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/branch.vim @@ -0,0 +1,349 @@ +" MIT License. Copyright (c) 2013-2020 Bailey Ling et al. +" Plugin: fugitive, gina, lawrencium and vcscommand +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +" s:vcs_config contains static configuration of VCSes and their status relative +" to the active file. +" 'branch' - The name of currently active branch. This field is empty iff it +" has not been initialized yet or the current file is not in +" an active branch. +" 'untracked' - Cache of untracked files represented as a dictionary with files +" as keys. A file has a not exists symbol set as its value if it +" is untracked. A file is present in this dictionary iff its +" status is considered up to date. +" 'untracked_mark' - used as regexp to test against the output of 'cmd' +let s:vcs_config = { +\ 'git': { +\ 'exe': 'git', +\ 'cmd': 'git status --porcelain -- ', +\ 'dirty': 'git status -uno --porcelain --ignore-submodules', +\ 'untracked_mark': '??', +\ 'exclude': '\.git', +\ 'update_branch': 's:update_git_branch', +\ 'display_branch': 's:display_git_branch', +\ 'branch': '', +\ 'untracked': {}, +\ }, +\ 'mercurial': { +\ 'exe': 'hg', +\ 'cmd': 'hg status -u -- ', +\ 'dirty': 'hg status -mard', +\ 'untracked_mark': '?', +\ 'exclude': '\.hg', +\ 'update_branch': 's:update_hg_branch', +\ 'display_branch': 's:display_hg_branch', +\ 'branch': '', +\ 'untracked': {}, +\ }, +\} + +" Initializes b:buffer_vcs_config. b:buffer_vcs_config caches the branch and +" untracked status of the file in the buffer. Caching those fields is necessary, +" because s:vcs_config may be updated asynchronously and s:vcs_config fields may +" be invalid during those updates. b:buffer_vcs_config fields are updated +" whenever corresponding fields in s:vcs_config are updated or an inconsistency +" is detected during update_* operation. +" +" b:airline_head caches the head string it is empty iff it needs to be +" recalculated. b:airline_head is recalculated based on b:buffer_vcs_config. +function! s:init_buffer() + let b:buffer_vcs_config = {} + for vcs in keys(s:vcs_config) + let b:buffer_vcs_config[vcs] = { + \ 'branch': '', + \ 'untracked': '', + \ 'dirty': 0, + \ } + endfor + unlet! b:airline_head +endfunction + +let s:head_format = get(g:, 'airline#extensions#branch#format', 0) +if s:head_format == 1 + function! s:format_name(name) + return fnamemodify(a:name, ':t') + endfunction +elseif s:head_format == 2 + function! s:format_name(name) + return pathshorten(a:name) + endfunction +elseif type(s:head_format) == type('') + function! s:format_name(name) + return call(s:head_format, [a:name]) + endfunction +else + function! s:format_name(name) + return a:name + endfunction +endif + + +" Fugitive special revisions. call '0' "staging" ? +let s:names = {'0': 'index', '1': 'orig', '2':'fetch', '3':'merge'} +let s:sha1size = get(g:, 'airline#extensions#branch#sha1_len', 7) + +function! s:update_git_branch() + call airline#util#ignore_next_focusgain() + if !airline#util#has_fugitive() && !airline#util#has_gina() + let s:vcs_config['git'].branch = '' + return + endif + if airline#util#has_fugitive() + let s:vcs_config['git'].branch = exists("*FugitiveHead") ? + \ FugitiveHead(s:sha1size) : fugitive#head(s:sha1size) + if s:vcs_config['git'].branch is# 'master' && + \ airline#util#winwidth() < 81 + " Shorten default a bit + let s:vcs_config['git'].branch='mas' + endif + else + try + let g:gina#component#repo#commit_length = s:sha1size + let s:vcs_config['git'].branch = gina#component#repo#branch() + catch + endtry + if s:vcs_config['git'].branch is# 'master' && + \ airline#util#winwidth() < 81 + " Shorten default a bit + let s:vcs_config['git'].branch='mas' + endif + endif +endfunction + +function! s:display_git_branch() + " disable FocusGained autocommand, might cause loops because system() causes + " a refresh, which causes a system() command again #2029 + call airline#util#ignore_next_focusgain() + let name = b:buffer_vcs_config['git'].branch + try + let commit = matchstr(FugitiveParse()[0], '^\x\+') + + if has_key(s:names, commit) + let name = get(s:names, commit)."(".name.")" + elseif !empty(commit) + let ref = fugitive#repo().git_chomp('describe', '--all', '--exact-match', commit) + if ref !~ "^fatal: no tag exactly matches" + let name = s:format_name(substitute(ref, '\v\C^%(heads/|remotes/|tags/)=','',''))."(".name.")" + else + let name = matchstr(commit, '.\{'.s:sha1size.'}')."(".name.")" + endif + endif + catch + endtry + return name +endfunction + +function! s:update_hg_branch() + if airline#util#has_lawrencium() + let cmd='LC_ALL=C hg qtop' + let stl=lawrencium#statusline() + let file=expand('%:p') + if !empty(stl) && get(b:, 'airline_do_mq_check', 1) + if g:airline#init#vim_async + noa call airline#async#get_mq_async(cmd, file) + elseif has("nvim") + noa call airline#async#nvim_get_mq_async(cmd, file) + else + " remove \n at the end of the command + let output=system(cmd)[0:-2] + noa call airline#async#mq_output(output, file) + endif + endif + " do not do mq check anymore + let b:airline_do_mq_check = 0 + if exists("b:mq") && !empty(b:mq) + if stl is# 'default' + " Shorten default a bit + let stl='def' + endif + let stl.=' ['.b:mq.']' + endif + let s:vcs_config['mercurial'].branch = stl + else + let s:vcs_config['mercurial'].branch = '' + endif +endfunction + +function! s:display_hg_branch() + return b:buffer_vcs_config['mercurial'].branch +endfunction + +function! s:update_branch() + for vcs in keys(s:vcs_config) + call {s:vcs_config[vcs].update_branch}() + if b:buffer_vcs_config[vcs].branch != s:vcs_config[vcs].branch + let b:buffer_vcs_config[vcs].branch = s:vcs_config[vcs].branch + unlet! b:airline_head + endif + endfor +endfunction + +function! airline#extensions#branch#update_untracked_config(file, vcs) + if !has_key(s:vcs_config[a:vcs].untracked, a:file) + return + elseif s:vcs_config[a:vcs].untracked[a:file] != b:buffer_vcs_config[a:vcs].untracked + let b:buffer_vcs_config[a:vcs].untracked = s:vcs_config[a:vcs].untracked[a:file] + unlet! b:airline_head + endif +endfunction + +function! s:update_untracked() + let file = expand("%:p") + if empty(file) || isdirectory(file) || !empty(&buftype) + return + endif + + let needs_update = 1 + let vcs_checks = get(g:, "airline#extensions#branch#vcs_checks", ["untracked", "dirty"]) + for vcs in keys(s:vcs_config) + if file =~ s:vcs_config[vcs].exclude + " Skip check for files that live in the exclude directory + let needs_update = 0 + endif + if has_key(s:vcs_config[vcs].untracked, file) + let needs_update = 0 + call airline#extensions#branch#update_untracked_config(file, vcs) + endif + endfor + + if !needs_update + return + endif + + for vcs in keys(s:vcs_config) + " only check, for git, if fugitive is installed + " and for 'hg' if lawrencium is installed, else skip + if vcs is# 'git' && (!airline#util#has_fugitive() && !airline#util#has_gina()) + continue + elseif vcs is# 'mercurial' && !airline#util#has_lawrencium() + continue + endif + let config = s:vcs_config[vcs] + " Note that asynchronous update updates s:vcs_config only, and only + " s:update_untracked updates b:buffer_vcs_config. If s:vcs_config is + " invalidated again before s:update_untracked is called, then we lose the + " result of the previous call, i.e. the head string is not updated. It + " doesn't happen often in practice, so we let it be. + if index(vcs_checks, 'untracked') > -1 + call airline#async#vcs_untracked(config, file, vcs) + endif + " Check clean state of repo + if index(vcs_checks, 'dirty') > -1 + call airline#async#vcs_clean(config.dirty, file, vcs) + endif + endfor +endfunction + +function! airline#extensions#branch#head() + if !exists('b:buffer_vcs_config') + call s:init_buffer() + endif + + call s:update_branch() + call s:update_untracked() + + if exists('b:airline_head') && !empty(b:airline_head) + return b:airline_head + endif + + let b:airline_head = '' + let vcs_priority = get(g:, "airline#extensions#branch#vcs_priority", ["git", "mercurial"]) + + let heads = [] + for vcs in vcs_priority + if !empty(b:buffer_vcs_config[vcs].branch) + let heads += [vcs] + endif + endfor + + for vcs in heads + if !empty(b:airline_head) + let b:airline_head .= ' | ' + endif + if len(heads) > 1 + let b:airline_head .= s:vcs_config[vcs].exe .':' + endif + let b:airline_head .= s:format_name({s:vcs_config[vcs].display_branch}()) + let additional = b:buffer_vcs_config[vcs].untracked + if empty(additional) && + \ has_key(b:buffer_vcs_config[vcs], 'dirty') && + \ b:buffer_vcs_config[vcs].dirty + let additional = g:airline_symbols['dirty'] + endif + let b:airline_head .= additional + endfor + + if empty(heads) + if airline#util#has_vcscommand() + noa call VCSCommandEnableBufferSetup() + if exists('b:VCSCommandBufferInfo') + let b:airline_head = s:format_name(get(b:VCSCommandBufferInfo, 0, '')) + endif + endif + endif + + if empty(heads) + if airline#util#has_custom_scm() + try + let Fn = function(g:airline#extensions#branch#custom_head) + let b:airline_head = Fn() + endtry + endif + endif + + if exists("g:airline#extensions#branch#displayed_head_limit") + let w:displayed_head_limit = g:airline#extensions#branch#displayed_head_limit + if strwidth(b:airline_head) > w:displayed_head_limit - 1 + let b:airline_head = + \ airline#util#strcharpart(b:airline_head, 0, w:displayed_head_limit - 1) + \ . (&encoding ==? 'utf-8' ? '…' : '.') + endif + endif + + return b:airline_head +endfunction + +function! airline#extensions#branch#get_head() + let head = airline#extensions#branch#head() + let winwidth = get(airline#parts#get('branch'), 'minwidth', 120) + let minwidth = empty(get(b:, 'airline_hunks', '')) ? 14 : 7 + let head = airline#util#shorten(head, winwidth, minwidth) + let symbol = get(g:, 'airline#extensions#branch#symbol', g:airline_symbols.branch) + return empty(head) + \ ? get(g:, 'airline#extensions#branch#empty_message', '') + \ : printf('%s%s', empty(symbol) ? '' : symbol.(g:airline_symbols.space), head) +endfunction + +function! s:reset_untracked_cache(shellcmdpost) + " shellcmdpost - whether function was called as a result of ShellCmdPost hook + if !g:airline#init#vim_async && !has('nvim') + if a:shellcmdpost + " Clear cache only if there was no error or the script uses an + " asynchronous interface. Otherwise, cache clearing would overwrite + " v:shell_error with a system() call inside get_*_untracked. + if v:shell_error + return + endif + endif + endif + + let file = expand("%:p") + for vcs in keys(s:vcs_config) + " Dump the value of the cache for the current file. Partially mitigates the + " issue of cache invalidation happening before a call to + " s:update_untracked() + call airline#extensions#branch#update_untracked_config(file, vcs) + let s:vcs_config[vcs].untracked = {} + endfor +endfunction + +function! airline#extensions#branch#init(ext) + call airline#parts#define_function('branch', 'airline#extensions#branch#get_head') + + autocmd ShellCmdPost,CmdwinLeave * unlet! b:airline_head b:airline_do_mq_check + autocmd User AirlineBeforeRefresh unlet! b:airline_head b:airline_do_mq_check + autocmd BufWritePost * call s:reset_untracked_cache(0) + autocmd ShellCmdPost * call s:reset_untracked_cache(1) +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/bufferline.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/bufferline.vim new file mode 100644 index 0000000..033adba --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/bufferline.vim @@ -0,0 +1,28 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: https://github.com/bling/vim-bufferline +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !exists('*bufferline#get_status_string') + finish +endif + +function! airline#extensions#bufferline#init(ext) + if get(g:, 'airline#extensions#bufferline#overwrite_variables', 1) + highlight bufferline_selected gui=bold cterm=bold term=bold + highlight link bufferline_selected_inactive airline_c_inactive + let g:bufferline_inactive_highlight = 'airline_c' + let g:bufferline_active_highlight = 'bufferline_selected' + let g:bufferline_active_buffer_left = '' + let g:bufferline_active_buffer_right = '' + let g:bufferline_separator = g:airline_symbols.space + endif + + if exists("+autochdir") && &autochdir == 1 + " if 'acd' is set, vim-airline uses the path section, so we need ot redefine this here as well + call airline#parts#define_raw('path', '%{bufferline#refresh_status()}'.bufferline#get_status_string()) + else + call airline#parts#define_raw('file', '%{bufferline#refresh_status()}'.bufferline#get_status_string()) + endif +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/capslock.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/capslock.vim new file mode 100644 index 0000000..81d6df0 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/capslock.vim @@ -0,0 +1,17 @@ +" MIT License. Copyright (c) 2014-2019 Mathias Andersson et al. +" Plugin: https://github.com/tpope/vim-capslock +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !exists('*CapsLockStatusline') + finish +endif + +function! airline#extensions#capslock#status() + return tolower(CapsLockStatusline()) ==# '[caps]' ? get(g:, 'airline#extensions#capslock#symbol', 'CAPS') : '' +endfunction + +function! airline#extensions#capslock#init(ext) + call airline#parts#define_function('capslock', 'airline#extensions#capslock#status') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/coc.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/coc.vim new file mode 100644 index 0000000..c6bfa05 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/coc.vim @@ -0,0 +1,54 @@ +" MIT License. Copyright (c) 2019 Peng Guanwen et al. +" vim: et ts=2 sts=2 sw=2 +" Plugin: https://github.com/neoclide/coc + +scriptencoding utf-8 + +let s:error_symbol = get(g:, 'airline#extensions#coc#error_symbol', 'E:') +let s:warning_symbol = get(g:, 'airline#extensions#coc#warning_symbol', 'W:') + +function! airline#extensions#coc#get_warning() abort + return airline#extensions#coc#get('warning') +endfunction + +function! airline#extensions#coc#get_error() abort + return airline#extensions#coc#get('error') +endfunction + +function! airline#extensions#coc#get(type) abort + if !exists(':CocCommand') + return '' + endif + let _backup = get(g:, 'coc_stl_format', '') + let is_err = (a:type is# 'error') + if is_err + let g:coc_stl_format = get(g:, 'airline#extensions#coc#stl_format_err', '%E{[%e(#%fe)]}') + else + let g:coc_stl_format = get(g:, 'airline#extensions#coc#stl_format_warn', '%W{[%w(#%fw)]}') + endif + let info = get(b:, 'coc_diagnostic_info', {}) + if empty(info) | return '' | endif + + + let cnt = get(info, a:type, 0) + if !empty(_backup) + let g:coc_stl_format = _backup + endif + + if empty(cnt) + return '' + else + return (is_err ? s:error_symbol : s:warning_symbol).cnt + endif +endfunction + +function! airline#extensions#coc#get_status() abort + " Shorten text for windows < 91 characters + return airline#util#shorten(get(g:, 'coc_status', ''), 91, 9) +endfunction + +function! airline#extensions#coc#init(ext) abort + call airline#parts#define_function('coc_error_count', 'airline#extensions#coc#get_error') + call airline#parts#define_function('coc_warning_count', 'airline#extensions#coc#get_warning') + call airline#parts#define_function('coc_status', 'airline#extensions#coc#get_status') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/commandt.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/commandt.vim new file mode 100644 index 0000000..fd81506 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/commandt.vim @@ -0,0 +1,19 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: https://github.com/wincent/command-t +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'command_t_loaded', 0) + finish +endif + +function! airline#extensions#commandt#apply(...) + if bufname('%') ==# 'GoToFile' + call airline#extensions#apply_left_override('CommandT', '') + endif +endfunction + +function! airline#extensions#commandt#init(ext) + call a:ext.add_statusline_func('airline#extensions#commandt#apply') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/csv.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/csv.vim new file mode 100644 index 0000000..e94dd9d --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/csv.vim @@ -0,0 +1,33 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling, Christian Brabandt et al. +" Plugin: https://github.com/chrisbra/csv.vim +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'loaded_csv', 0) && !exists(':Table') + finish +endif + +let s:column_display = get(g:, 'airline#extensions#csv#column_display', 'Number') + +function! airline#extensions#csv#get_column() + if exists('*CSV_WCol') + if s:column_display ==# 'Name' + return '['.CSV_WCol('Name').CSV_WCol().']' + else + return '['.CSV_WCol().']' + endif + endif + return '' +endfunction + +function! airline#extensions#csv#apply(...) + if &ft ==# "csv" + call airline#extensions#prepend_to_section('gutter', + \ g:airline_left_alt_sep.' %{airline#extensions#csv#get_column()}') + endif +endfunction + +function! airline#extensions#csv#init(ext) + call a:ext.add_statusline_func('airline#extensions#csv#apply') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/ctrlp.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/ctrlp.vim new file mode 100644 index 0000000..8f9591e --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/ctrlp.vim @@ -0,0 +1,82 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: https://github.com/ctrlpvim/ctrlp.vim +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'loaded_ctrlp', 0) + finish +endif + +let s:color_template = get(g:, 'airline#extensions#ctrlp#color_template', 'insert') + +function! airline#extensions#ctrlp#generate_color_map(dark, light, white) + return { + \ 'CtrlPdark' : a:dark, + \ 'CtrlPlight' : a:light, + \ 'CtrlPwhite' : a:white, + \ 'CtrlParrow1' : [ a:light[1] , a:white[1] , a:light[3] , a:white[3] , '' ] , + \ 'CtrlParrow2' : [ a:white[1] , a:light[1] , a:white[3] , a:light[3] , '' ] , + \ 'CtrlParrow3' : [ a:light[1] , a:dark[1] , a:light[3] , a:dark[3] , '' ] , + \ } +endfunction + +function! airline#extensions#ctrlp#load_theme(palette) + if exists('a:palette.ctrlp') + let theme = a:palette.ctrlp + else + let s:color_template = has_key(a:palette, s:color_template) ? s:color_template : 'insert' + let theme = airline#extensions#ctrlp#generate_color_map( + \ a:palette[s:color_template]['airline_c'], + \ a:palette[s:color_template]['airline_b'], + \ a:palette[s:color_template]['airline_a']) + endif + for key in keys(theme) + call airline#highlighter#exec(key, theme[key]) + endfor +endfunction + +" Arguments: focus, byfname, regexp, prv, item, nxt, marked +function! airline#extensions#ctrlp#ctrlp_airline(...) + let b = airline#builder#new({'active': 1}) + if a:2 == 'file' + call b.add_section_spaced('CtrlPlight', 'by fname') + endif + if a:3 + call b.add_section_spaced('CtrlPlight', 'regex') + endif + if get(g:, 'airline#extensions#ctrlp#show_adjacent_modes', 1) + call b.add_section_spaced('CtrlPlight', a:4) + call b.add_section_spaced('CtrlPwhite', a:5) + call b.add_section_spaced('CtrlPlight', a:6) + else + call b.add_section_spaced('CtrlPwhite', a:5) + endif + call b.add_section_spaced('CtrlPdark', a:7) + call b.split() + call b.add_section_spaced('CtrlPdark', a:1) + call b.add_section_spaced('CtrlPdark', a:2) + call b.add_section_spaced('CtrlPlight', '%{getcwd()}') + return b.build() +endfunction + +" Argument: len +function! airline#extensions#ctrlp#ctrlp_airline_status(...) + let len = '%#CtrlPdark# '.a:1 + let dir = '%=%<%#CtrlParrow3#'.g:airline_right_sep.'%#CtrlPlight# '.getcwd().' %*' + return len.dir +endfunction + +function! airline#extensions#ctrlp#apply(...) + " disable statusline overwrite if ctrlp already did it + return match(&statusline, 'CtrlPwhite') >= 0 ? -1 : 0 +endfunction + +function! airline#extensions#ctrlp#init(ext) + let g:ctrlp_status_func = { + \ 'main': 'airline#extensions#ctrlp#ctrlp_airline', + \ 'prog': 'airline#extensions#ctrlp#ctrlp_airline_status', + \ } + call a:ext.add_statusline_func('airline#extensions#ctrlp#apply') + call a:ext.add_theme_func('airline#extensions#ctrlp#load_theme') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/ctrlspace.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/ctrlspace.vim new file mode 100644 index 0000000..1e1a99b --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/ctrlspace.vim @@ -0,0 +1,21 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: https://github.com/szw/vim-ctrlspace +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +function! airline#extensions#ctrlspace#statusline(...) + let spc = g:airline_symbols.space + let padding = spc . spc . spc + let cs = ctrlspace#context#Configuration().Symbols.CS + + let b = airline#builder#new({ 'active': 1 }) + call b.add_section('airline_b', cs . padding . ctrlspace#api#StatuslineModeSegment(s:padding)) + call b.split() + call b.add_section('airline_x', spc . ctrlspace#api#StatuslineTabSegment() . spc) + return b.build() +endfunction + +function! airline#extensions#ctrlspace#init(ext) + let g:CtrlSpaceStatuslineFunction = "airline#extensions#ctrlspace#statusline()" +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/cursormode.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/cursormode.vim new file mode 100644 index 0000000..57d6cf5 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/cursormode.vim @@ -0,0 +1,120 @@ +" MIT Licsense. +" Plugin: https://github.com/vheon/vim-cursormode +" Copyright (C) 2014 Andrea Cedraro , +" Copyright (C) 2017 Eduardo Suarez-Santana + +scriptencoding utf-8 + +if !exists('g:loaded_cursormode') + finish +endif + +let s:is_win = has('win32') || has('win64') +let s:is_iTerm = exists('$TERM_PROGRAM') && $TERM_PROGRAM =~# 'iTerm.app' +let s:is_AppleTerminal = exists('$TERM_PROGRAM') && $TERM_PROGRAM =~# 'Apple_Terminal' + +let s:is_good = !has('gui_running') && !s:is_win && !s:is_AppleTerminal + +let s:last_mode = '' + +if !exists('g:cursormode_exit_mode') + let g:cursormode_exit_mode='n' +endif + +function! airline#extensions#cursormode#tmux_escape(escape) + return '\033Ptmux;'.substitute(a:escape, '\\033', '\\033\\033', 'g').'\033\\' +endfunction + +let s:iTerm_escape_template = '\033]Pl%s\033\\' +let s:xterm_escape_template = '\033]12;%s\007' + +function! s:get_mode() + return call(get(g:, 'cursormode_mode_func', 'mode'), []) +endfunction + +function! airline#extensions#cursormode#set(...) + let mode = s:get_mode() + if mode !=# s:last_mode + let s:last_mode = mode + call s:set_cursor_color_for(mode) + endif + return '' +endfunction + +function! s:set_cursor_color_for(mode) + let mode = a:mode + for mode in [a:mode, a:mode.&background] + if has_key(s:color_map, mode) + try + let save_eventignore = &eventignore + set eventignore=all + let save_shelltemp = &shelltemp + set noshelltemp + + silent call system(s:build_command(s:color_map[mode])) + return + finally + let &shelltemp = save_shelltemp + let &eventignore = save_eventignore + endtry + endif + endfor +endfunction + +function! s:build_command(color) + if s:is_iTerm + let color = substitute(a:color, '^#', '', '') + let escape_template = s:iTerm_escape_template + else + let color = a:color + let escape_template = s:xterm_escape_template + endif + + let escape = printf(escape_template, color) + if exists('$TMUX') + let escape = airline#extensions#cursormode#tmux_escape(escape) + endif + return "printf '".escape."' > /dev/tty" +endfunction + +function! s:get_color_map() + if exists('g:cursormode_color_map') + return g:cursormode_color_map + endif + + try + let map = g:cursormode#{g:colors_name}#color_map + return map + catch + return { + \ "nlight": "#000000", + \ "ndark": "#BBBBBB", + \ "i": "#0000BB", + \ "v": "#FF5555", + \ "V": "#BBBB00", + \ "\": "#BB00BB", + \ } + endtry +endfunction + +augroup airline#extensions#cursormode + autocmd! + autocmd VimLeave * nested call s:set_cursor_color_for(g:cursormode_exit_mode) + " autocmd VimEnter * call airline#extensions#cursormode#activate() + autocmd Colorscheme * call airline#extensions#cursormode#activate() +augroup END + +function! airline#extensions#cursormode#activate() + let s:color_map = s:get_color_map() + call airline#extensions#cursormode#set() +endfunction + +function! airline#extensions#cursormode#apply(...) + let w:airline_section_a = get(w:, 'airline_section_a', g:airline_section_a) + let w:airline_section_a .= '%{airline#extensions#cursormode#set()}' +endfunction + +function! airline#extensions#cursormode#init(ext) + let s:color_map = s:get_color_map() + call a:ext.add_statusline_func('airline#extensions#cursormode#apply') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/default.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/default.vim new file mode 100644 index 0000000..5cff300 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/default.vim @@ -0,0 +1,100 @@ +" MIT License. Copyright (c) 2013-2020 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:section_use_groups = get(g:, 'airline#extensions#default#section_use_groupitems', 1) +let s:section_truncate_width = get(g:, 'airline#extensions#default#section_truncate_width', { + \ 'b': 79, + \ 'x': 60, + \ 'y': 88, + \ 'z': 45, + \ 'warning': 80, + \ 'error': 80, + \ }) +let s:layout = get(g:, 'airline#extensions#default#layout', [ + \ [ 'a', 'b', 'c' ], + \ [ 'x', 'y', 'z', 'warning', 'error' ] + \ ]) + +function! s:get_section(winnr, key, ...) + if has_key(s:section_truncate_width, a:key) + if airline#util#winwidth(a:winnr) < s:section_truncate_width[a:key] + return '' + endif + endif + let spc = g:airline_symbols.space + if !exists('g:airline_section_{a:key}') + return '' + endif + let text = airline#util#getwinvar(a:winnr, 'airline_section_'.a:key, g:airline_section_{a:key}) + let [prefix, suffix] = [get(a:000, 0, '%('.spc), get(a:000, 1, spc.'%)')] + return empty(text) ? '' : prefix.text.suffix +endfunction + +function! s:build_sections(builder, context, keys) + for key in a:keys + if (key == 'warning' || key == 'error') && !a:context.active + continue + endif + call s:add_section(a:builder, a:context, key) + endfor +endfunction + +" There still is a highlighting bug when using groups %(%) in the statusline, +" deactivate it, unless it is fixed (7.4.1511) +if s:section_use_groups && (v:version >= 704 || (v:version >= 703 && has('patch81'))) + function! s:add_section(builder, context, key) + let condition = (a:key is# "warning" || a:key is# "error") && + \ (v:version == 704 && !has("patch1511")) + " i have no idea why the warning section needs special treatment, but it's + " needed to prevent separators from showing up + if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key))) + return + endif + if condition + call a:builder.add_raw('%(') + endif + call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key)) + if condition + call a:builder.add_raw('%)') + endif + endfunction +else + " older version don't like the use of %(%) + function! s:add_section(builder, context, key) + if ((a:key == 'error' || a:key == 'warning') && empty(s:get_section(a:context.winnr, a:key))) + return + endif + if a:key == 'warning' + call a:builder.add_raw('%#airline_warning#'.s:get_section(a:context.winnr, a:key)) + elseif a:key == 'error' + call a:builder.add_raw('%#airline_error#'.s:get_section(a:context.winnr, a:key)) + else + call a:builder.add_section('airline_'.a:key, s:get_section(a:context.winnr, a:key)) + endif + endfunction +endif + +function! airline#extensions#default#apply(builder, context) + let winnr = a:context.winnr + let active = a:context.active + + if airline#util#getwinvar(winnr, 'airline_render_left', active || (!active && !g:airline_inactive_collapse)) + call s:build_sections(a:builder, a:context, s:layout[0]) + else + let text = s:get_section(winnr, 'c') + if empty(text) + let text = ' %f%m ' + endif + call a:builder.add_section('airline_c'.(a:context.bufnr), text) + endif + + call a:builder.split(s:get_section(winnr, 'gutter', '', '')) + + if airline#util#getwinvar(winnr, 'airline_render_right', 1) + call s:build_sections(a:builder, a:context, s:layout[1]) + endif + + return 1 +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/denite.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/denite.vim new file mode 100644 index 0000000..dc3c529 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/denite.vim @@ -0,0 +1,55 @@ +" MIT License. Copyright (c) 2017-2019 Thomas Dy et al. +" Plugin: https://github.com/Shougo/denite.nvim +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'loaded_denite', 0) + finish +endif + +let s:denite_ver = (exists('*denite#get_status_mode') ? 2 : 3) +" Denite does not use vim's built-in modal editing but has a custom prompt +" that implements its own insert/normal mode so we have to handle changing the +" highlight +function! airline#extensions#denite#check_denite_mode(bufnr) abort + if &filetype !=# 'denite' && &filetype !=# 'denite-filter' + return '' + endif + + if s:denite_ver == 3 + let mode = split(denite#get_status("mode"), ' ') + else + let mode = split(denite#get_status_mode(), ' ') + endif + let mode = tolower(get(mode, 1, '')) + if !exists('b:denite_mode_cache') || mode != b:denite_mode_cache + call airline#highlighter#highlight([mode], a:bufnr) + let b:denite_mode_cache = mode + endif + return '' +endfunction + +function! airline#extensions#denite#apply(...) abort + if &filetype ==# 'denite' || &filetype ==# 'denite-filter' + let w:airline_skip_empty_sections = 0 + call a:1.add_section('airline_a', ' Denite %{airline#extensions#denite#check_denite_mode('.a:2['bufnr'].')}') + if s:denite_ver == 3 + call a:1.add_section('airline_c', ' %{denite#get_status("sources")}') + call a:1.split() + call a:1.add_section('airline_y', ' %{denite#get_status("path")} ') + call a:1.add_section('airline_z', ' %{denite#get_status("linenr")} ') + else + call a:1.add_section('airline_c', ' %{denite#get_status_sources()}') + call a:1.split() + call a:1.add_section('airline_y', ' %{denite#get_status_path()} ') + call a:1.add_section('airline_z', ' %{denite#get_status_linenr()} ') + endif + return 1 + endif +endfunction + +function! airline#extensions#denite#init(ext) abort + call denite#custom#option('_', 'statusline', 0) + call a:ext.add_statusline_func('airline#extensions#denite#apply') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/dirvish.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/dirvish.vim new file mode 100644 index 0000000..4e03fed --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/dirvish.vim @@ -0,0 +1,36 @@ +" MIT Licsense +" Plugin: https://github.com/justinmk/vim-dirvish +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'loaded_dirvish', 0) + finish +endif + +let s:spc = g:airline_symbols.space + +function! airline#extensions#dirvish#init(ext) abort + call a:ext.add_statusline_func('airline#extensions#dirvish#apply') +endfunction + +function! airline#extensions#dirvish#apply(...) abort + if &filetype ==# 'dirvish' + let w:airline_section_a = 'Dirvish' + + let w:airline_section_b = exists('*airline#extensions#branch#get_head') + \ ? '%{airline#extensions#branch#get_head()}' + \ : '' + + let w:airline_section_c = '%{b:dirvish._dir}' + + let w:airline_section_x = '' + let w:airline_section_y = '' + + let current_column_regex = ':%\dv' + let w:airline_section_z = join(filter( + \ split(get(w:, 'airline_section_z', g:airline_section_z)), + \ 'v:val !~ current_column_regex' + \ )) + endif +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/eclim.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/eclim.vim new file mode 100644 index 0000000..d5c6f12 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/eclim.vim @@ -0,0 +1,62 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" PLugin: https://eclim.org +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !exists(':ProjectCreate') + finish +endif + +function! airline#extensions#eclim#creat_line(...) + if &filetype == "tree" + let builder = a:1 + call builder.add_section('airline_a', ' Project ') + call builder.add_section('airline_b', ' %f ') + call builder.add_section('airline_c', '') + return 1 + endif +endfunction + +function! airline#extensions#eclim#get_warnings() + " Cache vavlues, so that it isn't called too often + if exists("s:eclim_errors") && + \ get(b:, 'airline_changenr', 0) == changenr() + return s:eclim_errors + endif + let eclimList = eclim#display#signs#GetExisting() + let s:eclim_errors = '' + + if !empty(eclimList) + " Remove any non-eclim signs (see eclim#display#signs#Update) + " First check for just errors since they are more important. + " If there are no errors, then check for warnings. + let errorList = filter(copy(eclimList), 'v:val.name =~ "^\\(qf_\\)\\?\\(error\\)$"') + + if (empty(errorList)) + " use the warnings + call filter(eclimList, 'v:val.name =~ "^\\(qf_\\)\\?\\(warning\\)$"') + let type = 'W' + else + " Use the errors + let eclimList = errorList + let type = 'E' + endif + + if !empty(eclimList) + let errorsLine = eclimList[0]['line'] + let errorsNumber = len(eclimList) + let errors = "[Eclim:" . type . " line:".string(errorsLine)." (".string(errorsNumber).")]" + if !exists(':SyntasticCheck') || SyntasticStatuslineFlag() == '' + let s:eclim_errors = errors.(g:airline_symbols.space) + endif + endif + endif + let b:airline_changenr = changenr() + return s:eclim_errors +endfunction + +function! airline#extensions#eclim#init(ext) + call airline#parts#define_function('eclim', 'airline#extensions#eclim#get_warnings') + call a:ext.add_statusline_func('airline#extensions#eclim#creat_line') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/example.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/example.vim new file mode 100644 index 0000000..c9194e6 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/example.vim @@ -0,0 +1,55 @@ +" MIT License. Copyright (c) 2013-2020 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +" we don't actually want this loaded :P +finish + +" Due to some potential rendering issues, the use of the `space` variable is +" recommended. +let s:spc = g:airline_symbols.space + +" Extension specific variables can be defined the usual fashion. +if !exists('g:airline#extensions#example#number_of_cats') + let g:airline#extensions#example#number_of_cats = 42 +endif + +" First we define an init function that will be invoked from extensions.vim +function! airline#extensions#example#init(ext) + + " Here we define a new part for the plugin. This allows users to place this + " extension in arbitrary locations. + call airline#parts#define_raw('cats', '%{airline#extensions#example#get_cats()}') + + " Next up we add a funcref so that we can run some code prior to the + " statusline getting modifed. + call a:ext.add_statusline_func('airline#extensions#example#apply') + + " You can also add a funcref for inactive statuslines. + " call a:ext.add_inactive_statusline_func('airline#extensions#example#unapply') +endfunction + +" This function will be invoked just prior to the statusline getting modified. +function! airline#extensions#example#apply(...) + " First we check for the filetype. + if &filetype == "nyancat" + + " Let's say we want to append to section_c, first we check if there's + " already a window-local override, and if not, create it off of the global + " section_c. + let w:airline_section_c = get(w:, 'airline_section_c', g:airline_section_c) + + " Then we just append this extenion to it, optionally using separators. + let w:airline_section_c .= s:spc.g:airline_left_alt_sep.s:spc.'%{airline#extensions#example#get_cats()}' + endif +endfunction + +" Finally, this function will be invoked from the statusline. +function! airline#extensions#example#get_cats() + let cats = '' + for i in range(1, g:airline#extensions#example#number_of_cats) + let cats .= ' (,,,)=(^.^)=(,,,) ' + endfor + return cats +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/fugitiveline.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/fugitiveline.vim new file mode 100644 index 0000000..2d0217d --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/fugitiveline.vim @@ -0,0 +1,52 @@ +" MIT License. Copyright (c) 2017-2019 Cimbali et al +" Plugin: https://github.com/tpope/vim-fugitive +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !airline#util#has_fugitive() + finish +endif + +function! s:ModifierFlags() + return (exists("+autochdir") && &autochdir) ? ':p' : ':.' +endfunction + +function! airline#extensions#fugitiveline#bufname() + if !exists('b:fugitive_name') + let b:fugitive_name = '' + try + if bufname('%') =~? '^fugitive:' && exists('*FugitiveReal') + let b:fugitive_name = FugitiveReal(bufname('%')) + elseif exists('b:git_dir') && exists('*fugitive#repo') + if get(b:, 'fugitive_type', '') is# 'blob' + let b:fugitive_name = fugitive#repo().translate(FugitivePath(@%, '')) + endif + elseif exists('b:git_dir') && !exists('*fugitive#repo') + let buffer = fugitive#buffer() + if buffer.type('blob') + let b:fugitive_name = buffer.repo().translate(buffer.path('/')) + endif + endif + catch + endtry + endif + + let fmod = s:ModifierFlags() + if empty(b:fugitive_name) + return fnamemodify(bufname('%'), fmod) + else + return fnamemodify(b:fugitive_name, fmod). " [git]" + endif +endfunction + +function! airline#extensions#fugitiveline#init(ext) + if exists("+autochdir") && &autochdir + " if 'acd' is set, vim-airline uses the path section, so we need to redefine this here as well + call airline#parts#define_raw('path', '%<%{airline#extensions#fugitiveline#bufname()}%m') + else + call airline#parts#define_raw('file', '%<%{airline#extensions#fugitiveline#bufname()}%m') + endif + autocmd ShellCmdPost,CmdwinLeave * unlet! b:fugitive_name + autocmd User AirlineBeforeRefresh unlet! b:fugitive_name +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/gina.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/gina.vim new file mode 100644 index 0000000..7c699a1 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/gina.vim @@ -0,0 +1,24 @@ +" MIT License. Copyright (c) 2013-2020 +" Plugin: https://github.com/lambdalisue/gina.vim +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 +if !get(g:, 'loaded_gina', 0) + finish +endif + +function! airline#extensions#gina#apply(...) abort + if (&ft =~# 'gina' && &ft !~# 'blame') || &ft ==# 'diff' + call a:1.add_section('airline_a', ' gina ') + call a:1.add_section('airline_b', ' %{gina#component#repo#branch()} ') + call a:1.split() + call a:1.add_section('airline_y', ' staged %{gina#component#status#staged()} ') + call a:1.add_section('airline_z', ' unstaged %{gina#component#status#unstaged()} ') + return 1 + endif +endfunction + +function! airline#extensions#gina#init(ext) abort + let g:gina_force_overwrite_statusline = 0 + call a:ext.add_statusline_func('airline#extensions#gina#apply') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/grepper.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/grepper.vim new file mode 100644 index 0000000..3b3f099 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/grepper.vim @@ -0,0 +1,18 @@ +" MIT License. Copyright (c) 2014-2019 Mathias Andersson et al. +" Plugin: https://github.com/mhinz/vim-grepper +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'loaded_grepper', 0) + finish +endif + +function! airline#extensions#grepper#status() + let msg = grepper#statusline() + return empty(msg) ? '' : 'grepper' +endfunction + +function! airline#extensions#grepper#init(ext) + call airline#parts#define_function('grepper', 'airline#extensions#grepper#status') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/gutentags.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/gutentags.vim new file mode 100644 index 0000000..857a929 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/gutentags.vim @@ -0,0 +1,18 @@ +" MIT License. Copyright (c) 2014-2019 Mathias Andersson et al. +" Plugin: https://github.com/ludovicchabant/vim-gutentags +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'loaded_gutentags', 0) + finish +endif + +function! airline#extensions#gutentags#status() + let msg = gutentags#statusline() + return empty(msg) ? '' : 'Gen. ' . msg +endfunction + +function! airline#extensions#gutentags#init(ext) + call airline#parts#define_function('gutentags', 'airline#extensions#gutentags#status') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/hunks.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/hunks.vim new file mode 100644 index 0000000..815efa5 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/hunks.vim @@ -0,0 +1,139 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: vim-gitgutter, vim-signify, changesPlugin, quickfixsigns, coc-git +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'loaded_signify', 0) + \ && !get(g:, 'loaded_gitgutter', 0) + \ && !get(g:, 'loaded_changes', 0) + \ && !get(g:, 'loaded_quickfixsigns', 0) + \ && !exists("*CocAction") + finish +endif + +let s:non_zero_only = get(g:, 'airline#extensions#hunks#non_zero_only', 0) +let s:hunk_symbols = get(g:, 'airline#extensions#hunks#hunk_symbols', ['+', '~', '-']) + +function! s:coc_git_enabled() abort + if !exists("*CocAction") + return 0 + endif + if exists("s:airline_coc_git_enabled") + return s:airline_coc_git_enabled + endif + let extensions=CocAction('extensionStats') + if type(extensions) != type([]) + " not yet initialized? Assume it is available... + return 1 + endif + let coc_git=filter(extensions, 'v:val.id is# "coc-git" && v:val.state is# "activated"') + if !empty(coc_git) + let s:airline_coc_git_enabled = 1 + else + let s:airline_coc_git_enabled = 0 + endif + return s:airline_coc_git_enabled +endfunction + +function! s:get_hunks_signify() abort + let hunks = sy#repo#get_stats() + if hunks[0] >= 0 + return hunks + endif + return [] +endfunction + +function! s:get_hunks_coc() abort + let hunks = get(b:, 'coc_git_status', '') + if empty(hunks) + return [] + endif + let result = [0, 0, 0] + for val in split(hunks) + if val[0] is# '+' + let result[0] = val[1:] + 0 + elseif val[0] is# '~' + let result[1] = val[1:] + 0 + elseif val[0] is# '-' + let result[2] = val[1:] + 0 + endif + endfor + return result +endfunction + +function! s:is_branch_empty() abort + return exists('*airline#extensions#branch#head') && + \ empty(get(b:, 'airline_head', '')) +endfunction + +function! s:get_hunks_gitgutter() abort + if !get(g:, 'gitgutter_enabled', 0) || s:is_branch_empty() + return '' + endif + return GitGutterGetHunkSummary() +endfunction + +function! s:get_hunks_changes() abort + let hunks = changes#GetStats() + return hunks == [0, 0, 0] ? [] : hunks +endfunction + +function! s:get_hunks_empty() abort + return '' +endfunction + +function! airline#extensions#hunks#get_raw_hunks() abort + if !exists('b:source_func') || get(b:, 'source_func', '') is# 's:get_hunks_empty' + if get(g:, 'loaded_signify') && sy#buffer_is_active() + let b:source_func = 's:get_hunks_signify' + elseif exists('*GitGutterGetHunkSummary') + let b:source_func = 's:get_hunks_gitgutter' + elseif exists('*changes#GetStats') + let b:source_func = 's:get_hunks_changes' + elseif exists('*quickfixsigns#vcsdiff#GetHunkSummary') + let b:source_func = 'quickfixsigns#vcsdiff#GetHunkSummary' + elseif s:coc_git_enabled() + let b:source_func = 's:get_hunks_coc' + else + let b:source_func = 's:get_hunks_empty' + endif + endif + return {b:source_func}() +endfunction + +function! airline#extensions#hunks#get_hunks() abort + if !get(w:, 'airline_active', 0) + return '' + endif + " Cache values, so that it isn't called too often + if exists("b:airline_hunks") && + \ get(b:, 'airline_changenr', 0) == b:changedtick && + \ airline#util#winwidth() == get(s:, 'airline_winwidth', 0) && + \ get(b:, 'source_func', '') isnot# 's:get_hunks_signify' && + \ get(b:, 'source_func', '') isnot# 's:get_hunks_gitgutter' && + \ get(b:, 'source_func', '') isnot# 's:get_hunks_empty' && + \ get(b:, 'source_func', '') isnot# 's:get_hunks_changes' && + \ get(b:, 'source_func', '') isnot# 's:get_hunks_coc' + return b:airline_hunks + endif + let hunks = airline#extensions#hunks#get_raw_hunks() + let string = '' + let winwidth = get(airline#parts#get('hunks'), 'minwidth', 100) + if !empty(hunks) + " hunks should contain [added, changed, deleted] + for i in [0, 1, 2] + if (s:non_zero_only == 0 && airline#util#winwidth() > winwidth) || hunks[i] > 0 + let string .= printf('%s%s ', s:hunk_symbols[i], hunks[i]) + endif + endfor + endif + let b:airline_hunks = string + let b:airline_changenr = b:changedtick + let s:airline_winwidth = airline#util#winwidth() + return string +endfunction + +function! airline#extensions#hunks#init(ext) abort + call airline#parts#define_function('hunks', 'airline#extensions#hunks#get_hunks') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/keymap.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/keymap.vim new file mode 100644 index 0000000..177a9f7 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/keymap.vim @@ -0,0 +1,20 @@ +" MIT License. Copyright (c) 2013-2019 Doron Behar, C.Brabandt et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !has('keymap') + finish +endif + +function! airline#extensions#keymap#status() + if (get(g:, 'airline#extensions#keymap#enabled', 1) && has('keymap')) + return printf('%s', (!empty(&keymap) ? (g:airline_symbols.keymap . ' '. &keymap) : '')) + else + return '' + endif +endfunction + +function! airline#extensions#keymap#init(ext) + call airline#parts#define_function('keymap', 'airline#extensions#keymap#status') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/languageclient.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/languageclient.vim new file mode 100644 index 0000000..737e90e --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/languageclient.vim @@ -0,0 +1,105 @@ +" MIT License. Copyright (c) 2013-2019 Bjorn Neergaard, hallettj et al. +" Plugin: https://github.com/autozimu/LanguageClient-neovim +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:error_symbol = get(g:, 'airline#extensions#languageclient#error_symbol', 'E:') +let s:warning_symbol = get(g:, 'airline#extensions#languageclient#warning_symbol', 'W:') +let s:show_line_numbers = get(g:, 'airline#extensions#languageclient#show_line_numbers', 1) + +" Severity codes from the LSP spec +let s:severity_error = 1 +let s:severity_warning = 2 +let s:severity_info = 3 +let s:severity_hint = 4 + +" After each LanguageClient state change `s:diagnostics` will be populated with +" a map from file names to lists of errors, warnings, informational messages, +" and hints. +let s:diagnostics = {} + +function! s:languageclient_refresh() + if get(g:, 'airline_skip_empty_sections', 0) + exe ':AirlineRefresh!' + endif +endfunction + +function! s:record_diagnostics(state) + " The returned message might not have the 'result' key + if has_key(a:state, 'result') + let result = json_decode(a:state.result) + let s:diagnostics = result.diagnostics + endif + call s:languageclient_refresh() +endfunction + +function! s:get_diagnostics() + call LanguageClient#getState(function("s:record_diagnostics")) +endfunction + +function! s:diagnostics_for_buffer() + return get(s:diagnostics, expand('%:p'), []) +endfunction + +function! s:airline_languageclient_count(cnt, symbol) + return a:cnt ? a:symbol. a:cnt : '' +endfunction + +function! s:airline_languageclient_get_line_number(type) abort + let linenumber_of_first_problem = 0 + for d in s:diagnostics_for_buffer() + if has_key(d, 'severity') && d.severity == a:type + let linenumber_of_first_problem = d.range.start.line + break + endif + endfor + + if linenumber_of_first_problem == 0 + return '' + endif + + let open_lnum_symbol = get(g:, 'airline#extensions#languageclient#open_lnum_symbol', '(L') + let close_lnum_symbol = get(g:, 'airline#extensions#languageclient#close_lnum_symbol', ')') + + return open_lnum_symbol . linenumber_of_first_problem . close_lnum_symbol +endfunction + +function! airline#extensions#languageclient#get(type) + let is_err = a:type == s:severity_error + let symbol = is_err ? s:error_symbol : s:warning_symbol + + let cnt = 0 + for d in s:diagnostics_for_buffer() + if has_key(d, 'severity') && d.severity == a:type + let cnt += 1 + endif + endfor + + if cnt == 0 + return '' + endif + + if s:show_line_numbers == 1 + return s:airline_languageclient_count(cnt, symbol) . airline_languageclient_get_line_number(a:type) + else + return s:airline_languageclient_count(cnt, symbol) + endif +endfunction + +function! airline#extensions#languageclient#get_warning() + return airline#extensions#languageclient#get(s:severity_warning) +endfunction + +function! airline#extensions#languageclient#get_error() + return airline#extensions#languageclient#get(s:severity_error) +endfunction + +function! airline#extensions#languageclient#init(ext) + call airline#parts#define_function('languageclient_error_count', 'airline#extensions#languageclient#get_error') + call airline#parts#define_function('languageclient_warning_count', 'airline#extensions#languageclient#get_warning') + augroup airline_languageclient + autocmd! + autocmd User LanguageClientDiagnosticsChanged call get_diagnostics() + augroup END +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/localsearch.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/localsearch.vim new file mode 100644 index 0000000..7d41e1e --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/localsearch.vim @@ -0,0 +1,36 @@ +" MIT License. Copyright (c) 2018-2019 mox et al. +" Plugin: https://github.com/mox-mox/localsearch +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:enabled = get(g:, 'airline#extensions#localsearch#enabled', 1) +if !get(g:, 'loaded_localsearch', 0) || !s:enabled || get(g:, 'airline#extensions#localsearch#loaded', 0) + finish +endif +let g:airline#extensions#localsearch#loaded = 001 + +let s:spc = g:airline_symbols.space + +function! airline#extensions#localsearch#load_theme(palette) + call airline#highlighter#exec('localsearch_dark', [ '#ffffff' , '#000000' , 15 , 1 , '']) +endfunction + + +function! airline#extensions#localsearch#init(ext) + call a:ext.add_theme_func('airline#extensions#localsearch#load_theme') + call a:ext.add_statusline_func('airline#extensions#localsearch#apply') +endfunction + + +function! airline#extensions#localsearch#apply(...) + " first variable is the statusline builder + let builder = a:1 + + """"" WARNING: the API for the builder is not finalized and may change + if exists('#localsearch#WinEnter') " If localsearch mode is enabled + call builder.add_section('localsearch_dark', s:spc.airline#section#create('LS').s:spc) + endif + return 0 +endfunction + diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/lsp.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/lsp.vim new file mode 100644 index 0000000..8d577b6 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/lsp.vim @@ -0,0 +1,67 @@ +" MIT License. Copyright (c) 2013-2019 François-Xavier Carton et al. +" Plugin: https://github.com/prabirshrestha/vim-lsp +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'lsp_loaded', 0) + finish +endif + +function! s:airline_lsp_count(cnt, symbol) abort + return a:cnt ? a:symbol. a:cnt : '' +endfunction + +function! s:airline_lsp_get_line_number(cnt, type) abort + let result = '' + + if a:type ==# 'error' + let result = lsp#get_buffer_first_error_line() + endif + + if empty(result) + return '' + endif + + let open_lnum_symbol = + \ get(g:, 'airline#extensions#lsp#open_lnum_symbol', '(L') + let close_lnum_symbol = + \ get(g:, 'airline#extensions#lsp#close_lnum_symbol', ')') + + return open_lnum_symbol . result . close_lnum_symbol +endfunction + +function! airline#extensions#lsp#get(type) abort + if !exists(':LspDeclaration') + return '' + endif + + let error_symbol = get(g:, 'airline#extensions#lsp#error_symbol', 'E:') + let warning_symbol = get(g:, 'airline#extensions#lsp#warning_symbol', 'W:') + let show_line_numbers = get(g:, 'airline#extensions#lsp#show_line_numbers', 1) + + let is_err = a:type ==# 'error' + + let symbol = is_err ? error_symbol : warning_symbol + + let num = lsp#get_buffer_diagnostics_counts()[a:type] + + if show_line_numbers == 1 + return s:airline_lsp_count(num, symbol) . airline_lsp_get_line_number(num, a:type) + else + return s:airline_lsp_count(num, symbol) + endif +endfunction + +function! airline#extensions#lsp#get_warning() abort + return airline#extensions#lsp#get('warning') +endfunction + +function! airline#extensions#lsp#get_error() abort + return airline#extensions#lsp#get('error') +endfunction + +function! airline#extensions#lsp#init(ext) abort + call airline#parts#define_function('lsp_error_count', 'airline#extensions#lsp#get_error') + call airline#parts#define_function('lsp_warning_count', 'airline#extensions#lsp#get_warning') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/neomake.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/neomake.vim new file mode 100644 index 0000000..16e534a --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/neomake.vim @@ -0,0 +1,37 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: https://github.com/neomake/neomake +" vim: et ts=2 sts=2 sw=2 + +if !exists(':Neomake') + finish +endif + +let s:error_symbol = get(g:, 'airline#extensions#neomake#error_symbol', 'E:') +let s:warning_symbol = get(g:, 'airline#extensions#neomake#warning_symbol', 'W:') + +function! s:get_counts() + let l:counts = neomake#statusline#LoclistCounts() + + if empty(l:counts) + return neomake#statusline#QflistCounts() + else + return l:counts + endif +endfunction + +function! airline#extensions#neomake#get_warnings() + let counts = s:get_counts() + let warnings = get(counts, 'W', 0) + return warnings ? s:warning_symbol.warnings : '' +endfunction + +function! airline#extensions#neomake#get_errors() + let counts = s:get_counts() + let errors = get(counts, 'E', 0) + return errors ? s:error_symbol.errors : '' +endfunction + +function! airline#extensions#neomake#init(ext) + call airline#parts#define_function('neomake_warning_count', 'airline#extensions#neomake#get_warnings') + call airline#parts#define_function('neomake_error_count', 'airline#extensions#neomake#get_errors') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/netrw.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/netrw.vim new file mode 100644 index 0000000..c6776f4 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/netrw.vim @@ -0,0 +1,35 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: http://www.drchip.org/astronaut/vim/#NETRW +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !exists(':NetrwSettings') + finish +endif + +function! airline#extensions#netrw#apply(...) + if &ft == 'netrw' + let spc = g:airline_symbols.space + + call a:1.add_section('airline_a', spc.'netrw'.spc) + if exists('*airline#extensions#branch#get_head') + call a:1.add_section('airline_b', spc.'%{airline#extensions#branch#get_head()}'.spc) + endif + call a:1.add_section('airline_c', spc.'%f'.spc) + call a:1.split() + call a:1.add_section('airline_y', spc.'%{airline#extensions#netrw#sortstring()}'.spc) + return 1 + endif +endfunction + +function! airline#extensions#netrw#init(ext) + let g:netrw_force_overwrite_statusline = 0 + call a:ext.add_statusline_func('airline#extensions#netrw#apply') +endfunction + + +function! airline#extensions#netrw#sortstring() + let order = (get(g:, 'netrw_sort_direction', 'n') =~ 'n') ? '+' : '-' + return get(g:, 'netrw_sort_by', '') . (g:airline_symbols.space) . '[' . order . ']' +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/nrrwrgn.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/nrrwrgn.vim new file mode 100644 index 0000000..141c14c --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/nrrwrgn.vim @@ -0,0 +1,58 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling, Christian Brabandt et al. +" Plugin: https://github.com/chrisbra/NrrwRgn +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !get(g:, 'loaded_nrrw_rgn', 0) + finish +endif + +function! airline#extensions#nrrwrgn#apply(...) + if exists(":WidenRegion") == 2 + let spc = g:airline_symbols.space + if !exists("*nrrwrgn#NrrwRgnStatus()") || empty(nrrwrgn#NrrwRgnStatus()) + call a:1.add_section('airline_a', printf('%s[Narrowed%s#%d]', spc, spc, b:nrrw_instn)) + let bufname=(get(b:, 'orig_buf', 0) ? bufname(b:orig_buf) : substitute(bufname('%'), '^Nrrwrgn_\zs.*\ze_\d\+$', submatch(0), '')) + call a:1.add_section('airline_c', spc.bufname.spc) + call a:1.split() + else + let dict=nrrwrgn#NrrwRgnStatus() + let vmode = { 'v': 'Char ', 'V': 'Line ', '': 'Block '} + let mode = dict.visual ? vmode[dict.visual] : vmode['V'] + let winwidth = airline#util#winwidth() + if winwidth < 80 + let mode = mode[0] + endif + let title = (winwidth < 80 ? "Nrrw" : "Narrowed ") + let multi = (winwidth < 80 ? 'M' : 'Multi') + call a:1.add_section('airline_a', printf('[%s%s%s#%d]%s', (dict.multi ? multi : ""), + \ title, mode, b:nrrw_instn, spc)) + let name = dict.fullname + if name !=# '[No Name]' + if winwidth > 100 + " need some space + let name = fnamemodify(dict.fullname, ':~') + if strlen(name) > 8 + " shorten name + let name = substitute(name, '\(.\)[^/\\]*\([/\\]\)', '\1\2', 'g') + endif + else + let name = fnamemodify(dict.fullname, ':t') + endif + endif + let range=(dict.multi ? '' : printf("[%d-%d]", dict.start[1], dict.end[1])) + call a:1.add_section('airline_c', printf("%s %s %s", name, range, + \ dict.enabled ? (&encoding ==? 'utf-8' ? "\u2713" : '') : '!')) + call a:1.split() + call a:1.add_section('airline_x', get(g:, 'airline_section_x').spc) + call a:1.add_section('airline_y', spc.get(g:, 'airline_section_y').spc) + call a:1.add_section('airline_z', spc.get(g:, 'airline_section_z')) + endif + return 1 + endif +endfunction + +function! airline#extensions#nrrwrgn#init(ext) + call a:ext.add_statusline_func('airline#extensions#nrrwrgn#apply') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/obsession.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/obsession.vim new file mode 100644 index 0000000..1f6bd8d --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/obsession.vim @@ -0,0 +1,23 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: https://github.com/tpope/vim-obsession +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !exists('*ObsessionStatus') + finish +endif + +let s:spc = g:airline_symbols.space + +if !exists('g:airline#extensions#obsession#indicator_text') + let g:airline#extensions#obsession#indicator_text = '$' +endif + +function! airline#extensions#obsession#init(ext) + call airline#parts#define_function('obsession', 'airline#extensions#obsession#get_status') +endfunction + +function! airline#extensions#obsession#get_status() + return ObsessionStatus((g:airline#extensions#obsession#indicator_text . s:spc), '') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/po.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/po.vim new file mode 100644 index 0000000..8ec3b5c --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/po.vim @@ -0,0 +1,87 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling, Christian Brabandt et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +function! airline#extensions#po#shorten() + " Format and shorte the output of msgfmt + let b:airline_po_stats = substitute(get(b:, 'airline_po_stats', ''), ' \(message\|translation\)s*\.*', '', 'g') + let b:airline_po_stats = substitute(b:airline_po_stats, ', ', '/', 'g') + if exists("g:airline#extensions#po#displayed_limit") + let w:displayed_po_limit = g:airline#extensions#po#displayed_limit + if len(b:airline_po_stats) > w:displayed_po_limit - 1 + let b:airline_po_stats = b:airline_po_stats[0:(w:displayed_po_limit - 2)].(&encoding==?'utf-8' ? '…' : '.'). ']' + endif + endif + if strlen(get(b:, 'airline_po_stats', '')) >= 30 && airline#util#winwidth() < 150 + let fuzzy = '' + let untranslated = '' + let messages = '' + " Shorten [120 translated, 50 fuzzy, 4 untranslated] to [120T/50F/4U] + if b:airline_po_stats =~ 'fuzzy' + let fuzzy = substitute(b:airline_po_stats, '.*\(\d\+\) fuzzy.*', '\1F', '') + if fuzzy == '0F' + let fuzzy = '' + endif + endif + if b:airline_po_stats =~ 'untranslated' + let untranslated = substitute(b:airline_po_stats, '.*\(\d\+\) untranslated.*', '\1U', '') + if untranslated == '0U' + let untranslated = '' + endif + endif + let messages = substitute(b:airline_po_stats, '\(\d\+\) translated.*', '\1T', '') + let b:airline_po_stats = printf('%s%s%s', fuzzy, (empty(fuzzy) || empty(untranslated) ? '' : '/'), untranslated) + if strlen(b:airline_po_stats) < 8 + let b:airline_po_stats = messages. (!empty(b:airline_po_stats) ? '/':''). b:airline_po_stats + endif + endif + let b:airline_po_stats = '['.b:airline_po_stats. ']' +endfunction + +function! airline#extensions#po#on_winenter() + " only reset cache, if the window size changed + if get(b:, 'airline_winwidth', 0) != airline#util#winwidth() + let b:airline_winwidth = airline#util#winwidth() + " needs re-formatting + unlet! b:airline_po_stats + endif +endfunction + +function! airline#extensions#po#apply(...) + if &ft ==# 'po' + call airline#extensions#prepend_to_section('z', '%{airline#extensions#po#stats()}') + " Also reset the cache variable, if a window has been split, e.g. the winwidth changed + autocmd airline BufWritePost * unlet! b:airline_po_stats + autocmd airline WinEnter * call airline#extensions#po#on_winenter() + endif +endfunction + +function! airline#extensions#po#stats() + if exists('b:airline_po_stats') && !empty(b:airline_po_stats) + return b:airline_po_stats + endif + + let cmd = 'msgfmt --statistics -o /dev/null -- ' + if g:airline#init#vim_async + call airline#async#get_msgfmt_stat(cmd, expand('%:p')) + elseif has("nvim") + call airline#async#nvim_get_msgfmt_stat(cmd, expand('%:p')) + else + let airline_po_stats = system(cmd. shellescape(expand('%:p'))) + if v:shell_error + return '' + endif + try + let b:airline_po_stats = split(airline_po_stats, '\n')[0] + catch + let b:airline_po_stats = '' + endtry + call airline#extensions#po#shorten() + endif + return get(b:, 'airline_po_stats', '') +endfunction + +function! airline#extensions#po#init(ext) + call a:ext.add_statusline_func('airline#extensions#po#apply') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/poetv.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/poetv.vim new file mode 100644 index 0000000..56a5f1a --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/poetv.vim @@ -0,0 +1,32 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: https://github.com/petobens/poet_v +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:spc = g:airline_symbols.space + +function! airline#extensions#poetv#init(ext) + call a:ext.add_statusline_func('airline#extensions#poetv#apply') +endfunction + +function! airline#extensions#poetv#apply(...) + if &filetype =~# 'python' + if get(g:, 'poetv_loaded', 0) + let statusline = poetv#statusline() + else + let statusline = fnamemodify($VIRTUAL_ENV, ':t') + endif + if !empty(statusline) + call airline#extensions#append_to_section('x', + \ s:spc.g:airline_right_alt_sep.s:spc.statusline) + endif + endif +endfunction + +function! airline#extensions#poetv#update() + if &filetype =~# 'python' + call airline#extensions#poetv#apply() + call airline#update_statusline() + endif +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/promptline.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/promptline.vim new file mode 100644 index 0000000..1845151 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/promptline.vim @@ -0,0 +1,36 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: https://github.com/edkolev/promptline.vim +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !exists(':PromptlineSnapshot') + finish +endif + +if !exists('airline#extensions#promptline#snapshot_file') || !len('airline#extensions#promptline#snapshot_file') + finish +endif + +let s:prompt_snapshot_file = get(g:, 'airline#extensions#promptline#snapshot_file', '') +let s:color_template = get(g:, 'airline#extensions#promptline#color_template', 'normal') + +function! airline#extensions#promptline#init(ext) + call a:ext.add_theme_func('airline#extensions#promptline#set_prompt_colors') +endfunction + +function! airline#extensions#promptline#set_prompt_colors(palette) + let color_template = has_key(a:palette, s:color_template) ? s:color_template : 'normal' + let mode_palette = a:palette[color_template] + + if !has_key(g:, 'promptline_symbols') + let g:promptline_symbols = { + \ 'left' : g:airline_left_sep, + \ 'right' : g:airline_right_sep, + \ 'left_alt' : g:airline_left_alt_sep, + \ 'right_alt' : g:airline_right_alt_sep} + endif + + let promptline_theme = promptline#api#create_theme_from_airline(mode_palette) + call promptline#api#create_snapshot_with_theme(s:prompt_snapshot_file, promptline_theme) +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/quickfix.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/quickfix.vim new file mode 100644 index 0000000..b3d69c2 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/quickfix.vim @@ -0,0 +1,58 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !exists('g:airline#extensions#quickfix#quickfix_text') + let g:airline#extensions#quickfix#quickfix_text = 'Quickfix' +endif + +if !exists('g:airline#extensions#quickfix#location_text') + let g:airline#extensions#quickfix#location_text = 'Location' +endif + +function! airline#extensions#quickfix#apply(...) + if &buftype == 'quickfix' + let w:airline_section_a = airline#extensions#quickfix#get_type() + let w:airline_section_b = '%{get(w:, "quickfix_title", "")}' + let w:airline_section_c = '' + let w:airline_section_x = '' + endif +endfunction + +function! airline#extensions#quickfix#init(ext) + call a:ext.add_statusline_func('airline#extensions#quickfix#apply') + call a:ext.add_inactive_statusline_func('airline#extensions#quickfix#inactive_qf_window') +endfunction + +function! airline#extensions#quickfix#inactive_qf_window(...) + if getbufvar(a:2.bufnr, '&filetype') is# 'qf' && !empty(airline#util#getwinvar(a:2.winnr, 'quickfix_title', '')) + call setwinvar(a:2.winnr, 'airline_section_c', '[%{get(w:, "quickfix_title", "")}] %f %m') + endif +endfunction + +function! airline#extensions#quickfix#get_type() + if exists("*win_getid") && exists("*getwininfo") + let dict = getwininfo(win_getid()) + if len(dict) > 0 && get(dict[0], 'quickfix', 0) && !get(dict[0], 'loclist', 0) + return g:airline#extensions#quickfix#quickfix_text + elseif len(dict) > 0 && get(dict[0], 'quickfix', 0) && get(dict[0], 'loclist', 0) + return g:airline#extensions#quickfix#location_text + endif + endif + redir => buffers + silent ls + redir END + + let nr = bufnr('%') + for buf in split(buffers, '\n') + if match(buf, '\v^\s*'.nr) > -1 + if match(buf, '\cQuickfix') > -1 + return g:airline#extensions#quickfix#quickfix_text + else + return g:airline#extensions#quickfix#location_text + endif + endif + endfor + return '' +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/syntastic.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/syntastic.vim new file mode 100644 index 0000000..48fe505 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/syntastic.vim @@ -0,0 +1,44 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" Plugin: https://github.com/vim-syntastic/syntastic +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +if !exists(':SyntasticCheck') + finish +endif + +let s:error_symbol = get(g:, 'airline#extensions#syntastic#error_symbol', 'E:') +let s:warning_symbol = get(g:, 'airline#extensions#syntastic#warning_symbol', 'W:') + +function! airline#extensions#syntastic#get_warning() + return airline#extensions#syntastic#get('warning') +endfunction + +function! airline#extensions#syntastic#get_error() + return airline#extensions#syntastic#get('error') +endfunction + +function! airline#extensions#syntastic#get(type) + let _backup = get(g:, 'syntastic_stl_format', '') + let is_err = (a:type is# 'error') + if is_err + let g:syntastic_stl_format = get(g:, 'airline#extensions#syntastic#stl_format_err', '%E{[%fe(#%e)]}') + else + let g:syntastic_stl_format = get(g:, 'airline#extensions#syntastic#stl_format_warn', '%W{[%fw(#%w)]}') + endif + let cnt = SyntasticStatuslineFlag() + if !empty(_backup) + let g:syntastic_stl_format = _backup + endif + if empty(cnt) + return '' + else + return (is_err ? s:error_symbol : s:warning_symbol).cnt + endif +endfunction + +function! airline#extensions#syntastic#init(ext) + call airline#parts#define_function('syntastic-warn', 'airline#extensions#syntastic#get_warning') + call airline#parts#define_function('syntastic-err', 'airline#extensions#syntastic#get_error') +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline.vim new file mode 100644 index 0000000..ea76267 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline.vim @@ -0,0 +1,260 @@ +" MIT License. Copyright (c) 2013-2020 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:taboo = get(g:, 'airline#extensions#taboo#enabled', 1) && get(g:, 'loaded_taboo', 0) +if s:taboo + let g:taboo_tabline = 0 +endif + +let s:ctrlspace = get(g:, 'CtrlSpaceLoaded', 0) +let s:tabws = get(g:, 'tabws_loaded', 0) + +function! airline#extensions#tabline#init(ext) + if has('gui_running') + set guioptions-=e + endif + + autocmd User AirlineToggledOn call s:toggle_on() + autocmd User AirlineToggledOff call s:toggle_off() + + call s:toggle_on() + call a:ext.add_theme_func('airline#extensions#tabline#load_theme') +endfunction + +function! s:toggle_off() + call airline#extensions#tabline#autoshow#off() + call airline#extensions#tabline#tabs#off() + call airline#extensions#tabline#buffers#off() + if s:ctrlspace + call airline#extensions#tabline#ctrlspace#off() + endif + if s:tabws + call airline#extensions#tabline#tabws#off() + endif +endfunction + +function! s:toggle_on() + if get(g:, 'airline_statusline_ontop', 0) + call airline#extensions#tabline#enable() + let &tabline='%!airline#statusline('.winnr().')' + return + endif + call airline#extensions#tabline#autoshow#on() + call airline#extensions#tabline#tabs#on() + call airline#extensions#tabline#buffers#on() + if s:ctrlspace + call airline#extensions#tabline#ctrlspace#on() + endif + if s:tabws + call airline#extensions#tabline#tabws#on() + endif + + set tabline=%!airline#extensions#tabline#get() +endfunction + +function! s:update_tabline(forceit) + if get(g:, 'airline#extensions#tabline#disable_refresh', 0) + return + endif + " loading a session file + " On SessionLoadPost, g:SessionLoad variable is still set :/ + if !a:forceit && get(g:, 'SessionLoad', 0) + return + endif + let match = expand('') + if pumvisible() + return + elseif !get(g:, 'airline#extensions#tabline#enabled', 0) + return + " return, if buffer matches ignore pattern or is directory (netrw) + elseif empty(match) || airline#util#ignore_buf(match) || isdirectory(match) + return + endif + call airline#util#doautocmd('BufMRUChange') + call airline#extensions#tabline#redraw() +endfunction + +function! airline#extensions#tabline#redraw() + " sometimes, the tabline is not correctly updated see #1580 + " so force redraw here + if exists(":redrawtabline") == 2 + redrawtabline + else + " Have to set a property equal to itself to get airline to re-eval. + " Setting `let &tabline=&tabline` destroys the cursor position so we + " need something less invasive. + let &ro = &ro + endif +endfunction + +function! airline#extensions#tabline#enable() + if &lines > 3 + set showtabline=2 + endif +endfunction + +function! airline#extensions#tabline#load_theme(palette) + if pumvisible() + return + endif + let colors = get(a:palette, 'tabline', {}) + let tablabel = get(colors, 'airline_tablabel', a:palette.normal.airline_b) + " Theme for tabs on the left + let tab = get(colors, 'airline_tab', a:palette.normal.airline_b) + let tabsel = get(colors, 'airline_tabsel', a:palette.normal.airline_a) + let tabtype = get(colors, 'airline_tabtype', a:palette.visual.airline_a) + let tabfill = get(colors, 'airline_tabfill', a:palette.normal.airline_c) + let tabmod = get(colors, 'airline_tabmod', a:palette.insert.airline_a) + let tabhid = get(colors, 'airline_tabhid', a:palette.normal.airline_c) + if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c') + let tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal_modified.airline_c) + else + "Fall back to normal airline_c if modified airline_c isn't present + let tabmodu = get(colors, 'airline_tabmod_unsel', a:palette.normal.airline_c) + endif + call airline#highlighter#exec('airline_tablabel', tablabel) + call airline#highlighter#exec('airline_tab', tab) + call airline#highlighter#exec('airline_tabsel', tabsel) + call airline#highlighter#exec('airline_tabtype', tabtype) + call airline#highlighter#exec('airline_tabfill', tabfill) + call airline#highlighter#exec('airline_tabmod', tabmod) + call airline#highlighter#exec('airline_tabmod_unsel', tabmodu) + call airline#highlighter#exec('airline_tabhid', tabhid) + + " Theme for tabs on the right + " label on the right + let tablabel_r = get(colors, 'airline_tablabel', a:palette.normal.airline_b) + let tabsel_right = get(colors, 'airline_tabsel_right', a:palette.normal.airline_a) + let tab_right = get(colors, 'airline_tab_right', a:palette.inactive.airline_c) + let tabmod_right = get(colors, 'airline_tabmod_right', a:palette.insert.airline_a) + let tabhid_right = get(colors, 'airline_tabhid_right', a:palette.normal.airline_c) + if has_key(a:palette, 'normal_modified') && has_key(a:palette.normal_modified, 'airline_c') + let tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal_modified.airline_c) + else + "Fall back to normal airline_c if modified airline_c isn't present + let tabmodu_right = get(colors, 'airline_tabmod_unsel_right', a:palette.normal.airline_c) + endif + call airline#highlighter#exec('airline_tablabel_right', tablabel_r) + call airline#highlighter#exec('airline_tab_right', tab_right) + call airline#highlighter#exec('airline_tabsel_right', tabsel_right) + call airline#highlighter#exec('airline_tabmod_right', tabmod_right) + call airline#highlighter#exec('airline_tabhid_right', tabhid_right) + call airline#highlighter#exec('airline_tabmod_unsel_right', tabmodu_right) +endfunction + +let s:current_tabcnt = -1 + +function! airline#extensions#tabline#get() + let show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) + let show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1) + + let curtabcnt = tabpagenr('$') + if curtabcnt != s:current_tabcnt + let s:current_tabcnt = curtabcnt + call airline#extensions#tabline#tabs#invalidate() + call airline#extensions#tabline#buffers#invalidate() + call airline#extensions#tabline#ctrlspace#invalidate() + call airline#extensions#tabline#tabws#invalidate() + endif + + if !exists('#airline#BufAdd#*') + autocmd airline BufAdd * call update_tabline(0) + endif + if !exists('#airline#SessionLoadPost') + autocmd airline SessionLoadPost * call update_tabline(1) + endif + if s:ctrlspace + return airline#extensions#tabline#ctrlspace#get() + elseif s:tabws + return airline#extensions#tabline#tabws#get() + elseif show_buffers && curtabcnt == 1 || !show_tabs + return airline#extensions#tabline#buffers#get() + else + return airline#extensions#tabline#tabs#get() + endif +endfunction + +function! airline#extensions#tabline#title(n) + let title = '' + if s:taboo + let title = TabooTabTitle(a:n) + endif + + if empty(title) && exists('*gettabvar') + let title = gettabvar(a:n, 'title') + endif + + if empty(title) + let buflist = tabpagebuflist(a:n) + let winnr = tabpagewinnr(a:n) + let all_buffers = airline#extensions#tabline#buflist#list() + return airline#extensions#tabline#get_buffer_name( + \ buflist[winnr - 1], + \ filter(buflist, 'index(all_buffers, v:val) != -1')) + endif + + return title +endfunction + +function! airline#extensions#tabline#get_buffer_name(nr, ...) + let buffers = a:0 ? a:1 : airline#extensions#tabline#buflist#list() + let formatter = get(g:, 'airline#extensions#tabline#formatter', 'default') + return airline#extensions#tabline#formatters#{formatter}#format(a:nr, buffers) +endfunction + +function! airline#extensions#tabline#new_builder() + let builder_context = { + \ 'active' : 1, + \ 'tabline' : 1, + \ 'right_sep' : get(g:, 'airline#extensions#tabline#right_sep' , g:airline_right_sep), + \ 'right_alt_sep' : get(g:, 'airline#extensions#tabline#right_alt_sep', g:airline_right_alt_sep), + \ } + if get(g:, 'airline_powerline_fonts', 0) + let builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , g:airline_left_sep) + let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , g:airline_left_alt_sep) + else + let builder_context.left_sep = get(g:, 'airline#extensions#tabline#left_sep' , ' ') + let builder_context.left_alt_sep = get(g:, 'airline#extensions#tabline#left_alt_sep' , '|') + endif + + return airline#extensions#tabline#builder#new(builder_context) +endfunction + +function! airline#extensions#tabline#group_of_bufnr(tab_bufs, bufnr) + let cur = bufnr('%') + if cur == a:bufnr + if g:airline_detect_modified && getbufvar(a:bufnr, '&modified') + let group = 'airline_tabmod' + else + let group = 'airline_tabsel' + endif + else + if g:airline_detect_modified && getbufvar(a:bufnr, '&modified') + let group = 'airline_tabmod_unsel' + elseif index(a:tab_bufs, a:bufnr) > -1 + let group = 'airline_tab' + else + let group = 'airline_tabhid' + endif + endif + return group +endfunction + +function! airline#extensions#tabline#add_label(dict, type, right) + if get(g:, 'airline#extensions#tabline#show_tab_type', 1) + call a:dict.add_section_spaced('airline_tablabel'. + \ (a:right ? '_right' : ''), + \ get(g:, 'airline#extensions#tabline#'.a:type.'_label', a:type)) + endif +endfunction + +function! airline#extensions#tabline#add_tab_label(dict) + let show_tab_count = get(g:, 'airline#extensions#tabline#show_tab_count', 1) + if show_tab_count == 2 + call a:dict.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$'))) + elseif show_tab_count == 1 && tabpagenr('$') > 1 + call a:dict.add_section_spaced('airline_tabmod', printf('%s %d/%d', "tab", tabpagenr(), tabpagenr('$'))) + endif +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/autoshow.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/autoshow.vim new file mode 100644 index 0000000..849f9a0 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/autoshow.vim @@ -0,0 +1,53 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) +let s:buf_min_count = get(g:, 'airline#extensions#tabline#buffer_min_count', 0) +let s:tab_min_count = get(g:, 'airline#extensions#tabline#tab_min_count', 0) + +function! airline#extensions#tabline#autoshow#off() + if exists('s:original_tabline') + let &tabline = s:original_tabline + let &showtabline = s:original_showtabline + endif + + augroup airline_tabline_autoshow + autocmd! + augroup END +endfunction + +function! airline#extensions#tabline#autoshow#on() + let [ s:original_tabline, s:original_showtabline ] = [ &tabline, &showtabline ] + + augroup airline_tabline_autoshow + autocmd! + if s:buf_min_count <= 0 && s:tab_min_count <= 1 + call airline#extensions#tabline#enable() + else + if s:show_buffers == 1 + autocmd BufEnter * call show_tabline(s:buf_min_count, len(airline#extensions#tabline#buflist#list())) + autocmd BufUnload * call show_tabline(s:buf_min_count, len(airline#extensions#tabline#buflist#list()) - 1) + else + autocmd TabEnter * call show_tabline(s:tab_min_count, tabpagenr('$')) + endif + endif + + " Invalidate cache. This has to come after the BufUnload for + " s:show_buffers, to invalidate the cache for BufEnter. + autocmd BufLeave,BufAdd,BufUnload * call airline#extensions#tabline#buflist#invalidate() + augroup END +endfunction + +function! s:show_tabline(min_count, total_count) + if a:total_count >= a:min_count + if &showtabline != 2 && &lines > 3 + set showtabline=2 + endif + else + if &showtabline != 0 + set showtabline=0 + endif + endif +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buffers.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buffers.vim new file mode 100644 index 0000000..f6675ee --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buffers.vim @@ -0,0 +1,266 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:spc = g:airline_symbols.space + +let s:current_bufnr = -1 +let s:current_modified = 0 +let s:current_tabline = '' +let s:current_visible_buffers = [] + +let s:number_map = { + \ '0': '⁰', + \ '1': '¹', + \ '2': '²', + \ '3': '³', + \ '4': '⁴', + \ '5': '⁵', + \ '6': '⁶', + \ '7': '⁷', + \ '8': '⁸', + \ '9': '⁹' + \ } +let s:number_map = &encoding == 'utf-8' + \ ? get(g:, 'airline#extensions#tabline#buffer_idx_format', s:number_map) + \ : {} + +function! airline#extensions#tabline#buffers#off() + augroup airline_tabline_buffers + autocmd! + augroup END +endfunction + +function! airline#extensions#tabline#buffers#on() + let terminal_event = has("nvim") ? 'TermOpen' : 'TerminalOpen' + augroup airline_tabline_buffers + autocmd! + autocmd BufDelete * call airline#extensions#tabline#buflist#clean() + if exists("##".terminal_event) + exe 'autocmd '. terminal_event. ' * call airline#extensions#tabline#buflist#clean()' + endif + autocmd User BufMRUChange call airline#extensions#tabline#buflist#clean() + augroup END +endfunction + +function! airline#extensions#tabline#buffers#invalidate() + let s:current_bufnr = -1 +endfunction + +function! airline#extensions#tabline#buffers#get() + try + call map_keys() + catch + " no-op + endtry + let cur = bufnr('%') + if cur == s:current_bufnr && &columns == s:column_width + if !g:airline_detect_modified || getbufvar(cur, '&modified') == s:current_modified + return s:current_tabline + endif + endif + + let b = airline#extensions#tabline#new_builder() + let tab_bufs = tabpagebuflist(tabpagenr()) + let show_buf_label_first = 0 + + if get(g:, 'airline#extensions#tabline#buf_label_first', 0) + let show_buf_label_first = 1 + endif + if show_buf_label_first + call airline#extensions#tabline#add_label(b, 'buffers', 0) + endif + + let b.tab_bufs = tabpagebuflist(tabpagenr()) + + let b.overflow_group = 'airline_tabhid' + let b.buffers = airline#extensions#tabline#buflist#list() + if get(g:, 'airline#extensions#tabline#current_first', 0) + if index(b.buffers, cur) > -1 + call remove(b.buffers, index(b.buffers, cur)) + endif + let b.buffers = [cur] + b.buffers + endif + + function! b.get_group(i) dict + let bufnum = get(self.buffers, a:i, -1) + if bufnum == -1 + return '' + endif + let group = airline#extensions#tabline#group_of_bufnr(self.tab_bufs, bufnum) + if bufnum == bufnr('%') + let s:current_modified = (group == 'airline_tabmod') ? 1 : 0 + endif + return group + endfunction + + if has("tablineat") + function! b.get_pretitle(i) dict + let bufnum = get(self.buffers, a:i, -1) + return '%'.bufnum.'@airline#extensions#tabline#buffers#clickbuf@' + endfunction + + function! b.get_posttitle(i) dict + return '%X' + endfunction + endif + + function! b.get_title(i) dict + let bufnum = get(self.buffers, a:i, -1) + let group = self.get_group(a:i) + let pgroup = self.get_group(a:i - 1) + " always add a space when powerline_fonts are used + " or for the very first item + if get(g:, 'airline_powerline_fonts', 0) || a:i == 0 + let space = s:spc + else + let space= (pgroup == group ? s:spc : '') + endif + + if get(g:, 'airline#extensions#tabline#buffer_idx_mode', 0) + if len(s:number_map) > 0 + return space. s:get_number(a:i) . '%(%{airline#extensions#tabline#get_buffer_name('.bufnum.')}%)' . s:spc + else + return '['.(a:i+1).s:spc.'%(%{airline#extensions#tabline#get_buffer_name('.bufnum.')}%)'.']' + endif + else + return space.'%(%{airline#extensions#tabline#get_buffer_name('.bufnum.')}%)'.s:spc + endif + endfunction + + let current_buffer = max([index(b.buffers, cur), 0]) + let last_buffer = len(b.buffers) - 1 + call b.insert_titles(current_buffer, 0, last_buffer) + + call b.add_section('airline_tabfill', '') + call b.split() + call b.add_section('airline_tabfill', '') + if !show_buf_label_first + call airline#extensions#tabline#add_label(b, 'buffers', 1) + endif + + call airline#extensions#tabline#add_tab_label(b) + + let s:current_bufnr = cur + let s:column_width = &columns + let s:current_tabline = b.build() + let s:current_visible_buffers = copy(b.buffers) + " Do not remove from s:current_visible_buffers, this breaks s:select_tab() + "if b._right_title <= last_buffer + " call remove(s:current_visible_buffers, b._right_title, last_buffer) + "endif + "if b._left_title > 0 + " call remove(s:current_visible_buffers, 0, b._left_title) + "endif + return s:current_tabline +endfunction + +function! s:get_number(index) + if len(s:number_map) == 0 + return a:index + endif + let bidx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 0) + if bidx_mode > 1 + let l:count = bidx_mode == 2 ? a:index+11 : a:index+1 + return join(map(split(printf('%02d', l:count), '\zs'), + \ 'get(s:number_map, v:val, "")'), '') + else + return get(s:number_map, a:index+1, '') + endif +endfunction + +function! s:select_tab(buf_index) + " no-op when called in 'keymap_ignored_filetypes' + if count(get(g:, 'airline#extensions#tabline#keymap_ignored_filetypes', + \ ['vimfiler', 'nerdtree']), &ft) + return + endif + let idx = a:buf_index + if s:current_visible_buffers[0] == -1 + let idx = idx + 1 + endif + + let buf = get(s:current_visible_buffers, idx, 0) + if buf != 0 + exec 'b!' . buf + endif +endfunction + +function! s:jump_to_tab(offset) + let l = airline#extensions#tabline#buflist#list() + let i = index(l, bufnr('%')) + if i > -1 + exec 'b!' . l[(i + a:offset) % len(l)] + endif +endfunction + +function! s:map_keys() + let bidx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 1) + if bidx_mode > 0 + if bidx_mode == 1 + for i in range(1, 9) + exe printf('noremap AirlineSelectTab%d :call select_tab(%d)', i, i-1) + endfor + else + let start_idx = bidx_mode == 2 ? 11 : 1 + for i in range(start_idx, 99) + exe printf('noremap AirlineSelectTab%02d :call select_tab(%d)', i, i-start_idx) + endfor + endif + noremap AirlineSelectPrevTab :call jump_to_tab(-v:count1) + noremap AirlineSelectNextTab :call jump_to_tab(v:count1) + " Enable this for debugging + " com! AirlineBufferList :echo map(copy(s:current_visible_buffers), {i,k -> k.": ".bufname(k)}) + endif +endfunction + +function! airline#extensions#tabline#buffers#clickbuf(minwid, clicks, button, modifiers) abort + " Clickable buffers + " works only in recent NeoVim with has('tablineat') + + " single mouse button click without modifiers pressed + if a:clicks == 1 && a:modifiers !~# '[^ ]' + if a:button is# 'l' + " left button - switch to buffer + silent execute 'buffer' a:minwid + elseif a:button is# 'm' + " middle button - delete buffer + + if get(g:, 'airline#extensions#tabline#middle_click_preserves_windows', 0) == 0 || winnr('$') == 1 + " just simply delete the clicked buffer. This will cause windows + " associated with the clicked buffer to be closed. + silent execute 'bdelete' a:minwid + else + " find windows displaying the clicked buffer and open an new + " buffer in them. + let current_window = bufwinnr("%") + let window_number = bufwinnr(a:minwid) + let last_window_visited = -1 + + " Set to 1 if the clicked buffer was open in any windows. + let buffer_in_window = 0 + + " Find the next window with the clicked buffer open. If bufwinnr() + " returns the same window number, this is because we clicked a new + " buffer, and then tried editing a new buffer. Vim won't create a + " new empty buffer for the same window, so we get the same window + " number from bufwinnr(). In this case we just give up and don't + " delete the buffer. + " This could be made cleaner if we could check if the clicked buffer + " is a new buffer, but I don't know if there is a way to do that. + while window_number != -1 && window_number != last_window_visited + let buffer_in_window = 1 + silent execute window_number . 'wincmd w' + silent execute 'enew' + let last_window_visited = window_number + let window_number = bufwinnr(a:minwid) + endwhile + silent execute current_window . 'wincmd w' + if window_number != last_window_visited || buffer_in_window == 0 + silent execute 'bdelete' a:minwid + endif + endif + endif + endif +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buflist.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buflist.vim new file mode 100644 index 0000000..f914e2a --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/buflist.vim @@ -0,0 +1,81 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +function! airline#extensions#tabline#buflist#invalidate() + unlet! s:current_buffer_list +endfunction + +function! airline#extensions#tabline#buflist#clean() + call airline#extensions#tabline#buflist#invalidate() + call airline#extensions#tabline#buffers#invalidate() +endfunction + +" paths in excludes list +function! s:ExcludePaths(nr, exclude_paths) + let bname = bufname(a:nr) + if empty(bname) + return 0 + endif + let bpath = fnamemodify(bname, ":p") + for f in a:exclude_paths + if bpath =~# f | return 1 | endif + endfor +endfunction + +" other types to exclude +function! s:ExcludeOther(nr, exclude_preview) + if (getbufvar(a:nr, 'current_syntax') == 'qf') || + \ (a:exclude_preview && getbufvar(a:nr, '&bufhidden') == 'wipe' + \ && getbufvar(a:nr, '&buftype') == 'nofile') + return 1 | endif +endfunction + +function! airline#extensions#tabline#buflist#list() + if exists('s:current_buffer_list') + return s:current_buffer_list + endif + + let exclude_buffers = get(g:, 'airline#extensions#tabline#exclude_buffers', []) + let exclude_paths = get(g:, 'airline#extensions#tabline#excludes', []) + let exclude_preview = get(g:, 'airline#extensions#tabline#exclude_preview', 1) + + let list = (exists('g:did_bufmru') && g:did_bufmru) ? BufMRUList() : range(1, bufnr("$")) + + let buffers = [] + " If this is too slow, we can switch to a different algorithm. + " Basically branch 535 already does it, but since it relies on + " BufAdd autocommand, I'd like to avoid this if possible. + for nr in list + if buflisted(nr) + " Do not add to the bufferlist, if either + " 1) bufnr is exclude_buffers list + " 2) buffername matches one of exclude_paths patterns + " 3) buffer is a quickfix buffer + " 4) when excluding preview windows: + " 'bufhidden' == wipe + " 'buftype' == nofile + " 5) ignore buffers matching airline#extensions#tabline#ignore_bufadd_pat + + " check buffer numbers first + if index(exclude_buffers, nr) >= 0 + continue + " check paths second + elseif !empty(exclude_paths) && s:ExcludePaths(nr, exclude_paths) + continue + " ignore buffers matching airline#extensions#tabline#ignore_bufadd_pat + elseif airline#util#ignore_buf(bufname(nr)) + continue + " check other types last + elseif s:ExcludeOther(nr, exclude_preview) + continue + endif + + call add(buffers, nr) + endif + endfor + + let s:current_buffer_list = buffers + return buffers +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim new file mode 100644 index 0000000..1a01dca --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/builder.vim @@ -0,0 +1,232 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:prototype = {} + +" Set the point in the tabline where the builder should insert the titles. +" +" Subsequent calls will overwrite the previous ones, so only the last call +" determines to location to insert titles. +" +" NOTE: The titles are not inserted until |build| is called, so that the +" remaining contents of the tabline can be taken into account. +" +" Callers should define at least |get_title| and |get_group| on the host +" object before calling |build|. +function! s:prototype.insert_titles(current, first, last) dict + let self._first_title = a:first " lowest index + let self._last_title = a:last " highest index + let self._left_title = a:current " next index to add on the left + let self._right_title = a:current + 1 " next index to add on the right + let self._left_position = self.get_position() " left end of titles + let self._right_position = self._left_position " right end of the titles +endfunction + +" Insert a title for entry number |index|, of group |group| at position |pos|, +" if there is space for it. Returns 1 if it is inserted, 0 otherwise +" +" |force| inserts the title even if there isn't enough space left for it. +" |sep_size| adjusts the size change that the title is considered to take up, +" to account for changes to the separators +" +" The title is defined by |get_title| on the hosting object, called with +" |index| as its only argument. +" |get_pretitle| and |get_posttitle| may be defined on the host object to +" insert some formatting before or after the title. These should be 0-width. +" +" This method updates |_right_position| and |_remaining_space| on the host +" object, if the title is inserted. +function! s:prototype.try_insert_title(index, group, pos, sep_size, force) dict + let title = self.get_title(a:index) + let title_size = s:tabline_evaluated_length(title) + a:sep_size + if a:force || self._remaining_space >= title_size + let pos = a:pos + if has_key(self, "get_pretitle") + call self.insert_raw(self.get_pretitle(a:index), pos) + let self._right_position += 1 + let pos += 1 + endif + + call self.insert_section(a:group, title, pos) + let self._right_position += 1 + let pos += 1 + + if has_key(self, "get_posttitle") + call self.insert_raw(self.get_posttitle(a:index), pos) + let self._right_position += 1 + let pos += 1 + endif + + let self._remaining_space -= title_size + return 1 + endif + return 0 +endfunction + +function! s:get_separator_change(new_group, old_group, end_group, sep_size, alt_sep_size) + return s:get_separator_change_with_end(a:new_group, a:old_group, a:end_group, a:end_group, a:sep_size, a:alt_sep_size) +endfunction + +" Compute the change in size of the tabline caused by separators +" +" This should be kept up-to-date with |s:get_transitioned_seperator| and +" |s:get_separator| in autoload/airline/builder.vim +function! s:get_separator_change_with_end(new_group, old_group, new_end_group, old_end_group, sep_size, alt_sep_size) + let sep_change = 0 + if !empty(a:new_end_group) " Separator between title and the end + let sep_change += airline#builder#should_change_group(a:new_group, a:new_end_group) ? a:sep_size : a:alt_sep_size + endif + if !empty(a:old_group) " Separator between the title and the one adjacent + let sep_change += airline#builder#should_change_group(a:new_group, a:old_group) ? a:sep_size : a:alt_sep_size + if !empty(a:old_end_group) " Remove mis-predicted separator + let sep_change -= airline#builder#should_change_group(a:old_group, a:old_end_group) ? a:sep_size : a:alt_sep_size + endif + endif + return sep_change +endfunction + +" This replaces the build function of the |airline#builder#new| object, to +" insert titles as specified by the last call to |insert_titles| before +" passing to the original build function. +" +" Callers should define at least |get_title| and |get_group| on the host +" object if |insert_titles| has been called on it. +function! s:prototype.build() dict + if has_key(self, '_left_position') && self._first_title <= self._last_title + let self._remaining_space = &columns - s:tabline_evaluated_length(self._build()) + + let center_active = get(g:, 'airline#extensions#tabline#center_active', 0) + + let sep_size = s:tabline_evaluated_length(self._context.left_sep) + let alt_sep_size = s:tabline_evaluated_length(self._context.left_alt_sep) + + let outer_left_group = airline#builder#get_prev_group(self._sections, self._left_position) + let outer_right_group = airline#builder#get_next_group(self._sections, self._right_position) + + let overflow_marker = get(g:, 'airline#extensions#tabline#overflow_marker', g:airline_symbols.ellipsis) + let overflow_marker_size = s:tabline_evaluated_length(overflow_marker) + " Allow space for the markers before we begin filling in titles. + if self._left_title > self._first_title + let self._remaining_space -= overflow_marker_size + + \ s:get_separator_change(self.overflow_group, "", outer_left_group, sep_size, alt_sep_size) + endif + if self._left_title < self._last_title + let self._remaining_space -= overflow_marker_size + + \ s:get_separator_change(self.overflow_group, "", outer_right_group, sep_size, alt_sep_size) + endif + + " Add the current title + let group = self.get_group(self._left_title) + if self._left_title == self._first_title + let sep_change = s:get_separator_change(group, "", outer_left_group, sep_size, alt_sep_size) + else + let sep_change = s:get_separator_change(group, "", self.overflow_group, sep_size, alt_sep_size) + endif + if self._left_title == self._last_title + let sep_change += s:get_separator_change(group, "", outer_right_group, sep_size, alt_sep_size) + else + let sep_change += s:get_separator_change(group, "", self.overflow_group, sep_size, alt_sep_size) + endif + let left_group = group + let right_group = group + let self._left_title -= + \ self.try_insert_title(self._left_title, group, self._left_position, sep_change, 1) + + if get(g:, 'airline#extensions#tabline#current_first', 0) + " always have current title first + let self._left_position += 1 + endif + + if !center_active && self._right_title <= self._last_title + " Add the title to the right + let group = self.get_group(self._right_title) + if self._right_title == self._last_title + let sep_change = s:get_separator_change_with_end(group, right_group, outer_right_group, self.overflow_group, sep_size, alt_sep_size) - overflow_marker_size + else + let sep_change = s:get_separator_change(group, right_group, self.overflow_group, sep_size, alt_sep_size) + endif + let right_group = group + let self._right_title += + \ self.try_insert_title(self._right_title, group, self._right_position, sep_change, 1) + endif + + while self._remaining_space > 0 + let done = 0 + if self._left_title >= self._first_title + " Insert next title to the left + let group = self.get_group(self._left_title) + if self._left_title == self._first_title + let sep_change = s:get_separator_change_with_end(group, left_group, outer_left_group, self.overflow_group, sep_size, alt_sep_size) - overflow_marker_size + else + let sep_change = s:get_separator_change(group, left_group, self.overflow_group, sep_size, alt_sep_size) + endif + let left_group = group + let done = self.try_insert_title(self._left_title, group, self._left_position, sep_change, 0) + let self._left_title -= done + endif + " If center_active is set, this |if| operates as an independent |if|, + " otherwise as an |elif|. + if self._right_title <= self._last_title && (center_active || !done) + " Insert next title to the right + let group = self.get_group(self._right_title) + if self._right_title == self._last_title + let sep_change = s:get_separator_change_with_end(group, right_group, outer_right_group, self.overflow_group, sep_size, alt_sep_size) - overflow_marker_size + else + let sep_change = s:get_separator_change(group, right_group, self.overflow_group, sep_size, alt_sep_size) + endif + let right_group = group + let done = self.try_insert_title(self._right_title, group, self._right_position, sep_change, 0) + let self._right_title += done + endif + if !done + break + endif + endwhile + + if self._left_title >= self._first_title + if get(g:, 'airline#extensions#tabline#current_first', 0) + let self._left_position -= 1 + endif + call self.insert_section(self.overflow_group, overflow_marker, self._left_position) + let self._right_position += 1 + endif + + if self._right_title <= self._last_title + call self.insert_section(self.overflow_group, overflow_marker, self._right_position) + endif + endif + + return self._build() +endfunction + +let s:prototype.overflow_group = 'airline_tab' + +" Extract the text content a tabline will render. (Incomplete). +" +" See :help 'statusline' for the list of fields. +function! s:evaluate_tabline(tabline) + let tabline = a:tabline + let tabline = substitute(tabline, '%{\([^}]\+\)}', '\=eval(submatch(1))', 'g') + let tabline = substitute(tabline, '%#[^#]\+#', '', 'g') + let tabline = substitute(tabline, '%(\([^)]\+\)%)', '\1', 'g') + let tabline = substitute(tabline, '%\d\+[TX]', '', 'g') + let tabline = substitute(tabline, '%=', '', 'g') + let tabline = substitute(tabline, '%\d*\*', '', 'g') + if has('tablineat') + let tabline = substitute(tabline, '%@[^@]\+@', '', 'g') + endif + return tabline +endfunction + +function! s:tabline_evaluated_length(tabline) + return airline#util#strchars(s:evaluate_tabline(a:tabline)) +endfunction + +function! airline#extensions#tabline#builder#new(context) + let builder = airline#builder#new(a:context) + let builder._build = builder.build + call extend(builder, s:prototype, 'force') + return builder +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim new file mode 100644 index 0000000..1ed00d9 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/ctrlspace.vim @@ -0,0 +1,158 @@ +" MIT License. Copyright (c) 2016-2019 Kevin Sapper et al. +" Plugin: https://github.com/szw/vim-ctrlspace +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:current_bufnr = -1 +let s:current_modified = 0 +let s:current_tabnr = -1 +let s:current_tabline = '' +let s:highlight_groups = ['hid', 0, '', 'sel', 'mod_unsel', 0, 'mod_unsel', 'mod'] + +function! airline#extensions#tabline#ctrlspace#off() + augroup airline_tabline_ctrlspace + autocmd! + augroup END +endfunction + +function! airline#extensions#tabline#ctrlspace#on() + augroup airline_tabline_ctrlspace + autocmd! + autocmd BufDelete * call airline#extensions#tabline#ctrlspace#invalidate() + augroup END +endfunction + +function! airline#extensions#tabline#ctrlspace#invalidate() + let s:current_bufnr = -1 + let s:current_tabnr = -1 +endfunction + +function! airline#extensions#tabline#ctrlspace#add_buffer_section(builder, cur_tab, cur_buf, pull_right) + let pos_extension = (a:pull_right ? '_right' : '') + let buffer_list = ctrlspace#api#BufferList(a:cur_tab) + + " add by tenfy(tenfyzhong@qq.com) + " if the current buffer no in the buffer list + " return false and no redraw tabline. + " Fixes #1515. if there a BufEnter autocmd execute redraw. The tabline may no update. + let bufnr_list = map(copy(buffer_list), 'v:val["index"]') + if index(bufnr_list, a:cur_buf) == -1 && a:cur_tab == s:current_tabnr + return 0 + endif + + let s:current_modified = getbufvar(a:cur_buf, '&modified') + + for buffer in buffer_list + let group = 'airline_tab' + \ .s:highlight_groups[(4 * buffer.modified) + (2 * buffer.visible) + (a:cur_buf == buffer.index)] + \ .pos_extension + + let buf_name = '%(%{airline#extensions#tabline#get_buffer_name('.buffer.index.')}%)' + + if has("tablineat") + let buf_name = '%'.buffer.index.'@airline#extensions#tabline#buffers#clickbuf@'.buf_name.'%X' + endif + + call a:builder.add_section_spaced(group, buf_name) + endfor + + " add by tenfy(tenfyzhong@qq.com) + " if the selected buffer was updated + " return true + return 1 +endfunction + +function! airline#extensions#tabline#ctrlspace#add_tab_section(builder, pull_right) + let pos_extension = (a:pull_right ? '_right' : '') + let tab_list = ctrlspace#api#TabList() + + for tab in tab_list + let group = 'airline_tab' + \ .s:highlight_groups[(4 * tab.modified) + (3 * tab.current)] + \ .pos_extension + + if get(g:, 'airline#extensions#tabline#ctrlspace_show_tab_nr', 0) == 0 + call a:builder.add_section_spaced(group, '%'.tab.index.'T'.tab.title.ctrlspace#api#TabBuffersNumber(tab.index).'%T') + else + call a:builder.add_section_spaced(group, '%'.(tab.index).'T'.(tab.index).(g:airline_symbols.space).(tab.title).ctrlspace#api#TabBuffersNumber(tab.index).'%T') + endif + endfor +endfunction + +function! airline#extensions#tabline#ctrlspace#get() + let cur_buf = bufnr('%') + let buffer_label = get(g:, 'airline#extensions#tabline#buffers_label', 'buffers') + let tab_label = get(g:, 'airline#extensions#tabline#tabs_label', 'tabs') + let switch_buffers_and_tabs = get(g:, 'airline#extensions#tabline#switch_buffers_and_tabs', 0) + + try + call airline#extensions#tabline#tabs#map_keys() + endtry + + let cur_tab = tabpagenr() + + if cur_buf == s:current_bufnr && cur_tab == s:current_tabnr + if !g:airline_detect_modified || getbufvar(cur_buf, '&modified') == s:current_modified + return s:current_tabline + endif + endif + + let builder = airline#extensions#tabline#new_builder() + + let show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) + let show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1) + + let AppendBuffers = function('airline#extensions#tabline#ctrlspace#add_buffer_section', [builder, cur_tab, cur_buf]) + let AppendTabs = function('airline#extensions#tabline#ctrlspace#add_tab_section', [builder]) + let AppendLabel = function(builder.add_section_spaced, ['airline_tabtype'], builder) + + " <= 1: |{Tabs} {Buffers} {Tabs} s:fnametruncate + let _ = strpart(_, 0, s:fnametruncate) + endif + endif + + return airline#extensions#tabline#formatters#default#wrap_name(a:bufnr, _) +endfunction + +function! airline#extensions#tabline#formatters#default#wrap_name(bufnr, buffer_name) + let _ = s:buf_nr_show ? printf(s:buf_nr_format, a:bufnr) : '' + let _ .= substitute(a:buffer_name, '\\', '/', 'g') + + if getbufvar(a:bufnr, '&modified') == 1 + let _ .= s:buf_modified_symbol + endif + return _ +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/jsformatter.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/jsformatter.vim new file mode 100644 index 0000000..0617bb8 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/jsformatter.vim @@ -0,0 +1,15 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +function! airline#extensions#tabline#formatters#jsformatter#format(bufnr, buffers) + let buf = bufname(a:bufnr) + let filename = fnamemodify(buf, ':t') + + if filename == 'index.js' || filename == 'index.jsx' || filename == 'index.ts' || filename == 'index.tsx' + return fnamemodify(buf, ':p:h:t') . '/i' + else + return airline#extensions#tabline#formatters#unique_tail_improved#format(a:bufnr, a:buffers) + endif +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/short_path.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/short_path.vim new file mode 100644 index 0000000..b703384 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/short_path.vim @@ -0,0 +1,22 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:fnamecollapse = get(g:, 'airline#extensions#tabline#fnamecollapse', 1) + +function! airline#extensions#tabline#formatters#short_path#format(bufnr, buffers) + let _ = '' + + let name = bufname(a:bufnr) + if empty(name) + let _ .= '[No Name]' + elseif name =~ 'term://' + " Neovim Terminal + let _ = substitute(name, '\(term:\)//.*:\(.*\)', '\1 \2', '') + else + let _ .= fnamemodify(name, ':p:h:t') . '/' . fnamemodify(name, ':t') + endif + + return airline#extensions#tabline#formatters#default#wrap_name(a:bufnr, _) +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/tabnr.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/tabnr.vim new file mode 100644 index 0000000..8b2f452 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/tabnr.vim @@ -0,0 +1,15 @@ +" MIT License. Copyright (c) 2017-2019 Christian Brabandt et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +function! airline#extensions#tabline#formatters#tabnr#format(tab_nr_type, nr) + let spc=g:airline_symbols.space + if a:tab_nr_type == 0 " nr of splits + return spc. '%{len(tabpagebuflist('.a:nr.'))}' + elseif a:tab_nr_type == 1 " tab number + return spc. a:nr + else "== 2 splits and tab number + return spc. a:nr. '.%{len(tabpagebuflist('.a:nr.'))}' + endif +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail.vim new file mode 100644 index 0000000..ecda323 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail.vim @@ -0,0 +1,46 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +function! airline#extensions#tabline#formatters#unique_tail#format(bufnr, buffers) + let duplicates = {} + let tails = {} + let map = {} + for nr in a:buffers + let name = bufname(nr) + if empty(name) + let map[nr] = airline#extensions#tabline#formatters#default#wrap_name(nr, '[No Name]') + else + if name =~ 'term://' + " Neovim Terminal + let tail = substitute(name, '\(term:\)//.*:\(.*\)', '\1 \2', '') + else + let tail = fnamemodify(name, ':s?/\+$??:t') + endif + if has_key(tails, tail) + let duplicates[nr] = nr + endif + let tails[tail] = 1 + let map[nr] = airline#extensions#tabline#formatters#default#wrap_name(nr, tail) + endif + endfor + + let fmod = get(g:, 'airline#extensions#tabline#fnamemod', ':p:.') + for nr in values(duplicates) + let name = bufname(nr) + let fnamecollapse = get(g:, 'airline#extensions#tabline#fnamecollapse', 1) + if fnamecollapse + let map[nr] = airline#extensions#tabline#formatters#default#wrap_name(nr, substitute(fnamemodify(name, fmod), '\v\w\zs.{-}\ze(\\|/)', '', 'g')) + else + let map[nr] = airline#extensions#tabline#formatters#default#wrap_name(nr, fnamemodify(name, fmod)) + endif + endfor + + if has_key(map, a:bufnr) + return map[a:bufnr] + endif + + " if we get here, the buffer list isn't in sync with the selected buffer yet, fall back to the default + return airline#extensions#tabline#formatters#default#format(a:bufnr, a:buffers) +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail_improved.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail_improved.vim new file mode 100644 index 0000000..5db7aab --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/formatters/unique_tail_improved.vim @@ -0,0 +1,91 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:skip_symbol = '…' + +function! airline#extensions#tabline#formatters#unique_tail_improved#format(bufnr, buffers) + if len(a:buffers) <= 1 " don't need to compare bufnames if has less than one buffer opened + return airline#extensions#tabline#formatters#default#format(a:bufnr, a:buffers) + endif + + let curbuf_tail = fnamemodify(bufname(a:bufnr), ':t') + let do_deduplicate = 0 + let path_tokens = {} + + for nr in a:buffers + let name = bufname(nr) + if !empty(name) && nr != a:bufnr && fnamemodify(name, ':t') == curbuf_tail " only perform actions if curbuf_tail isn't unique + let do_deduplicate = 1 + let tokens = reverse(split(substitute(fnamemodify(name, ':p:h'), '\\', '/', 'g'), '/')) + let token_index = 0 + for token in tokens + if token == '' | continue | endif + if token == '.' | break | endif + if !has_key(path_tokens, token_index) + let path_tokens[token_index] = {} + endif + let path_tokens[token_index][token] = 1 + let token_index += 1 + endfor + endif + endfor + + if do_deduplicate == 1 + let path = [] + let token_index = 0 + for token in reverse(split(substitute(fnamemodify(bufname(a:bufnr), ':p:h'), '\\', '/', 'g'), '/')) + if token == '.' | break | endif + let duplicated = 0 + let uniq = 1 + let single = 1 + if has_key(path_tokens, token_index) + let duplicated = 1 + if len(keys(path_tokens[token_index])) > 1 | let single = 0 | endif + if has_key(path_tokens[token_index], token) | let uniq = 0 | endif + endif + call insert(path, {'token': token, 'duplicated': duplicated, 'uniq': uniq, 'single': single}) + let token_index += 1 + endfor + + let buf_name = [curbuf_tail] + let has_uniq = 0 + let has_skipped = 0 + for token1 in reverse(path) + if !token1['duplicated'] && len(buf_name) > 1 + call insert(buf_name, s:skip_symbol) + let has_skipped = 0 + break + endif + + if has_uniq == 1 + call insert(buf_name, s:skip_symbol) + let has_skipped = 0 + break + endif + + if token1['uniq'] == 0 && token1['single'] == 1 + let has_skipped = 1 + else + if has_skipped == 1 + call insert(buf_name, s:skip_symbol) + let has_skipped = 0 + endif + call insert(buf_name, token1['token']) + endif + + if token1['uniq'] == 1 + let has_uniq = 1 + endif + endfor + + if has_skipped == 1 + call insert(buf_name, s:skip_symbol) + endif + + return airline#extensions#tabline#formatters#default#wrap_name(a:bufnr, join(buf_name, '/')) + else + return airline#extensions#tabline#formatters#default#format(a:bufnr, a:buffers) + endif +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/tabs.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/tabs.vim new file mode 100644 index 0000000..a3b191f --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/tabs.vim @@ -0,0 +1,134 @@ +" MIT License. Copyright (c) 2013-2019 Bailey Ling et al. +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:spc = g:airline_symbols.space +let s:current_bufnr = -1 +let s:current_tabnr = -1 +let s:current_modified = 0 + +function! airline#extensions#tabline#tabs#off() + augroup airline_tabline_tabs + autocmd! + augroup END +endfunction + +function! airline#extensions#tabline#tabs#on() + augroup airline_tabline_tabs + autocmd! + autocmd BufDelete * call airline#extensions#tabline#tabs#invalidate() + augroup END +endfunction + +function! airline#extensions#tabline#tabs#invalidate() + let s:current_bufnr = -1 +endfunction + +function! airline#extensions#tabline#tabs#get() + let curbuf = bufnr('%') + let curtab = tabpagenr() + try + call airline#extensions#tabline#tabs#map_keys() + catch + " no-op + endtry + if curbuf == s:current_bufnr && curtab == s:current_tabnr && &columns == s:column_width + if !g:airline_detect_modified || getbufvar(curbuf, '&modified') == s:current_modified + return s:current_tabline + endif + endif + + let b = airline#extensions#tabline#new_builder() + + call airline#extensions#tabline#add_label(b, 'tabs', 0) + + function! b.get_group(i) dict + let curtab = tabpagenr() + let group = 'airline_tab' + if a:i == curtab + let group = 'airline_tabsel' + if g:airline_detect_modified + for bi in tabpagebuflist(curtab) + if getbufvar(bi, '&modified') + let group = 'airline_tabmod' + endif + endfor + endif + let s:current_modified = (group == 'airline_tabmod') ? 1 : 0 + endif + return group + endfunction + + function! b.get_title(i) dict + let val = '%(' + + if get(g:, 'airline#extensions#tabline#show_tab_nr', 1) + let tab_nr_type = get(g:, 'airline#extensions#tabline#tab_nr_type', 0) + let val .= airline#extensions#tabline#tabs#tabnr_formatter(tab_nr_type, a:i) + endif + + return val.'%'.a:i.'T %{airline#extensions#tabline#title('.a:i.')} %)' + endfunction + + call b.insert_titles(curtab, 1, tabpagenr('$')) + + call b.add_section('airline_tabfill', '') + call b.split() + call b.add_section('airline_tabfill', '') + + if get(g:, 'airline#extensions#tabline#show_close_button', 1) + call b.add_section('airline_tab_right', ' %999X'. + \ get(g:, 'airline#extensions#tabline#close_symbol', 'X').' ') + endif + + if get(g:, 'airline#extensions#tabline#show_splits', 1) == 1 + let buffers = tabpagebuflist(curtab) + for nr in buffers + let group = airline#extensions#tabline#group_of_bufnr(buffers, nr) . "_right" + call b.add_section_spaced(group, '%(%{airline#extensions#tabline#get_buffer_name('.nr.')}%)') + endfor + if get(g:, 'airline#extensions#tabline#show_buffers', 1) + call airline#extensions#tabline#add_label(b, 'buffers', 1) + endif + endif + call airline#extensions#tabline#add_tab_label(b) + + let s:current_bufnr = curbuf + let s:current_tabnr = curtab + let s:column_width = &columns + let s:current_tabline = b.build() + return s:current_tabline +endfunction + +function! airline#extensions#tabline#tabs#map_keys() + if maparg('AirlineSelectTab1', 'n') is# ':1tabn' + return + endif + let bidx_mode = get(g:, 'airline#extensions#tabline#buffer_idx_mode', 1) + if bidx_mode == 1 + for i in range(1, 9) + exe printf('noremap AirlineSelectTab%d :%dtabn', i, i) + endfor + else + for i in range(11, 99) + exe printf('noremap AirlineSelectTab%d :%dtabn', i, i-10) + endfor + endif + noremap AirlineSelectPrevTab gT + " tabn {count} goes to count tab does not go {count} tab pages forward! + noremap AirlineSelectNextTab :exe repeat(':tabn\|', v:count1) +endfunction + +function! airline#extensions#tabline#tabs#tabnr_formatter(nr, i) abort + let formatter = get(g:, 'airline#extensions#tabline#tabnr_formatter', 'tabnr') + try + return airline#extensions#tabline#formatters#{formatter}#format(a:nr, a:i) + catch /^Vim\%((\a\+)\)\=:E117/ " catch E117, unknown function + " Function not found + return call(formatter, [a:nr, a:i]) + catch + " something went wrong, return an empty string + return "" + endtry +endfunction diff --git a/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/tabws.vim b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/tabws.vim new file mode 100644 index 0000000..db06a72 --- /dev/null +++ b/_vim/.vim/plugged/vim-airline/autoload/airline/extensions/tabline/tabws.vim @@ -0,0 +1,154 @@ +" MIT License. Copyright (c) 2016-2019 Kevin Sapper et al. +" PLugin: https://github.com/s1341/vim-tabws +" vim: et ts=2 sts=2 sw=2 + +scriptencoding utf-8 + +let s:current_bufnr = -1 +let s:current_modified = 0 +let s:current_tabnr = -1 +let s:current_tabline = '' +let s:highlight_groups = ['hid', 0, '', 'sel', 'mod_unsel', 0, 'mod_unsel', 'mod'] + +function! airline#extensions#tabline#tabws#off() + augroup airline_tabline_tabws + autocmd! + augroup END +endfunction + +function! airline#extensions#tabline#tabws#on() + augroup airline_tabline_tabws + autocmd! + autocmd BufDelete * call airline#extensions#tabline#tabws#invalidate() + augroup END +endfunction + +function! airline#extensions#tabline#tabws#invalidate() + let s:current_bufnr = -1 + let s:current_tabnr = -1 +endfunction + +function! airline#extensions#tabline#tabws#add_buffer_section(builder, cur_tab, cur_buf, pull_right) + let pos_extension = (a:pull_right ? '_right' : '') + let bufnr_list = tabws#getbuffersfortab(a:cur_tab) + + if index(bufnr_list, a:cur_buf) == -1 && a:cur_tab == s:current_tabnr + return 0 + endif + + let s:current_modified = getbufvar(a:cur_buf, '&modified') + let visible_list = tabpagebuflist(a:cur_tab) + + for buffer in bufnr_list + let group = 'airline_tab' + \ .s:highlight_groups[(4 * getbufvar(buffer, '&modified')) + (2 * (index(visible_list, buffer) != -1)) + (a:cur_buf == buffer)] + \ .pos_extension + + let buf_name = '%(%{airline#extensions#tabline#get_buffer_name('.buffer.')}%)' + + if has("tablineat") + let buf_name = '%'.buffer.'@airline#extensions#tabline#buffers#clickbuf@'.buf_name.'%X' + endif + + call a:builder.add_section_spaced(group, buf_name) + endfor + + " add by tenfy(tenfyzhong@qq.com) + " if the selected buffer was updated + " return true + return 1 +endfunction + +function! airline#extensions#tabline#tabws#add_tab_section(builder, pull_right) + let pos_extension = (a:pull_right ? '_right' : '') + + for tab in range(1, tabpagenr('$')) + let current = tab == tabpagenr() + let group = 'airline_tab' + \ .s:highlight_groups[(3 * current)] + \ .pos_extension + + if get(g:, 'airline#extensions#tabline#tabws_show_tab_nr', 0) == 0 + call a:builder.add_section_spaced(group, '%'.tab.'T'.tabws#gettabname(tab).'%T') + else + call a:builder.add_section_spaced(group, '%'.tab.'T'.tab.(g:airline_symbols.space).tabws#gettabname(tab).'%T') + endif + endfor +endfunction + +function! airline#extensions#tabline#tabws#get() + let cur_buf = bufnr('%') + let buffer_label = get(g:, 'airline#extensions#tabline#buffers_label', 'buffers') + let tab_label = get(g:, 'airline#extensions#tabline#tabs_label', 'tabs') + let switch_buffers_and_tabs = get(g:, 'airline#extensions#tabline#switch_buffers_and_tabs', 0) + + try + call airline#extensions#tabline#tabs#map_keys() + endtry + + let cur_tab = tabpagenr() + + if cur_buf == s:current_bufnr && cur_tab == s:current_tabnr + if !g:airline_detect_modified || getbufvar(cur_buf, '&modified') == s:current_modified + return s:current_tabline + endif + endif + + let builder = airline#extensions#tabline#new_builder() + + let show_buffers = get(g:, 'airline#extensions#tabline#show_buffers', 1) + let show_tabs = get(g:, 'airline#extensions#tabline#show_tabs', 1) + + let AppendBuffers = function('airline#extensions#tabline#tabws#add_buffer_section', [builder, cur_tab, cur_buf]) + let AppendTabs = function('airline#extensions#tabline#tabws#add_tab_section', [builder]) + let AppendLabel = function(builder.add_section_spaced, ['airline_tabtype'], builder) + + " <= 1: |{Tabs} {Buffers} {Tabs} +" tabpagecd: +" expanded version by mg979 +" MIT License Copyright (C) 2012-2013 Kana Natsuno +" MIT License Copyright (C) 2018-2019 Gianmaria Bajo +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + + +function! airline#extensions#tabline#xtabline#init() + + let s:state = 0 + + " initialize mappings + call airline#extensions#tabline#xtabline#maps() + + """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + " Variables + """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + + let g:loaded_xtabline = 1 + let s:most_recent = -1 + let s:xtabline_filtering = 1 + + let t:xtl_excluded = get(g:, 'airline#extensions#tabline#exclude_buffers', []) + let t:xtl_accepted = [] + + let g:xtabline_include_previews = get(g:, 'xtabline_include_previews', 1) + + let g:xtabline_alt_action = get(g:, 'xtabline_alt_action', "buffer #") + + + """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + " Autocommands + """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + + augroup plugin-xtabline + autocmd! + + autocmd TabNew * call s:Do('new') + autocmd TabEnter * call s:Do('enter') + autocmd TabLeave * call s:Do('leave') + autocmd TabClosed * call s:Do('close') + + autocmd BufEnter * let g:xtabline_changing_buffer = 0 + autocmd BufAdd,BufDelete,BufWrite * call airline#extensions#tabline#xtabline#filter_buffers() + augroup END + + + """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + " Commands + """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + + com! XTabReopen call airline#extensions#tabline#xtabline#reopen_last_tab() + +endfunction + + +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Mappings +"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +function! airline#extensions#tabline#xtabline#maps() + + if !exists('g:xtabline_disable_keybindings') + + fun! s:mapkeys(keys, plug) + if empty(mapcheck(a:keys)) && !hasmapto(a:plug) + silent! execute 'nmap '.a:keys.' '.a:plug + endif + endfun + + call s:mapkeys('','XTablineToggleTabs') + call s:mapkeys('','XTablineToggleFiltering') + call s:mapkeys('','XTablineSelectBuffer') + call s:mapkeys(']l','XTablineNextBuffer') + call s:mapkeys('[l','XTablinePrevBuffer') + call s:mapkeys('tr','XTablineReopen') + endif + + nnoremap +endsnippet + +snippet scriptsrc "HTML +endsnippet + +snippet select "Select Box" w + +endsnippet + +snippet small "" w +$1 +endsnippet + +snippet span "" w +${0:${VISUAL}} +endsnippet + +snippet span# " with ID & class" w +${0:${VISUAL}} +endsnippet + +snippet span. " with class" w +${0:${VISUAL}} +endsnippet + +snippet strong "" w +$1 +endsnippet + +snippet style "HTML +endsnippet + +snippet sub "" w +$1 +endsnippet + +snippet sup "" w +$1 +endsnippet + +snippet table "HTML " w +
+ ${0:${VISUAL}} +
+endsnippet + +snippet tbody "" +$1 +endsnippet + +snippet td "table cell" w +${0:${VISUAL}} +endsnippet + +snippet template "