From 7950e1f955a159cd12fc564901d550205a7b05ac Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Mar 2015 16:54:17 +0200 Subject: [PATCH 001/230] Dotfiles initial commit --- .gitconfig | 17 ++++++++++ .tmux.conf | 94 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ .vimrc | 51 +++++++++++++++++++++++++++++ .zshrc | 74 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 236 insertions(+) create mode 100644 .gitconfig create mode 100644 .tmux.conf create mode 100644 .vimrc create mode 100644 .zshrc diff --git a/.gitconfig b/.gitconfig new file mode 100644 index 0000000..6b07dca --- /dev/null +++ b/.gitconfig @@ -0,0 +1,17 @@ +[user] + name = Or Elimelech + email = 0r3limelech@gmail.com + signingkey = 6166633F +[alias] + ci = commit + co = checkout + br = branch + st = status -s +[push] + default = simple +[color] + ui = true +[color "branch"] + current = yellow reverse + local = yellow + remote = green diff --git a/.tmux.conf b/.tmux.conf new file mode 100644 index 0000000..d6316fa --- /dev/null +++ b/.tmux.conf @@ -0,0 +1,94 @@ +# support for osx, all others don't symlink +# source ~/.tmux-osx.conf + +# use zsh + set -g default-command /bin/zsh + set -g default-shell /bin/zsh + +# use CTRL-A as modifier + set-option -g prefix C-a + unbind C-b + +# Support for 256 colors + set -g default-terminal "screen-256color" + +# bind vi key-mapping + set -g status-keys vi + +# Window index base 1 + set -g base-index 1 + +# Pane index base 1 + set-window-option -g pane-base-index 1 + +# Auto renumber when tab is deleted +set-option -g renumber-windows on + +# Set status bar + set-window-option -g window-status-current-bg red + set -g status-bg white + set -g status-fg black + set -g status-left '#[fg=green]#H' + # set -g status-right '#[fg=blue]#(uptime | cut -d"," -f 2-)' + set -g status-right-length 100 + set -g status-right "#[fg=blue]#(uptime | cut -d"," -f 2-):: #[fg=blue]#S #I:#P #[fg=yellow]:: %d %b %Y #[fg=green]:: %l:%M %p" + +# large history + set-option -g history-limit 100000 + +# display active pane in diff background + set-option -g pane-active-border-fg green + set-option -g pane-active-border-bg green + +# highlight status bar on activity + setw -g monitor-activity on + set -g visual-activity on + set -g visual-bell on +# automatically set window title + set -g automatic-rename + +# speed up +set-option -s escape-time 10 + +# vi-style controls for copy mode + set-window-option -g mode-keys vi + +# Setup 'v' to begin selection as in Vim + bind-key -t vi-copy v begin-selection + bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" + +# Update default binding of `Enter` to use copy-pipe + unbind -t vi-copy Enter + bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy" + +# bind C-a to the previously active window + bind-key C-a last-window + +# force a reload of the config file + bind C-r source-file ~/.tmux.conf \; run-shell "echo 'Configuration Reloaded'" + +# split windows like vim. - Note: vim's definition of a horizontal/vertical split is reversed from tmux's + unbind s + bind s split-window -v -c "#{pane_current_path}" + bind C-s split-window -v -l 22 -c "#{pane_current_path}" + bind v split-window -h -c "#{pane_current_path}" + bind C-v split-window -h -l 131 -c "#{pane_current_path}" + +# navigate panes with hjkl + bind h select-pane -L + bind j select-pane -D + bind k select-pane -U + bind l select-pane -R + +# resize panes like vim + bind < resize-pane -L 10 + bind L resize-pane -L 100 + bind > resize-pane -R 10 + bind R resize-pane -R 100 + bind - resize-pane -D 5 + bind D resize-pane -D 36 + bind + resize-pane -U 5 + bind U resize-pane -U 35 + +# bind : to command-prompt like vim this is the default in tmux already + bind : command-prompt diff --git a/.vimrc b/.vimrc new file mode 100644 index 0000000..9a3b429 --- /dev/null +++ b/.vimrc @@ -0,0 +1,51 @@ +" Vundle +set nocompatible +filetype off +set runtimepath+=~/.vim/bundle/Vundle.vim +call vundle#begin() + +Plugin 'gmarik/Vundle.vim' +Plugin 'fatih/vim-go' +Plugin 'ekalinin/Dockerfile.vim' +Plugin 'markcornick/vim-terraform' +Plugin 'bling/vim-airline' +Plugin 'gnupg.vim' +Plugin 'jinja.vim' + +call vundle#end() +filetype plugin indent on + +" Global +syntax on +colorscheme solarized +set background=light +set timeoutlen=1000 +set ttimeoutlen=0 +set encoding=utf-8 +set fileencoding=utf-8 +set showmatch +set number +set numberwidth=1 +set modeline +set modelines=5 +set laststatus=2 + +" Search +set incsearch " show search matches as you type +set showmatch +set hlsearch +set smartcase " ignore case if search pattern is all lowercase, case-sensitive otherwise +set ignorecase +set hlsearch +nnoremap :let @/="" " cancel search hlight with space + +" vim-go settings +let g:go_fmt_command = "goimports" + +autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent +autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent +autocmd FileType java setlocal shiftwidth=4 sts=4 expandtab smartindent +autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent +autocmd BufNewFile,BufRead *.json set shiftwidth=2 sts=2 expandtab smartindent ft=javascript +autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent + diff --git a/.zshrc b/.zshrc new file mode 100644 index 0000000..fe956bc --- /dev/null +++ b/.zshrc @@ -0,0 +1,74 @@ +# Path to your oh-my-zsh installation. +export ZSH=$HOME/.oh-my-zsh + +# Theme +ZSH_THEME="sorin" + +# Special dirs +zstyle ':completion:*' special-dirs true + +# +# Aliases +# +# Brew GIT Version +alias git="/usr/local/bin/git" + +# Override tig options to show gpg signatures +alias tig="tig --show-signature" + +# Knife aliases +alias kbl="knife block list" +alias kbu="knife block use" + +# +# ZSH Plugins +# +plugins=(git ruby golang docker gem github vagrant knife brew jump tmuxinator) + +source $ZSH/oh-my-zsh.sh + +# +# User configuration +# +# Docker host +export DOCKER_HOST=tcp://192.168.59.103:2376 +export DOCKER_CERT_PATH=/Users/$USER/.boot2docker/certs/boot2docker-vm +export DOCKER_TLS_VERIFY=1 + +# GOPATH +export GOPATH="/Users/$USER/BTSync/Projects/go" + +# PATH +export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:${GOPATH}/bin" + +# Preferred editor for local and remote sessions +export EDITOR='vim' + +# ZSH Vim Mode +bindkey -v +export KEYTIMEOUT=1 + +# Use vim cli mode +bindkey '^P' up-history +bindkey '^N' down-history + +# backspace and ^h working even after +# returning from command mode +bindkey '^?' backward-delete-char +bindkey '^h' backward-delete-char + +# ctrl-w removed word backwards +bindkey '^w' backward-kill-word + +# ctrl-r starts searching history backward +bindkey '^r' history-incremental-search-backward + +autoload -U edit-command-line +zle -N edit-command-line +bindkey -M vicmd v edit-command-line + +# AutoJump +[[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh + +# Private functions +source .zshfunctions From 23331e9f2325f7fe41da625df9aa75bd667f4305 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Mar 2015 17:08:52 +0200 Subject: [PATCH 002/230] bumped --- .tmux.conf => tmux.conf | 0 .vimrc => vimrc | 0 .zshrc => zshrc | 0 3 files changed, 0 insertions(+), 0 deletions(-) rename .tmux.conf => tmux.conf (100%) rename .vimrc => vimrc (100%) rename .zshrc => zshrc (100%) diff --git a/.tmux.conf b/tmux.conf similarity index 100% rename from .tmux.conf rename to tmux.conf diff --git a/.vimrc b/vimrc similarity index 100% rename from .vimrc rename to vimrc diff --git a/.zshrc b/zshrc similarity index 100% rename from .zshrc rename to zshrc From d22d799113f3804f75b91ba2105043a6ad3360a1 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Mar 2015 17:10:05 +0200 Subject: [PATCH 003/230] install script --- install.rb | 46 ++++++++++++++++++++++++++++++++++++++++++++++ zshrc | 2 +- 2 files changed, 47 insertions(+), 1 deletion(-) create mode 100755 install.rb diff --git a/install.rb b/install.rb new file mode 100755 index 0000000..89b674c --- /dev/null +++ b/install.rb @@ -0,0 +1,46 @@ +#!/usr/bin/env ruby + +require 'fileutils' + +DO_NOT_SYMLINK = %w[ + .gitignore + install.rb +] + +def error(text) + STDERR.puts "! #{text}" +end + +def info(text) + STDOUT.puts "* #{text}" +end + +def info_rm(text) + STDOUT.puts "x #{text}" +end + +Dir["*"].each do |file| + source = File.join(Dir.pwd, file) + basename = File.basename(source) + next if DO_NOT_SYMLINK.include?(basename) + + target = File.expand_path("~/.#{basename}") + + if File.symlink?(target) + symlink_to = File.readlink(target) + info_rm "Removing symlink #{target} --> #{symlink_to}" if symlink_to != source + FileUtils.rm(target) + elsif File.exist?(target) + error "#{target} exists. Will not automatically overwrite a non-symlink. Overwrite (y/n)?" + print "? " + if STDIN.gets.match(/^y/i) + info_rm "Removing #{target}." + FileUtils.rm_rf(target) + else + next + end + end + + FileUtils.ln_s(source, target) + info "Creating symlink: #{target} --> #{source}" +end diff --git a/zshrc b/zshrc index fe956bc..8e1811c 100644 --- a/zshrc +++ b/zshrc @@ -71,4 +71,4 @@ bindkey -M vicmd v edit-command-line [[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh # Private functions -source .zshfunctions +source ~/.zshfunctions From 94d4b8d89b8674e9af2fefbe3673f02816a492a2 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Mar 2015 17:36:09 +0200 Subject: [PATCH 004/230] changed to shell script --- .gitconfig => gitconfig | 0 install | 14 +++++++++++++ install.rb | 46 ----------------------------------------- 3 files changed, 14 insertions(+), 46 deletions(-) rename .gitconfig => gitconfig (100%) create mode 100755 install delete mode 100755 install.rb diff --git a/.gitconfig b/gitconfig similarity index 100% rename from .gitconfig rename to gitconfig diff --git a/install b/install new file mode 100755 index 0000000..794921e --- /dev/null +++ b/install @@ -0,0 +1,14 @@ +SRC=$HOME/.dotfiles +dotfiles=(vimrc tmux.conf gitconfig zshrc) + +for dotfile in ${dotfiles[@]} +do + if [ ! "$(readlink $HOME/.${dotfile})" == "$HOME/.dotfiles/${dotfile}" ] + then + if [ -f $HOME/.$dotfile ] + then + rm $HOME/.$dotfile + fi + ln -s $SRC/$dotfile $HOME/.$dotfile + fi +done diff --git a/install.rb b/install.rb deleted file mode 100755 index 89b674c..0000000 --- a/install.rb +++ /dev/null @@ -1,46 +0,0 @@ -#!/usr/bin/env ruby - -require 'fileutils' - -DO_NOT_SYMLINK = %w[ - .gitignore - install.rb -] - -def error(text) - STDERR.puts "! #{text}" -end - -def info(text) - STDOUT.puts "* #{text}" -end - -def info_rm(text) - STDOUT.puts "x #{text}" -end - -Dir["*"].each do |file| - source = File.join(Dir.pwd, file) - basename = File.basename(source) - next if DO_NOT_SYMLINK.include?(basename) - - target = File.expand_path("~/.#{basename}") - - if File.symlink?(target) - symlink_to = File.readlink(target) - info_rm "Removing symlink #{target} --> #{symlink_to}" if symlink_to != source - FileUtils.rm(target) - elsif File.exist?(target) - error "#{target} exists. Will not automatically overwrite a non-symlink. Overwrite (y/n)?" - print "? " - if STDIN.gets.match(/^y/i) - info_rm "Removing #{target}." - FileUtils.rm_rf(target) - else - next - end - end - - FileUtils.ln_s(source, target) - info "Creating symlink: #{target} --> #{source}" -end From 8082d0bcf48fb8587300d63e67f556c28babc27b Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Mar 2015 17:38:03 +0200 Subject: [PATCH 005/230] Added readme for installation notes --- README.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..3084933 --- /dev/null +++ b/README.md @@ -0,0 +1,8 @@ +# dotfiles + +``` +# To install the dotfiles +git clone git@github.com:vic3lord/dotfiles ~/.dotfiles +cd ~/.dotfiles +./install +``` From 29ddb5152bbe42e66782d8e5a5e55284959f8827 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Mar 2015 17:47:18 +0200 Subject: [PATCH 006/230] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 3084933..1e52546 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ ``` # To install the dotfiles -git clone git@github.com:vic3lord/dotfiles ~/.dotfiles +git clone https://github.com/vic3lord/dotfiles ~/.dotfiles cd ~/.dotfiles ./install ``` From f71a783e9defaab1c9c0c50005f8e37e0af0f1b5 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Mar 2015 18:42:56 +0200 Subject: [PATCH 007/230] Make sure script installs Vundle and oh-my-zsh --- install | 17 ++++++++++++++++- vimrc | 2 +- zsh/autojump.zsh | 5 +++++ zshrc | 4 ++-- 4 files changed, 24 insertions(+), 4 deletions(-) create mode 100644 zsh/autojump.zsh diff --git a/install b/install index 794921e..6b54127 100755 --- a/install +++ b/install @@ -1,5 +1,5 @@ SRC=$HOME/.dotfiles -dotfiles=(vimrc tmux.conf gitconfig zshrc) +dotfiles=(vimrc tmux.conf gitconfig zshrc zsh) for dotfile in ${dotfiles[@]} do @@ -9,6 +9,21 @@ do then rm $HOME/.$dotfile fi + echo "Creating a symlink for ${dotfile}..." ln -s $SRC/$dotfile $HOME/.$dotfile fi done + +# Install oh-my-zsh +if [ ! -d ~/.oh-my-zsh ] +then + echo "Installing oh-my-zsh..." + curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh +fi + +# Install Vundle +if [ ! -d ~/.vim/bundle/Vundle.vim ] +then + git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim + vim +PluginInstall +qall +fi diff --git a/vimrc b/vimrc index 9a3b429..347b0f3 100644 --- a/vimrc +++ b/vimrc @@ -10,7 +10,7 @@ Plugin 'ekalinin/Dockerfile.vim' Plugin 'markcornick/vim-terraform' Plugin 'bling/vim-airline' Plugin 'gnupg.vim' -Plugin 'jinja.vim' +"Plugin 'jinja.vim' call vundle#end() filetype plugin indent on diff --git a/zsh/autojump.zsh b/zsh/autojump.zsh new file mode 100644 index 0000000..04ffc26 --- /dev/null +++ b/zsh/autojump.zsh @@ -0,0 +1,5 @@ +# AutoJump +if [ "$(uname)" == "Darwin" ] +then + [[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh +fi diff --git a/zshrc b/zshrc index 8e1811c..1839f14 100644 --- a/zshrc +++ b/zshrc @@ -67,8 +67,8 @@ autoload -U edit-command-line zle -N edit-command-line bindkey -M vicmd v edit-command-line -# AutoJump -[[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh +# Load ~/.zsh directory +source ~/.zsh # Private functions source ~/.zshfunctions From 6648ff44ebe4d26d44880391182a53a789cf4d2f Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Mar 2015 19:17:30 +0200 Subject: [PATCH 008/230] split some configs into zsh dir --- .gitignore | 1 + zsh/docker.zsh | 3 +++ zshrc | 7 ------- 3 files changed, 4 insertions(+), 7 deletions(-) create mode 100644 .gitignore create mode 100644 zsh/docker.zsh diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..68e7c59 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +zsh/chef.zsh diff --git a/zsh/docker.zsh b/zsh/docker.zsh new file mode 100644 index 0000000..d60f5b1 --- /dev/null +++ b/zsh/docker.zsh @@ -0,0 +1,3 @@ +export DOCKER_HOST=tcp://192.168.59.103:2376 +export DOCKER_CERT_PATH=/Users/$USER/.boot2docker/certs/boot2docker-vm +export DOCKER_TLS_VERIFY=1 diff --git a/zshrc b/zshrc index 1839f14..672ec1f 100644 --- a/zshrc +++ b/zshrc @@ -30,10 +30,6 @@ source $ZSH/oh-my-zsh.sh # # User configuration # -# Docker host -export DOCKER_HOST=tcp://192.168.59.103:2376 -export DOCKER_CERT_PATH=/Users/$USER/.boot2docker/certs/boot2docker-vm -export DOCKER_TLS_VERIFY=1 # GOPATH export GOPATH="/Users/$USER/BTSync/Projects/go" @@ -69,6 +65,3 @@ bindkey -M vicmd v edit-command-line # Load ~/.zsh directory source ~/.zsh - -# Private functions -source ~/.zshfunctions From a4d0b5084c7efb6b3c78cccac3f720f4518cfe39 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Mar 2015 09:23:33 +0200 Subject: [PATCH 009/230] source zsh files in zsh dir --- zsh/autojump.zsh | 2 +- zshrc | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/zsh/autojump.zsh b/zsh/autojump.zsh index 04ffc26..e6e32ba 100644 --- a/zsh/autojump.zsh +++ b/zsh/autojump.zsh @@ -1,5 +1,5 @@ # AutoJump -if [ "$(uname)" == "Darwin" ] +if [[ "$(uname)" == "Darwin" ]] then [[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh fi diff --git a/zshrc b/zshrc index 672ec1f..d49c1c5 100644 --- a/zshrc +++ b/zshrc @@ -64,4 +64,4 @@ zle -N edit-command-line bindkey -M vicmd v edit-command-line # Load ~/.zsh directory -source ~/.zsh +source ~/.zsh/*.zsh From 575373de25c76f045abc0e457211d4d2f2813e2f Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Mar 2015 10:16:13 +0200 Subject: [PATCH 010/230] install vim-colors --- install | 11 +- vim-colors/solarized.vim | 1117 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 1126 insertions(+), 2 deletions(-) create mode 100644 vim-colors/solarized.vim diff --git a/install b/install index 6b54127..44bec39 100755 --- a/install +++ b/install @@ -14,14 +14,21 @@ do fi done -# Install oh-my-zsh +# install oh-my-zsh if [ ! -d ~/.oh-my-zsh ] then echo "Installing oh-my-zsh..." curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh fi -# Install Vundle +# install vim colors +if [ ! -d ~/.vim ] +then + mkdir ~/.vim + ln -s $HOME/.dotfiles/vim-colors $HOME/.vim/colors +fi + +# install Vundle if [ ! -d ~/.vim/bundle/Vundle.vim ] then git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim diff --git a/vim-colors/solarized.vim b/vim-colors/solarized.vim new file mode 100644 index 0000000..70f5223 --- /dev/null +++ b/vim-colors/solarized.vim @@ -0,0 +1,1117 @@ +" Name: Solarized vim colorscheme +" Author: Ethan Schoonover +" URL: http://ethanschoonover.com/solarized +" (see this url for latest release & screenshots) +" License: OSI approved MIT license (see end of this file) +" Created: In the middle of the night +" Modified: 2011 May 05 +" +" Usage "{{{ +" +" --------------------------------------------------------------------- +" ABOUT: +" --------------------------------------------------------------------- +" Solarized is a carefully designed selective contrast colorscheme with dual +" light and dark modes that runs in both GUI, 256 and 16 color modes. +" +" See the homepage above for screenshots and details. +" +" --------------------------------------------------------------------- +" OPTIONS: +" --------------------------------------------------------------------- +" See the "solarized.txt" help file included with this colorscheme (in the +" "doc" subdirectory) for information on options, usage, the Toggle Background +" function and more. If you have already installed Solarized, this is available +" from the Solarized menu and command line as ":help solarized" +" +" --------------------------------------------------------------------- +" INSTALLATION: +" --------------------------------------------------------------------- +" Two options for installation: manual or pathogen +" +" MANUAL INSTALLATION OPTION: +" --------------------------------------------------------------------- +" +" 1. Download the solarized distribution (available on the homepage above) +" and unarchive the file. +" 2. Move `solarized.vim` to your `.vim/colors` directory. +" 3. Move each of the files in each subdirectories to the corresponding .vim +" subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload +" directory as .vim/autoload/togglebg.vim). +" +" RECOMMENDED PATHOGEN INSTALLATION OPTION: +" --------------------------------------------------------------------- +" +" 1. Download and install Tim Pope's Pathogen from: +" https://github.com/tpope/vim-pathogen +" +" 2. Next, move or clone the `vim-colors-solarized` directory so that it is +" a subdirectory of the `.vim/bundle` directory. +" +" a. **clone with git:** +" +" $ cd ~/.vim/bundle +" $ git clone git://github.com/altercation/vim-colors-solarized.git +" +" b. **or move manually into the pathogen bundle directory:** +" In the parent directory of vim-colors-solarized: +" +" $ mv vim-colors-solarized ~/.vim/bundle/ +" +" MODIFY VIMRC: +" +" After either Option 1 or Option 2 above, put the following two lines in your +" .vimrc: +" +" syntax enable +" set background=dark +" colorscheme solarized +" +" or, for the light background mode of Solarized: +" +" syntax enable +" set background=light +" colorscheme solarized +" +" I like to have a different background in GUI and terminal modes, so I can use +" the following if-then. However, I find vim's background autodetection to be +" pretty good and, at least with MacVim, I can leave this background value +" assignment out entirely and get the same results. +" +" if has('gui_running') +" set background=light +" else +" set background=dark +" endif +" +" See the Solarized homepage at http://ethanschoonover.com/solarized for +" screenshots which will help you select either the light or dark background. +" +" --------------------------------------------------------------------- +" COLOR VALUES +" --------------------------------------------------------------------- +" Download palettes and files from: http://ethanschoonover.com/solarized +" +" L\*a\*b values are canonical (White D65, Reference D50), other values are +" matched in sRGB space. +" +" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB +" --------- ------- ---- ------- ----------- ---------- ----------- ----------- +" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21 +" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26 +" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46 +" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51 +" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59 +" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63 +" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93 +" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99 +" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71 +" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80 +" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86 +" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83 +" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77 +" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82 +" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63 +" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60 +" +" --------------------------------------------------------------------- +" COLORSCHEME HACKING +" --------------------------------------------------------------------- +" +" Useful commands for testing colorschemes: +" :source $VIMRUNTIME/syntax/hitest.vim +" :help highlight-groups +" :help cterm-colors +" :help group-name +" +" Useful links for developing colorschemes: +" http://www.vim.org/scripts/script.php?script_id=2937 +" http://vimcasts.org/episodes/creating-colorschemes-for-vim/ +" http://www.frexx.de/xterm-256-notes/" +" +" }}} +" Environment Specific Overrides "{{{ +" Allow or disallow certain features based on current terminal emulator or +" environment. + +" Terminals that support italics +let s:terms_italic=[ + \"rxvt", + \"gnome-terminal" + \] +" For reference only, terminals are known to be incomptible. +" Terminals that are in neither list need to be tested. +let s:terms_noitalic=[ + \"iTerm.app", + \"Apple_Terminal" + \] +if has("gui_running") + let s:terminal_italic=1 " TODO: could refactor to not require this at all +else + let s:terminal_italic=0 " terminals will be guilty until proven compatible + for term in s:terms_italic + if $TERM_PROGRAM =~ term + let s:terminal_italic=1 + endif + endfor +endif + +" }}} +" Default option values"{{{ +" --------------------------------------------------------------------- +" s:options_list is used to autogenerate a list of all non-default options +" using "call SolarizedOptions()" or with the "Generate .vimrc commands" +" Solarized menu option. See the "Menus" section below for the function itself. +let s:options_list=[ + \'" this block of commands has been autogenerated by solarized.vim and', + \'" includes the current, non-default Solarized option values.', + \'" To use, place these commands in your .vimrc file (replacing any', + \'" existing colorscheme commands). See also ":help solarized"', + \'', + \'" ------------------------------------------------------------------', + \'" Solarized Colorscheme Config', + \'" ------------------------------------------------------------------', + \] +let s:colorscheme_list=[ + \'syntax enable', + \'set background='.&background, + \'colorscheme solarized', + \] +let s:defaults_list=[ + \'" ------------------------------------------------------------------', + \'', + \'" The following items are available options, but do not need to be', + \'" included in your .vimrc as they are currently set to their defaults.', + \'' + \] +let s:lazycat_list=[ + \'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"', + \'" ------------------------------------------------------------------', + \] + +function! s:SetOption(name,default) + if type(a:default) == type(0) + let l:wrap='' + let l:ewrap='' + else + let l:wrap='"' + let l:ewrap='\"' + endif + if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default + exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"' + exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")' + else + exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")' + endif +endfunction + +if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256) + let s:solarized_termtrans_default = 1 +else + let s:solarized_termtrans_default = 0 +endif +call s:SetOption("termtrans",s:solarized_termtrans_default) +call s:SetOption("degrade",0) +call s:SetOption("bold",1) +call s:SetOption("underline",1) +call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support +call s:SetOption("termcolors",16) +call s:SetOption("contrast","normal") +call s:SetOption("visibility","normal") +call s:SetOption("diffmode","normal") +call s:SetOption("hitrail",0) +call s:SetOption("menu",1) + +"}}} +" Colorscheme initialization "{{{ +" --------------------------------------------------------------------- +hi clear +if exists("syntax_on") + syntax reset +endif +let colors_name = "solarized" + +"}}} +" GUI & CSApprox hexadecimal palettes"{{{ +" --------------------------------------------------------------------- +" +" Set both gui and terminal color values in separate conditional statements +" Due to possibility that CSApprox is running (though I suppose we could just +" leave the hex values out entirely in that case and include only cterm colors) +" We also check to see if user has set solarized (force use of the +" neutral gray monotone palette component) +if (has("gui_running") && g:solarized_degrade == 0) + let s:vmode = "gui" + let s:base03 = "#002b36" + let s:base02 = "#073642" + let s:base01 = "#586e75" + let s:base00 = "#657b83" + let s:base0 = "#839496" + let s:base1 = "#93a1a1" + let s:base2 = "#eee8d5" + let s:base3 = "#fdf6e3" + let s:yellow = "#b58900" + let s:orange = "#cb4b16" + let s:red = "#dc322f" + let s:magenta = "#d33682" + let s:violet = "#6c71c4" + let s:blue = "#268bd2" + let s:cyan = "#2aa198" + "let s:green = "#859900" "original + let s:green = "#719e07" "experimental +elseif (has("gui_running") && g:solarized_degrade == 1) + " These colors are identical to the 256 color mode. They may be viewed + " while in gui mode via "let g:solarized_degrade=1", though this is not + " recommened and is for testing only. + let s:vmode = "gui" + let s:base03 = "#1c1c1c" + let s:base02 = "#262626" + let s:base01 = "#4e4e4e" + let s:base00 = "#585858" + let s:base0 = "#808080" + let s:base1 = "#8a8a8a" + let s:base2 = "#d7d7af" + let s:base3 = "#ffffd7" + let s:yellow = "#af8700" + let s:orange = "#d75f00" + let s:red = "#af0000" + let s:magenta = "#af005f" + let s:violet = "#5f5faf" + let s:blue = "#0087ff" + let s:cyan = "#00afaf" + let s:green = "#5f8700" +elseif g:solarized_termcolors != 256 && &t_Co >= 16 + let s:vmode = "cterm" + let s:base03 = "8" + let s:base02 = "0" + let s:base01 = "10" + let s:base00 = "11" + let s:base0 = "12" + let s:base1 = "14" + let s:base2 = "7" + let s:base3 = "15" + let s:yellow = "3" + let s:orange = "9" + let s:red = "1" + let s:magenta = "5" + let s:violet = "13" + let s:blue = "4" + let s:cyan = "6" + let s:green = "2" +elseif g:solarized_termcolors == 256 + let s:vmode = "cterm" + let s:base03 = "234" + let s:base02 = "235" + let s:base01 = "239" + let s:base00 = "240" + let s:base0 = "244" + let s:base1 = "245" + let s:base2 = "187" + let s:base3 = "230" + let s:yellow = "136" + let s:orange = "166" + let s:red = "124" + let s:magenta = "125" + let s:violet = "61" + let s:blue = "33" + let s:cyan = "37" + let s:green = "64" +else + let s:vmode = "cterm" + let s:bright = "* term=bold cterm=bold" +" let s:base03 = "0".s:bright +" let s:base02 = "0" +" let s:base01 = "2".s:bright +" let s:base00 = "3".s:bright +" let s:base0 = "4".s:bright +" let s:base1 = "6".s:bright +" let s:base2 = "7" +" let s:base3 = "7".s:bright +" let s:yellow = "3" +" let s:orange = "1".s:bright +" let s:red = "1" +" let s:magenta = "5" +" let s:violet = "5".s:bright +" let s:blue = "4" +" let s:cyan = "6" +" let s:green = "2" + let s:base03 = "DarkGray" " 0* + let s:base02 = "Black" " 0 + let s:base01 = "LightGreen" " 2* + let s:base00 = "LightYellow" " 3* + let s:base0 = "LightBlue" " 4* + let s:base1 = "LightCyan" " 6* + let s:base2 = "LightGray" " 7 + let s:base3 = "White" " 7* + let s:yellow = "DarkYellow" " 3 + let s:orange = "LightRed" " 1* + let s:red = "DarkRed" " 1 + let s:magenta = "DarkMagenta" " 5 + let s:violet = "LightMagenta" " 5* + let s:blue = "DarkBlue" " 4 + let s:cyan = "DarkCyan" " 6 + let s:green = "DarkGreen" " 2 + +endif +"}}} +" Formatting options and null values for passthrough effect "{{{ +" --------------------------------------------------------------------- + let s:none = "NONE" + let s:none = "NONE" + let s:t_none = "NONE" + let s:n = "NONE" + let s:c = ",undercurl" + let s:r = ",reverse" + let s:s = ",standout" + let s:ou = "" + let s:ob = "" +"}}} +" Background value based on termtrans setting "{{{ +" --------------------------------------------------------------------- +if (has("gui_running") || g:solarized_termtrans == 0) + let s:back = s:base03 +else + let s:back = "NONE" +endif +"}}} +" Alternate light scheme "{{{ +" --------------------------------------------------------------------- +if &background == "light" + let s:temp03 = s:base03 + let s:temp02 = s:base02 + let s:temp01 = s:base01 + let s:temp00 = s:base00 + let s:base03 = s:base3 + let s:base02 = s:base2 + let s:base01 = s:base1 + let s:base00 = s:base0 + let s:base0 = s:temp00 + let s:base1 = s:temp01 + let s:base2 = s:temp02 + let s:base3 = s:temp03 + if (s:back != "NONE") + let s:back = s:base03 + endif +endif +"}}} +" Optional contrast schemes "{{{ +" --------------------------------------------------------------------- +if g:solarized_contrast == "high" + let s:base01 = s:base00 + let s:base00 = s:base0 + let s:base0 = s:base1 + let s:base1 = s:base2 + let s:base2 = s:base3 + let s:back = s:back +endif +if g:solarized_contrast == "low" + let s:back = s:base02 + let s:ou = ",underline" +endif +"}}} +" Overrides dependent on user specified values and environment "{{{ +" --------------------------------------------------------------------- +if (g:solarized_bold == 0 || &t_Co == 8 ) + let s:b = "" + let s:bb = ",bold" +else + let s:b = ",bold" + let s:bb = "" +endif + +if g:solarized_underline == 0 + let s:u = "" +else + let s:u = ",underline" +endif + +if g:solarized_italic == 0 || s:terminal_italic == 0 + let s:i = "" +else + let s:i = ",italic" +endif +"}}} +" Highlighting primitives"{{{ +" --------------------------------------------------------------------- + +exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'" +exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'" +exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'" +exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'" +exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'" +exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'" +exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'" +exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'" +exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'" +exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'" +exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'" +exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'" +exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'" +exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'" +exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'" +exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'" +exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'" +exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'" + +exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'" +exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'" +exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'" +exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'" +exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'" +exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'" +exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'" +exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'" +exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'" +exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'" +exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'" +exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'" +exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'" +exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'" +exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'" +exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'" +exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'" +exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'" + +exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'" +exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" +exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" +exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" +exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'" +exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" +exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'" +exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'" +exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'" +exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'" +exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'" +exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'" +" revbb (reverse bold for bright colors) is only set to actual bold in low +" color terminals (t_co=8, such as OS X Terminal.app) and should only be used +" with colors 8-15. +exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'" +exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'" + +if has("gui_running") + exe "let s:sp_none = ' guisp=".s:none ."'" + exe "let s:sp_back = ' guisp=".s:back ."'" + exe "let s:sp_base03 = ' guisp=".s:base03 ."'" + exe "let s:sp_base02 = ' guisp=".s:base02 ."'" + exe "let s:sp_base01 = ' guisp=".s:base01 ."'" + exe "let s:sp_base00 = ' guisp=".s:base00 ."'" + exe "let s:sp_base0 = ' guisp=".s:base0 ."'" + exe "let s:sp_base1 = ' guisp=".s:base1 ."'" + exe "let s:sp_base2 = ' guisp=".s:base2 ."'" + exe "let s:sp_base3 = ' guisp=".s:base3 ."'" + exe "let s:sp_green = ' guisp=".s:green ."'" + exe "let s:sp_yellow = ' guisp=".s:yellow ."'" + exe "let s:sp_orange = ' guisp=".s:orange ."'" + exe "let s:sp_red = ' guisp=".s:red ."'" + exe "let s:sp_magenta = ' guisp=".s:magenta."'" + exe "let s:sp_violet = ' guisp=".s:violet ."'" + exe "let s:sp_blue = ' guisp=".s:blue ."'" + exe "let s:sp_cyan = ' guisp=".s:cyan ."'" +else + let s:sp_none = "" + let s:sp_back = "" + let s:sp_base03 = "" + let s:sp_base02 = "" + let s:sp_base01 = "" + let s:sp_base00 = "" + let s:sp_base0 = "" + let s:sp_base1 = "" + let s:sp_base2 = "" + let s:sp_base3 = "" + let s:sp_green = "" + let s:sp_yellow = "" + let s:sp_orange = "" + let s:sp_red = "" + let s:sp_magenta = "" + let s:sp_violet = "" + let s:sp_blue = "" + let s:sp_cyan = "" +endif + +"}}} +" Basic highlighting"{{{ +" --------------------------------------------------------------------- +" note that link syntax to avoid duplicate configuration doesn't work with the +" exe compiled formats + +exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back + +exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none +" *Comment any comment + +exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none +" *Constant any constant +" String a string constant: "this is a string" +" Character a character constant: 'c', '\n' +" Number a number constant: 234, 0xff +" Boolean a boolean constant: TRUE, false +" Float a floating point constant: 2.3e10 + +exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none +" *Identifier any variable name +" Function function name (also: methods for classes) +" +exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none +" *Statement any statement +" Conditional if, then, else, endif, switch, etc. +" Repeat for, do, while, etc. +" Label case, default, etc. +" Operator "sizeof", "+", "*", etc. +" Keyword any other keyword +" Exception try, catch, throw + +exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none +" *PreProc generic Preprocessor +" Include preprocessor #include +" Define preprocessor #define +" Macro same as Define +" PreCondit preprocessor #if, #else, #endif, etc. + +exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none +" *Type int, long, char, etc. +" StorageClass static, register, volatile, etc. +" Structure struct, union, enum, etc. +" Typedef A typedef + +exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none +" *Special any special symbol +" SpecialChar special character in a constant +" Tag you can use CTRL-] on this +" Delimiter character that needs attention +" SpecialComment special things inside a comment +" Debug debugging statements + +exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none +" *Underlined text that stands out, HTML links + +exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none +" *Ignore left blank, hidden |hl-Ignore| + +exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none +" *Error any erroneous construct + +exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none +" *Todo anything that needs extra attention; mostly the +" keywords TODO FIXME and XXX +" +"}}} +" Extended highlighting "{{{ +" --------------------------------------------------------------------- +if (g:solarized_visibility=="high") + exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none +elseif (g:solarized_visibility=="low") + exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none + exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none +else + exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02 + exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none +endif +exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb +exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb +exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb +exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none +exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none +exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none +exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02 +exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none +if ( has("gui_running") || &t_Co > 8 ) + exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00 +else + exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02 +endif +exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none +exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb +exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb +exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03 +exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02 +if (g:solarized_diffmode=="high") +exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none +exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none +exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none +exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none +elseif (g:solarized_diffmode=="low") +exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green +exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none +exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue +else " normal + if has("gui_running") +exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green +exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02 +exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue + else +exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green +exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow +exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02 +exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue + endif +endif +exe "hi! SignColumn" .s:fmt_none .s:fg_base0 +exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red +exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet +exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan +exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow +exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb +exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb +exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb +exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb +exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 +exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu +exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02 +exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1 +exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02 +exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0 +hi! link lCursor Cursor +exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01 + +"}}} +" vim syntax highlighting "{{{ +" --------------------------------------------------------------------- +"exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital +"hi! link vimComment Comment +"hi! link vimLineComment Comment +hi! link vimVar Identifier +hi! link vimFunc Function +hi! link vimUserFunc Function +hi! link helpSpecial Special +hi! link vimSet Normal +hi! link vimSetEqual Normal +exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none +exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none +exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none +exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none +exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none +exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none +exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none +exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none +exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none +exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none +exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none +exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none +exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none +exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none +"}}} +" diff highlighting "{{{ +" --------------------------------------------------------------------- +hi! link diffAdded Statement +hi! link diffLine Identifier +"}}} +" git & gitcommit highlighting "{{{ +"git +"exe "hi! gitDateHeader" +"exe "hi! gitIdentityHeader" +"exe "hi! gitIdentityKeyword" +"exe "hi! gitNotesHeader" +"exe "hi! gitReflogHeader" +"exe "hi! gitKeyword" +"exe "hi! gitIdentity" +"exe "hi! gitEmailDelimiter" +"exe "hi! gitEmail" +"exe "hi! gitDate" +"exe "hi! gitMode" +"exe "hi! gitHashAbbrev" +"exe "hi! gitHash" +"exe "hi! gitReflogMiddle" +"exe "hi! gitReference" +"exe "hi! gitStage" +"exe "hi! gitType" +"exe "hi! gitDiffAdded" +"exe "hi! gitDiffRemoved" +"gitcommit +"exe "hi! gitcommitSummary" +exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none +hi! link gitcommitUntracked gitcommitComment +hi! link gitcommitDiscarded gitcommitComment +hi! link gitcommitSelected gitcommitComment +exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none +exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none +exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none +hi! link gitcommitNoBranch gitcommitBranch +exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none +exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none +"exe "hi! gitcommitUnmergedType" +"exe "hi! gitcommitType" +"exe "hi! gitcommitNoChanges" +"exe "hi! gitcommitHeader" +exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none +exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none +exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none +exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none +exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none +hi! link gitcommitDiscardedArrow gitcommitDiscardedFile +hi! link gitcommitSelectedArrow gitcommitSelectedFile +hi! link gitcommitUnmergedArrow gitcommitUnmergedFile +"exe "hi! gitcommitArrow" +"exe "hi! gitcommitOverflow" +"exe "hi! gitcommitBlank" +" }}} +" html highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none +exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none +exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none +exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none +exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none +exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none +"}}} +" perl highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none +exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none + +"}}} +" tex highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none +exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none +exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none +"}}} +" ruby highlighting "{{{ +" --------------------------------------------------------------------- +exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold +"rubyInclude +"rubySharpBang +"rubyAccess +"rubyPredefinedVariable +"rubyBoolean +"rubyClassVariable +"rubyBeginEnd +"rubyRepeatModifier +"hi! link rubyArrayDelimiter Special " [ , , ] +"rubyCurlyBlock { , , } + +"hi! link rubyClass Keyword +"hi! link rubyModule Keyword +"hi! link rubyKeyword Keyword +"hi! link rubyOperator Operator +"hi! link rubyIdentifier Identifier +"hi! link rubyInstanceVariable Identifier +"hi! link rubyGlobalVariable Identifier +"hi! link rubyClassVariable Identifier +"hi! link rubyConstant Type +"}}} +" haskell syntax highlighting"{{{ +" --------------------------------------------------------------------- +" For use with syntax/haskell.vim : Haskell Syntax File +" http://www.vim.org/scripts/script.php?script_id=3034 +" See also Steffen Siering's github repository: +" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim +" --------------------------------------------------------------------- +" +" Treat True and False specially, see the plugin referenced above +let hs_highlight_boolean=1 +" highlight delims, see the plugin referenced above +let hs_highlight_delimiters=1 + +exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none + +exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none +exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none + +exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none +exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none +exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr +exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none +hi! link hsImportParams Delimiter +hi! link hsDelimTypeExport Delimiter +hi! link hsModuleStartLabel hsStructure +hi! link hsModuleWhereLabel hsModuleStartLabel + +" following is for the haskell-conceal plugin +" the first two items don't have an impact, but better safe +exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none + +"}}} +" pandoc markdown syntax highlighting "{{{ +" --------------------------------------------------------------------- + +"PandocHiLink pandocNormalBlock +exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital +exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none +hi! link pandocVerbatimBlockDeep pandocVerbatimBlock +hi! link pandocCodeBlock pandocVerbatimBlock +hi! link pandocCodeBlockDelim pandocVerbatimBlock +exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none +exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr + +" Definitions +" --------------------------------------------------------------------- +let s:fg_pdef = s:fg_violet +exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd +exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold +exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi +exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none +exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none + +" Tables +" --------------------------------------------------------------------- +let s:fg_ptable = s:fg_blue +exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none +hi! link pandocTableStructureTop pandocTableStructre +hi! link pandocTableStructureEnd pandocTableStructre +exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none +exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none +exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi +exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none +exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none + +" Headings +" --------------------------------------------------------------------- +let s:fg_phead = s:fg_orange +exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold +exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi +exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr +exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold +exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold + +" Links +" --------------------------------------------------------------------- +exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr +exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb +exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr +exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi +exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00 +exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00 +exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb +exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr +exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold +exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb +exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none +exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr +exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none + +" Main Styles +" --------------------------------------------------------------------- +exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital +exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold +exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi +exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr +exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none +exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none +exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none + +exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold +exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold +exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none +exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr +hi! link pandocEscapedCharacter pandocEscapePair +hi! link pandocLineBreak pandocEscapePair + +" Embedded Code +" --------------------------------------------------------------------- +exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none +exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none +exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold +hi! link pandocMetadataTitle pandocMetadata + +"}}} +" Utility autocommand "{{{ +" --------------------------------------------------------------------- +" In cases where Solarized is initialized inside a terminal vim session and +" then transferred to a gui session via the command `:gui`, the gui vim process +" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui` +" related code that sets gui specific values isn't executed. +" +" Currently, Solarized sets only the cterm or gui values for the colorscheme +" depending on gui or terminal mode. It's possible that, if the following +" autocommand method is deemed excessively poor form, that approach will be +" used again and the autocommand below will be dropped. +" +" However it seems relatively benign in this case to include the autocommand +" here. It fires only in cases where vim is transferring from terminal to gui +" mode (detected with the script scope s:vmode variable). It also allows for +" other potential terminal customizations that might make gui mode suboptimal. +" +autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif +"}}} +" Highlight Trailing Space {{{ +" Experimental: Different highlight when on cursorline +function! s:SolarizedHiTrail() + if g:solarized_hitrail==0 + hi! clear solarizedTrailingSpace + else + syn match solarizedTrailingSpace "\s*$" + exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red + endif +endfunction +augroup SolarizedHiTrail + autocmd! + if g:solarized_hitrail==1 + autocmd! Syntax * call s:SolarizedHiTrail() + autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif + endif +augroup END +" }}} +" Menus "{{{ +" --------------------------------------------------------------------- +" Turn off Solarized menu by including the following assignment in your .vimrc: +" +" let g:solarized_menu=0 + +function! s:SolarizedOptions() + new "new buffer + setf vim "vim filetype + let failed = append(0, s:defaults_list) + let failed = append(0, s:colorscheme_list) + let failed = append(0, s:options_list) + let failed = append(0, s:lazycat_list) + 0 "jump back to the top +endfunction +if !exists(":SolarizedOptions") + command SolarizedOptions :call s:SolarizedOptions() +endif + +function! SolarizedMenu() + if exists("g:loaded_solarized_menu") + try + silent! aunmenu Solarized + endtry + endif + let g:loaded_solarized_menu = 1 + + if g:colors_name == "solarized" && g:solarized_menu != 0 + + amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized + amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized + amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized + an &Solarized.&Contrast.-sep- + amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast' + + amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized + amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized + amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized + an &Solarized.&Visibility.-sep- + amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility' + + amenu &Solarized.&Background.&Toggle\ Background :ToggleBG + amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized + amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized + an &Solarized.&Background.-sep- + amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg + + if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized" + if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized" + if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif + exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized" + + amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized + amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized + amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized + + if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif + exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized" + an &Solarized.&Experimental.-sep- + amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail' + + an &Solarized.-sep1- + + amenu &Solarized.&Autogenerate\ options :SolarizedOptions + + an &Solarized.-sep2- + + amenu &Solarized.&Help.&Solarized\ Help :help solarized + amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg + amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu + + an 9999.77 &Help.&Solarized\ Colorscheme :help solarized + an 9999.78 &Help.&Toggle\ Background :help togglebg + an 9999.79 &Help.-sep3- + + endif +endfunction + +autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | endif + +"}}} +" License "{{{ +" --------------------------------------------------------------------- +" +" Copyright (c) 2011 Ethan Schoonover +" +" 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. +" +" vim:foldmethod=marker:foldlevel=0 +"}}} From cef2c2ba2d821b82cbf17e76b055f24b7bd73e37 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Mar 2015 10:56:52 +0200 Subject: [PATCH 011/230] Colors install --- install | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/install b/install index 44bec39..d5c8198 100755 --- a/install +++ b/install @@ -22,10 +22,14 @@ then fi # install vim colors -if [ ! -d ~/.vim ] +if [ ! -d ~/.vim/colors ] then - mkdir ~/.vim - ln -s $HOME/.dotfiles/vim-colors $HOME/.vim/colors + mkdir -p ~/.vim/colors + echo "Copying vim colors..." + cp -R $SRC/vim-colors/ $HOME/.vim/colors +elif [ "$1" == "colors" ] +then + cp -R $SRC/vim-colors/ $HOME/.vim/colors fi # install Vundle From 4f2f95943c1d306503d03a508465381c79f0aa13 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Mar 2015 11:58:51 +0200 Subject: [PATCH 012/230] zshrc to source .zsh files --- zsh/autojump.zsh | 2 +- zshrc | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/zsh/autojump.zsh b/zsh/autojump.zsh index e6e32ba..525dcfb 100644 --- a/zsh/autojump.zsh +++ b/zsh/autojump.zsh @@ -1,5 +1,5 @@ # AutoJump -if [[ "$(uname)" == "Darwin" ]] +if [[ "$OSTYPE" == darwin* ]] then [[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh fi diff --git a/zshrc b/zshrc index d49c1c5..d41678e 100644 --- a/zshrc +++ b/zshrc @@ -64,4 +64,7 @@ zle -N edit-command-line bindkey -M vicmd v edit-command-line # Load ~/.zsh directory -source ~/.zsh/*.zsh +for zsh_file in $(ls ~/.zsh/*.zsh) +do + source $zsh_file +done From 40037f273d9f5d0ff28412b44e788ac22045c6c2 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Mar 2015 12:47:07 +0200 Subject: [PATCH 013/230] Install colors from Vundle --- install | 38 ++++++++++++++------------------------ vimrc | 1 + 2 files changed, 15 insertions(+), 24 deletions(-) diff --git a/install b/install index d5c8198..fcce8ca 100755 --- a/install +++ b/install @@ -1,19 +1,6 @@ SRC=$HOME/.dotfiles dotfiles=(vimrc tmux.conf gitconfig zshrc zsh) -for dotfile in ${dotfiles[@]} -do - if [ ! "$(readlink $HOME/.${dotfile})" == "$HOME/.dotfiles/${dotfile}" ] - then - if [ -f $HOME/.$dotfile ] - then - rm $HOME/.$dotfile - fi - echo "Creating a symlink for ${dotfile}..." - ln -s $SRC/$dotfile $HOME/.$dotfile - fi -done - # install oh-my-zsh if [ ! -d ~/.oh-my-zsh ] then @@ -21,20 +8,23 @@ then curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh fi -# install vim colors -if [ ! -d ~/.vim/colors ] -then - mkdir -p ~/.vim/colors - echo "Copying vim colors..." - cp -R $SRC/vim-colors/ $HOME/.vim/colors -elif [ "$1" == "colors" ] -then - cp -R $SRC/vim-colors/ $HOME/.vim/colors -fi - # install Vundle if [ ! -d ~/.vim/bundle/Vundle.vim ] then git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim vim +PluginInstall +qall fi + +# symlinks to dotfiles +for dotfile in ${dotfiles[@]} +do + if [ ! "$(readlink $HOME/.${dotfile})" == "$HOME/.dotfiles/${dotfile}" ] + then + if [ -f $HOME/.$dotfile ] + then + rm $HOME/.$dotfile + fi + echo "Creating a symlink for ${dotfile}..." + ln -s $SRC/$dotfile $HOME/.$dotfile + fi +done diff --git a/vimrc b/vimrc index 347b0f3..9cebb5a 100644 --- a/vimrc +++ b/vimrc @@ -5,6 +5,7 @@ set runtimepath+=~/.vim/bundle/Vundle.vim call vundle#begin() Plugin 'gmarik/Vundle.vim' +Plugin 'altercation/vim-colors-solarized' Plugin 'fatih/vim-go' Plugin 'ekalinin/Dockerfile.vim' Plugin 'markcornick/vim-terraform' From e01965d2c1418ffb010547f1a6168dcdc3afd2ad Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Mar 2015 14:34:20 +0200 Subject: [PATCH 014/230] change order --- install | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/install b/install index fcce8ca..2cf0b19 100755 --- a/install +++ b/install @@ -1,20 +1,6 @@ SRC=$HOME/.dotfiles dotfiles=(vimrc tmux.conf gitconfig zshrc zsh) -# install oh-my-zsh -if [ ! -d ~/.oh-my-zsh ] -then - echo "Installing oh-my-zsh..." - curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh -fi - -# install Vundle -if [ ! -d ~/.vim/bundle/Vundle.vim ] -then - git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim - vim +PluginInstall +qall -fi - # symlinks to dotfiles for dotfile in ${dotfiles[@]} do @@ -28,3 +14,17 @@ do ln -s $SRC/$dotfile $HOME/.$dotfile fi done + +# install oh-my-zsh +if [ ! -d ~/.oh-my-zsh ] +then + echo "Installing oh-my-zsh..." + curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh +fi + +# install Vundle +if [ ! -d ~/.vim/bundle/Vundle.vim ] +then + git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim + vim +PluginInstall +qall +fi From ab90d80d086599bd04fee8f748bca055d3cec574 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Mar 2015 15:22:58 +0200 Subject: [PATCH 015/230] removed colors from repo, installing from vundle --- vim-colors/solarized.vim | 1117 -------------------------------------- vimrc | 2 - 2 files changed, 1119 deletions(-) delete mode 100644 vim-colors/solarized.vim diff --git a/vim-colors/solarized.vim b/vim-colors/solarized.vim deleted file mode 100644 index 70f5223..0000000 --- a/vim-colors/solarized.vim +++ /dev/null @@ -1,1117 +0,0 @@ -" Name: Solarized vim colorscheme -" Author: Ethan Schoonover -" URL: http://ethanschoonover.com/solarized -" (see this url for latest release & screenshots) -" License: OSI approved MIT license (see end of this file) -" Created: In the middle of the night -" Modified: 2011 May 05 -" -" Usage "{{{ -" -" --------------------------------------------------------------------- -" ABOUT: -" --------------------------------------------------------------------- -" Solarized is a carefully designed selective contrast colorscheme with dual -" light and dark modes that runs in both GUI, 256 and 16 color modes. -" -" See the homepage above for screenshots and details. -" -" --------------------------------------------------------------------- -" OPTIONS: -" --------------------------------------------------------------------- -" See the "solarized.txt" help file included with this colorscheme (in the -" "doc" subdirectory) for information on options, usage, the Toggle Background -" function and more. If you have already installed Solarized, this is available -" from the Solarized menu and command line as ":help solarized" -" -" --------------------------------------------------------------------- -" INSTALLATION: -" --------------------------------------------------------------------- -" Two options for installation: manual or pathogen -" -" MANUAL INSTALLATION OPTION: -" --------------------------------------------------------------------- -" -" 1. Download the solarized distribution (available on the homepage above) -" and unarchive the file. -" 2. Move `solarized.vim` to your `.vim/colors` directory. -" 3. Move each of the files in each subdirectories to the corresponding .vim -" subdirectory (e.g. autoload/togglebg.vim goes into your .vim/autoload -" directory as .vim/autoload/togglebg.vim). -" -" RECOMMENDED PATHOGEN INSTALLATION OPTION: -" --------------------------------------------------------------------- -" -" 1. Download and install Tim Pope's Pathogen from: -" https://github.com/tpope/vim-pathogen -" -" 2. Next, move or clone the `vim-colors-solarized` directory so that it is -" a subdirectory of the `.vim/bundle` directory. -" -" a. **clone with git:** -" -" $ cd ~/.vim/bundle -" $ git clone git://github.com/altercation/vim-colors-solarized.git -" -" b. **or move manually into the pathogen bundle directory:** -" In the parent directory of vim-colors-solarized: -" -" $ mv vim-colors-solarized ~/.vim/bundle/ -" -" MODIFY VIMRC: -" -" After either Option 1 or Option 2 above, put the following two lines in your -" .vimrc: -" -" syntax enable -" set background=dark -" colorscheme solarized -" -" or, for the light background mode of Solarized: -" -" syntax enable -" set background=light -" colorscheme solarized -" -" I like to have a different background in GUI and terminal modes, so I can use -" the following if-then. However, I find vim's background autodetection to be -" pretty good and, at least with MacVim, I can leave this background value -" assignment out entirely and get the same results. -" -" if has('gui_running') -" set background=light -" else -" set background=dark -" endif -" -" See the Solarized homepage at http://ethanschoonover.com/solarized for -" screenshots which will help you select either the light or dark background. -" -" --------------------------------------------------------------------- -" COLOR VALUES -" --------------------------------------------------------------------- -" Download palettes and files from: http://ethanschoonover.com/solarized -" -" L\*a\*b values are canonical (White D65, Reference D50), other values are -" matched in sRGB space. -" -" SOLARIZED HEX 16/8 TERMCOL XTERM/HEX L*A*B sRGB HSB -" --------- ------- ---- ------- ----------- ---------- ----------- ----------- -" base03 #002b36 8/4 brblack 234 #1c1c1c 15 -12 -12 0 43 54 193 100 21 -" base02 #073642 0/4 black 235 #262626 20 -12 -12 7 54 66 192 90 26 -" base01 #586e75 10/7 brgreen 240 #4e4e4e 45 -07 -07 88 110 117 194 25 46 -" base00 #657b83 11/7 bryellow 241 #585858 50 -07 -07 101 123 131 195 23 51 -" base0 #839496 12/6 brblue 244 #808080 60 -06 -03 131 148 150 186 13 59 -" base1 #93a1a1 14/4 brcyan 245 #8a8a8a 65 -05 -02 147 161 161 180 9 63 -" base2 #eee8d5 7/7 white 254 #d7d7af 92 -00 10 238 232 213 44 11 93 -" base3 #fdf6e3 15/7 brwhite 230 #ffffd7 97 00 10 253 246 227 44 10 99 -" yellow #b58900 3/3 yellow 136 #af8700 60 10 65 181 137 0 45 100 71 -" orange #cb4b16 9/3 brred 166 #d75f00 50 50 55 203 75 22 18 89 80 -" red #dc322f 1/1 red 160 #d70000 50 65 45 220 50 47 1 79 86 -" magenta #d33682 5/5 magenta 125 #af005f 50 65 -05 211 54 130 331 74 83 -" violet #6c71c4 13/5 brmagenta 61 #5f5faf 50 15 -45 108 113 196 237 45 77 -" blue #268bd2 4/4 blue 33 #0087ff 55 -10 -45 38 139 210 205 82 82 -" cyan #2aa198 6/6 cyan 37 #00afaf 60 -35 -05 42 161 152 175 74 63 -" green #859900 2/2 green 64 #5f8700 60 -20 65 133 153 0 68 100 60 -" -" --------------------------------------------------------------------- -" COLORSCHEME HACKING -" --------------------------------------------------------------------- -" -" Useful commands for testing colorschemes: -" :source $VIMRUNTIME/syntax/hitest.vim -" :help highlight-groups -" :help cterm-colors -" :help group-name -" -" Useful links for developing colorschemes: -" http://www.vim.org/scripts/script.php?script_id=2937 -" http://vimcasts.org/episodes/creating-colorschemes-for-vim/ -" http://www.frexx.de/xterm-256-notes/" -" -" }}} -" Environment Specific Overrides "{{{ -" Allow or disallow certain features based on current terminal emulator or -" environment. - -" Terminals that support italics -let s:terms_italic=[ - \"rxvt", - \"gnome-terminal" - \] -" For reference only, terminals are known to be incomptible. -" Terminals that are in neither list need to be tested. -let s:terms_noitalic=[ - \"iTerm.app", - \"Apple_Terminal" - \] -if has("gui_running") - let s:terminal_italic=1 " TODO: could refactor to not require this at all -else - let s:terminal_italic=0 " terminals will be guilty until proven compatible - for term in s:terms_italic - if $TERM_PROGRAM =~ term - let s:terminal_italic=1 - endif - endfor -endif - -" }}} -" Default option values"{{{ -" --------------------------------------------------------------------- -" s:options_list is used to autogenerate a list of all non-default options -" using "call SolarizedOptions()" or with the "Generate .vimrc commands" -" Solarized menu option. See the "Menus" section below for the function itself. -let s:options_list=[ - \'" this block of commands has been autogenerated by solarized.vim and', - \'" includes the current, non-default Solarized option values.', - \'" To use, place these commands in your .vimrc file (replacing any', - \'" existing colorscheme commands). See also ":help solarized"', - \'', - \'" ------------------------------------------------------------------', - \'" Solarized Colorscheme Config', - \'" ------------------------------------------------------------------', - \] -let s:colorscheme_list=[ - \'syntax enable', - \'set background='.&background, - \'colorscheme solarized', - \] -let s:defaults_list=[ - \'" ------------------------------------------------------------------', - \'', - \'" The following items are available options, but do not need to be', - \'" included in your .vimrc as they are currently set to their defaults.', - \'' - \] -let s:lazycat_list=[ - \'" lazy method of appending this onto your .vimrc ":w! >> ~/.vimrc"', - \'" ------------------------------------------------------------------', - \] - -function! s:SetOption(name,default) - if type(a:default) == type(0) - let l:wrap='' - let l:ewrap='' - else - let l:wrap='"' - let l:ewrap='\"' - endif - if !exists("g:solarized_".a:name) || g:solarized_{a:name}==a:default - exe 'let g:solarized_'.a:name.'='.l:wrap.a:default.l:wrap.'"' - exe 'call add(s:defaults_list, "\" let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.'")' - else - exe 'call add(s:options_list, "let g:solarized_'.a:name.'='.l:ewrap.g:solarized_{a:name}.l:ewrap.' \"default value is '.a:default.'")' - endif -endfunction - -if ($TERM_PROGRAM ==? "apple_terminal" && &t_Co < 256) - let s:solarized_termtrans_default = 1 -else - let s:solarized_termtrans_default = 0 -endif -call s:SetOption("termtrans",s:solarized_termtrans_default) -call s:SetOption("degrade",0) -call s:SetOption("bold",1) -call s:SetOption("underline",1) -call s:SetOption("italic",1) " note that we need to override this later if the terminal doesn't support -call s:SetOption("termcolors",16) -call s:SetOption("contrast","normal") -call s:SetOption("visibility","normal") -call s:SetOption("diffmode","normal") -call s:SetOption("hitrail",0) -call s:SetOption("menu",1) - -"}}} -" Colorscheme initialization "{{{ -" --------------------------------------------------------------------- -hi clear -if exists("syntax_on") - syntax reset -endif -let colors_name = "solarized" - -"}}} -" GUI & CSApprox hexadecimal palettes"{{{ -" --------------------------------------------------------------------- -" -" Set both gui and terminal color values in separate conditional statements -" Due to possibility that CSApprox is running (though I suppose we could just -" leave the hex values out entirely in that case and include only cterm colors) -" We also check to see if user has set solarized (force use of the -" neutral gray monotone palette component) -if (has("gui_running") && g:solarized_degrade == 0) - let s:vmode = "gui" - let s:base03 = "#002b36" - let s:base02 = "#073642" - let s:base01 = "#586e75" - let s:base00 = "#657b83" - let s:base0 = "#839496" - let s:base1 = "#93a1a1" - let s:base2 = "#eee8d5" - let s:base3 = "#fdf6e3" - let s:yellow = "#b58900" - let s:orange = "#cb4b16" - let s:red = "#dc322f" - let s:magenta = "#d33682" - let s:violet = "#6c71c4" - let s:blue = "#268bd2" - let s:cyan = "#2aa198" - "let s:green = "#859900" "original - let s:green = "#719e07" "experimental -elseif (has("gui_running") && g:solarized_degrade == 1) - " These colors are identical to the 256 color mode. They may be viewed - " while in gui mode via "let g:solarized_degrade=1", though this is not - " recommened and is for testing only. - let s:vmode = "gui" - let s:base03 = "#1c1c1c" - let s:base02 = "#262626" - let s:base01 = "#4e4e4e" - let s:base00 = "#585858" - let s:base0 = "#808080" - let s:base1 = "#8a8a8a" - let s:base2 = "#d7d7af" - let s:base3 = "#ffffd7" - let s:yellow = "#af8700" - let s:orange = "#d75f00" - let s:red = "#af0000" - let s:magenta = "#af005f" - let s:violet = "#5f5faf" - let s:blue = "#0087ff" - let s:cyan = "#00afaf" - let s:green = "#5f8700" -elseif g:solarized_termcolors != 256 && &t_Co >= 16 - let s:vmode = "cterm" - let s:base03 = "8" - let s:base02 = "0" - let s:base01 = "10" - let s:base00 = "11" - let s:base0 = "12" - let s:base1 = "14" - let s:base2 = "7" - let s:base3 = "15" - let s:yellow = "3" - let s:orange = "9" - let s:red = "1" - let s:magenta = "5" - let s:violet = "13" - let s:blue = "4" - let s:cyan = "6" - let s:green = "2" -elseif g:solarized_termcolors == 256 - let s:vmode = "cterm" - let s:base03 = "234" - let s:base02 = "235" - let s:base01 = "239" - let s:base00 = "240" - let s:base0 = "244" - let s:base1 = "245" - let s:base2 = "187" - let s:base3 = "230" - let s:yellow = "136" - let s:orange = "166" - let s:red = "124" - let s:magenta = "125" - let s:violet = "61" - let s:blue = "33" - let s:cyan = "37" - let s:green = "64" -else - let s:vmode = "cterm" - let s:bright = "* term=bold cterm=bold" -" let s:base03 = "0".s:bright -" let s:base02 = "0" -" let s:base01 = "2".s:bright -" let s:base00 = "3".s:bright -" let s:base0 = "4".s:bright -" let s:base1 = "6".s:bright -" let s:base2 = "7" -" let s:base3 = "7".s:bright -" let s:yellow = "3" -" let s:orange = "1".s:bright -" let s:red = "1" -" let s:magenta = "5" -" let s:violet = "5".s:bright -" let s:blue = "4" -" let s:cyan = "6" -" let s:green = "2" - let s:base03 = "DarkGray" " 0* - let s:base02 = "Black" " 0 - let s:base01 = "LightGreen" " 2* - let s:base00 = "LightYellow" " 3* - let s:base0 = "LightBlue" " 4* - let s:base1 = "LightCyan" " 6* - let s:base2 = "LightGray" " 7 - let s:base3 = "White" " 7* - let s:yellow = "DarkYellow" " 3 - let s:orange = "LightRed" " 1* - let s:red = "DarkRed" " 1 - let s:magenta = "DarkMagenta" " 5 - let s:violet = "LightMagenta" " 5* - let s:blue = "DarkBlue" " 4 - let s:cyan = "DarkCyan" " 6 - let s:green = "DarkGreen" " 2 - -endif -"}}} -" Formatting options and null values for passthrough effect "{{{ -" --------------------------------------------------------------------- - let s:none = "NONE" - let s:none = "NONE" - let s:t_none = "NONE" - let s:n = "NONE" - let s:c = ",undercurl" - let s:r = ",reverse" - let s:s = ",standout" - let s:ou = "" - let s:ob = "" -"}}} -" Background value based on termtrans setting "{{{ -" --------------------------------------------------------------------- -if (has("gui_running") || g:solarized_termtrans == 0) - let s:back = s:base03 -else - let s:back = "NONE" -endif -"}}} -" Alternate light scheme "{{{ -" --------------------------------------------------------------------- -if &background == "light" - let s:temp03 = s:base03 - let s:temp02 = s:base02 - let s:temp01 = s:base01 - let s:temp00 = s:base00 - let s:base03 = s:base3 - let s:base02 = s:base2 - let s:base01 = s:base1 - let s:base00 = s:base0 - let s:base0 = s:temp00 - let s:base1 = s:temp01 - let s:base2 = s:temp02 - let s:base3 = s:temp03 - if (s:back != "NONE") - let s:back = s:base03 - endif -endif -"}}} -" Optional contrast schemes "{{{ -" --------------------------------------------------------------------- -if g:solarized_contrast == "high" - let s:base01 = s:base00 - let s:base00 = s:base0 - let s:base0 = s:base1 - let s:base1 = s:base2 - let s:base2 = s:base3 - let s:back = s:back -endif -if g:solarized_contrast == "low" - let s:back = s:base02 - let s:ou = ",underline" -endif -"}}} -" Overrides dependent on user specified values and environment "{{{ -" --------------------------------------------------------------------- -if (g:solarized_bold == 0 || &t_Co == 8 ) - let s:b = "" - let s:bb = ",bold" -else - let s:b = ",bold" - let s:bb = "" -endif - -if g:solarized_underline == 0 - let s:u = "" -else - let s:u = ",underline" -endif - -if g:solarized_italic == 0 || s:terminal_italic == 0 - let s:i = "" -else - let s:i = ",italic" -endif -"}}} -" Highlighting primitives"{{{ -" --------------------------------------------------------------------- - -exe "let s:bg_none = ' ".s:vmode."bg=".s:none ."'" -exe "let s:bg_back = ' ".s:vmode."bg=".s:back ."'" -exe "let s:bg_base03 = ' ".s:vmode."bg=".s:base03 ."'" -exe "let s:bg_base02 = ' ".s:vmode."bg=".s:base02 ."'" -exe "let s:bg_base01 = ' ".s:vmode."bg=".s:base01 ."'" -exe "let s:bg_base00 = ' ".s:vmode."bg=".s:base00 ."'" -exe "let s:bg_base0 = ' ".s:vmode."bg=".s:base0 ."'" -exe "let s:bg_base1 = ' ".s:vmode."bg=".s:base1 ."'" -exe "let s:bg_base2 = ' ".s:vmode."bg=".s:base2 ."'" -exe "let s:bg_base3 = ' ".s:vmode."bg=".s:base3 ."'" -exe "let s:bg_green = ' ".s:vmode."bg=".s:green ."'" -exe "let s:bg_yellow = ' ".s:vmode."bg=".s:yellow ."'" -exe "let s:bg_orange = ' ".s:vmode."bg=".s:orange ."'" -exe "let s:bg_red = ' ".s:vmode."bg=".s:red ."'" -exe "let s:bg_magenta = ' ".s:vmode."bg=".s:magenta."'" -exe "let s:bg_violet = ' ".s:vmode."bg=".s:violet ."'" -exe "let s:bg_blue = ' ".s:vmode."bg=".s:blue ."'" -exe "let s:bg_cyan = ' ".s:vmode."bg=".s:cyan ."'" - -exe "let s:fg_none = ' ".s:vmode."fg=".s:none ."'" -exe "let s:fg_back = ' ".s:vmode."fg=".s:back ."'" -exe "let s:fg_base03 = ' ".s:vmode."fg=".s:base03 ."'" -exe "let s:fg_base02 = ' ".s:vmode."fg=".s:base02 ."'" -exe "let s:fg_base01 = ' ".s:vmode."fg=".s:base01 ."'" -exe "let s:fg_base00 = ' ".s:vmode."fg=".s:base00 ."'" -exe "let s:fg_base0 = ' ".s:vmode."fg=".s:base0 ."'" -exe "let s:fg_base1 = ' ".s:vmode."fg=".s:base1 ."'" -exe "let s:fg_base2 = ' ".s:vmode."fg=".s:base2 ."'" -exe "let s:fg_base3 = ' ".s:vmode."fg=".s:base3 ."'" -exe "let s:fg_green = ' ".s:vmode."fg=".s:green ."'" -exe "let s:fg_yellow = ' ".s:vmode."fg=".s:yellow ."'" -exe "let s:fg_orange = ' ".s:vmode."fg=".s:orange ."'" -exe "let s:fg_red = ' ".s:vmode."fg=".s:red ."'" -exe "let s:fg_magenta = ' ".s:vmode."fg=".s:magenta."'" -exe "let s:fg_violet = ' ".s:vmode."fg=".s:violet ."'" -exe "let s:fg_blue = ' ".s:vmode."fg=".s:blue ."'" -exe "let s:fg_cyan = ' ".s:vmode."fg=".s:cyan ."'" - -exe "let s:fmt_none = ' ".s:vmode."=NONE". " term=NONE". "'" -exe "let s:fmt_bold = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" -exe "let s:fmt_bldi = ' ".s:vmode."=NONE".s:b. " term=NONE".s:b."'" -exe "let s:fmt_undr = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" -exe "let s:fmt_undb = ' ".s:vmode."=NONE".s:u.s:b. " term=NONE".s:u.s:b."'" -exe "let s:fmt_undi = ' ".s:vmode."=NONE".s:u. " term=NONE".s:u."'" -exe "let s:fmt_uopt = ' ".s:vmode."=NONE".s:ou. " term=NONE".s:ou."'" -exe "let s:fmt_curl = ' ".s:vmode."=NONE".s:c. " term=NONE".s:c."'" -exe "let s:fmt_ital = ' ".s:vmode."=NONE".s:i. " term=NONE".s:i."'" -exe "let s:fmt_stnd = ' ".s:vmode."=NONE".s:s. " term=NONE".s:s."'" -exe "let s:fmt_revr = ' ".s:vmode."=NONE".s:r. " term=NONE".s:r."'" -exe "let s:fmt_revb = ' ".s:vmode."=NONE".s:r.s:b. " term=NONE".s:r.s:b."'" -" revbb (reverse bold for bright colors) is only set to actual bold in low -" color terminals (t_co=8, such as OS X Terminal.app) and should only be used -" with colors 8-15. -exe "let s:fmt_revbb = ' ".s:vmode."=NONE".s:r.s:bb. " term=NONE".s:r.s:bb."'" -exe "let s:fmt_revbbu = ' ".s:vmode."=NONE".s:r.s:bb.s:u." term=NONE".s:r.s:bb.s:u."'" - -if has("gui_running") - exe "let s:sp_none = ' guisp=".s:none ."'" - exe "let s:sp_back = ' guisp=".s:back ."'" - exe "let s:sp_base03 = ' guisp=".s:base03 ."'" - exe "let s:sp_base02 = ' guisp=".s:base02 ."'" - exe "let s:sp_base01 = ' guisp=".s:base01 ."'" - exe "let s:sp_base00 = ' guisp=".s:base00 ."'" - exe "let s:sp_base0 = ' guisp=".s:base0 ."'" - exe "let s:sp_base1 = ' guisp=".s:base1 ."'" - exe "let s:sp_base2 = ' guisp=".s:base2 ."'" - exe "let s:sp_base3 = ' guisp=".s:base3 ."'" - exe "let s:sp_green = ' guisp=".s:green ."'" - exe "let s:sp_yellow = ' guisp=".s:yellow ."'" - exe "let s:sp_orange = ' guisp=".s:orange ."'" - exe "let s:sp_red = ' guisp=".s:red ."'" - exe "let s:sp_magenta = ' guisp=".s:magenta."'" - exe "let s:sp_violet = ' guisp=".s:violet ."'" - exe "let s:sp_blue = ' guisp=".s:blue ."'" - exe "let s:sp_cyan = ' guisp=".s:cyan ."'" -else - let s:sp_none = "" - let s:sp_back = "" - let s:sp_base03 = "" - let s:sp_base02 = "" - let s:sp_base01 = "" - let s:sp_base00 = "" - let s:sp_base0 = "" - let s:sp_base1 = "" - let s:sp_base2 = "" - let s:sp_base3 = "" - let s:sp_green = "" - let s:sp_yellow = "" - let s:sp_orange = "" - let s:sp_red = "" - let s:sp_magenta = "" - let s:sp_violet = "" - let s:sp_blue = "" - let s:sp_cyan = "" -endif - -"}}} -" Basic highlighting"{{{ -" --------------------------------------------------------------------- -" note that link syntax to avoid duplicate configuration doesn't work with the -" exe compiled formats - -exe "hi! Normal" .s:fmt_none .s:fg_base0 .s:bg_back - -exe "hi! Comment" .s:fmt_ital .s:fg_base01 .s:bg_none -" *Comment any comment - -exe "hi! Constant" .s:fmt_none .s:fg_cyan .s:bg_none -" *Constant any constant -" String a string constant: "this is a string" -" Character a character constant: 'c', '\n' -" Number a number constant: 234, 0xff -" Boolean a boolean constant: TRUE, false -" Float a floating point constant: 2.3e10 - -exe "hi! Identifier" .s:fmt_none .s:fg_blue .s:bg_none -" *Identifier any variable name -" Function function name (also: methods for classes) -" -exe "hi! Statement" .s:fmt_none .s:fg_green .s:bg_none -" *Statement any statement -" Conditional if, then, else, endif, switch, etc. -" Repeat for, do, while, etc. -" Label case, default, etc. -" Operator "sizeof", "+", "*", etc. -" Keyword any other keyword -" Exception try, catch, throw - -exe "hi! PreProc" .s:fmt_none .s:fg_orange .s:bg_none -" *PreProc generic Preprocessor -" Include preprocessor #include -" Define preprocessor #define -" Macro same as Define -" PreCondit preprocessor #if, #else, #endif, etc. - -exe "hi! Type" .s:fmt_none .s:fg_yellow .s:bg_none -" *Type int, long, char, etc. -" StorageClass static, register, volatile, etc. -" Structure struct, union, enum, etc. -" Typedef A typedef - -exe "hi! Special" .s:fmt_none .s:fg_red .s:bg_none -" *Special any special symbol -" SpecialChar special character in a constant -" Tag you can use CTRL-] on this -" Delimiter character that needs attention -" SpecialComment special things inside a comment -" Debug debugging statements - -exe "hi! Underlined" .s:fmt_none .s:fg_violet .s:bg_none -" *Underlined text that stands out, HTML links - -exe "hi! Ignore" .s:fmt_none .s:fg_none .s:bg_none -" *Ignore left blank, hidden |hl-Ignore| - -exe "hi! Error" .s:fmt_bold .s:fg_red .s:bg_none -" *Error any erroneous construct - -exe "hi! Todo" .s:fmt_bold .s:fg_magenta.s:bg_none -" *Todo anything that needs extra attention; mostly the -" keywords TODO FIXME and XXX -" -"}}} -" Extended highlighting "{{{ -" --------------------------------------------------------------------- -if (g:solarized_visibility=="high") - exe "hi! SpecialKey" .s:fmt_revr .s:fg_red .s:bg_none - exe "hi! NonText" .s:fmt_bold .s:fg_red .s:bg_none -elseif (g:solarized_visibility=="low") - exe "hi! SpecialKey" .s:fmt_bold .s:fg_base02 .s:bg_none - exe "hi! NonText" .s:fmt_bold .s:fg_base02 .s:bg_none -else - exe "hi! SpecialKey" .s:fmt_bold .s:fg_base00 .s:bg_base02 - exe "hi! NonText" .s:fmt_bold .s:fg_base00 .s:bg_none -endif -exe "hi! StatusLine" .s:fmt_none .s:fg_base1 .s:bg_base02 .s:fmt_revbb -exe "hi! StatusLineNC" .s:fmt_none .s:fg_base00 .s:bg_base02 .s:fmt_revbb -exe "hi! Visual" .s:fmt_none .s:fg_base01 .s:bg_base03 .s:fmt_revbb -exe "hi! Directory" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! ErrorMsg" .s:fmt_revr .s:fg_red .s:bg_none -exe "hi! IncSearch" .s:fmt_stnd .s:fg_orange .s:bg_none -exe "hi! Search" .s:fmt_revr .s:fg_yellow .s:bg_none -exe "hi! MoreMsg" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! ModeMsg" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! LineNr" .s:fmt_none .s:fg_base01 .s:bg_base02 -exe "hi! Question" .s:fmt_bold .s:fg_cyan .s:bg_none -if ( has("gui_running") || &t_Co > 8 ) - exe "hi! VertSplit" .s:fmt_none .s:fg_base00 .s:bg_base00 -else - exe "hi! VertSplit" .s:fmt_revbb .s:fg_base00 .s:bg_base02 -endif -exe "hi! Title" .s:fmt_bold .s:fg_orange .s:bg_none -exe "hi! VisualNOS" .s:fmt_stnd .s:fg_none .s:bg_base02 .s:fmt_revbb -exe "hi! WarningMsg" .s:fmt_bold .s:fg_red .s:bg_none -exe "hi! WildMenu" .s:fmt_none .s:fg_base2 .s:bg_base02 .s:fmt_revbb -exe "hi! Folded" .s:fmt_undb .s:fg_base0 .s:bg_base02 .s:sp_base03 -exe "hi! FoldColumn" .s:fmt_none .s:fg_base0 .s:bg_base02 -if (g:solarized_diffmode=="high") -exe "hi! DiffAdd" .s:fmt_revr .s:fg_green .s:bg_none -exe "hi! DiffChange" .s:fmt_revr .s:fg_yellow .s:bg_none -exe "hi! DiffDelete" .s:fmt_revr .s:fg_red .s:bg_none -exe "hi! DiffText" .s:fmt_revr .s:fg_blue .s:bg_none -elseif (g:solarized_diffmode=="low") -exe "hi! DiffAdd" .s:fmt_undr .s:fg_green .s:bg_none .s:sp_green -exe "hi! DiffChange" .s:fmt_undr .s:fg_yellow .s:bg_none .s:sp_yellow -exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_none -exe "hi! DiffText" .s:fmt_undr .s:fg_blue .s:bg_none .s:sp_blue -else " normal - if has("gui_running") -exe "hi! DiffAdd" .s:fmt_bold .s:fg_green .s:bg_base02 .s:sp_green -exe "hi! DiffChange" .s:fmt_bold .s:fg_yellow .s:bg_base02 .s:sp_yellow -exe "hi! DiffDelete" .s:fmt_bold .s:fg_red .s:bg_base02 -exe "hi! DiffText" .s:fmt_bold .s:fg_blue .s:bg_base02 .s:sp_blue - else -exe "hi! DiffAdd" .s:fmt_none .s:fg_green .s:bg_base02 .s:sp_green -exe "hi! DiffChange" .s:fmt_none .s:fg_yellow .s:bg_base02 .s:sp_yellow -exe "hi! DiffDelete" .s:fmt_none .s:fg_red .s:bg_base02 -exe "hi! DiffText" .s:fmt_none .s:fg_blue .s:bg_base02 .s:sp_blue - endif -endif -exe "hi! SignColumn" .s:fmt_none .s:fg_base0 -exe "hi! Conceal" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! SpellBad" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_red -exe "hi! SpellCap" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_violet -exe "hi! SpellRare" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_cyan -exe "hi! SpellLocal" .s:fmt_curl .s:fg_none .s:bg_none .s:sp_yellow -exe "hi! Pmenu" .s:fmt_none .s:fg_base0 .s:bg_base02 .s:fmt_revbb -exe "hi! PmenuSel" .s:fmt_none .s:fg_base01 .s:bg_base2 .s:fmt_revbb -exe "hi! PmenuSbar" .s:fmt_none .s:fg_base2 .s:bg_base0 .s:fmt_revbb -exe "hi! PmenuThumb" .s:fmt_none .s:fg_base0 .s:bg_base03 .s:fmt_revbb -exe "hi! TabLine" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 -exe "hi! TabLineFill" .s:fmt_undr .s:fg_base0 .s:bg_base02 .s:sp_base0 -exe "hi! TabLineSel" .s:fmt_undr .s:fg_base01 .s:bg_base2 .s:sp_base0 .s:fmt_revbbu -exe "hi! CursorColumn" .s:fmt_none .s:fg_none .s:bg_base02 -exe "hi! CursorLine" .s:fmt_uopt .s:fg_none .s:bg_base02 .s:sp_base1 -exe "hi! ColorColumn" .s:fmt_none .s:fg_none .s:bg_base02 -exe "hi! Cursor" .s:fmt_none .s:fg_base03 .s:bg_base0 -hi! link lCursor Cursor -exe "hi! MatchParen" .s:fmt_bold .s:fg_red .s:bg_base01 - -"}}} -" vim syntax highlighting "{{{ -" --------------------------------------------------------------------- -"exe "hi! vimLineComment" . s:fg_base01 .s:bg_none .s:fmt_ital -"hi! link vimComment Comment -"hi! link vimLineComment Comment -hi! link vimVar Identifier -hi! link vimFunc Function -hi! link vimUserFunc Function -hi! link helpSpecial Special -hi! link vimSet Normal -hi! link vimSetEqual Normal -exe "hi! vimCommentString" .s:fmt_none .s:fg_violet .s:bg_none -exe "hi! vimCommand" .s:fmt_none .s:fg_yellow .s:bg_none -exe "hi! vimCmdSep" .s:fmt_bold .s:fg_blue .s:bg_none -exe "hi! helpExample" .s:fmt_none .s:fg_base1 .s:bg_none -exe "hi! helpOption" .s:fmt_none .s:fg_cyan .s:bg_none -exe "hi! helpNote" .s:fmt_none .s:fg_magenta.s:bg_none -exe "hi! helpVim" .s:fmt_none .s:fg_magenta.s:bg_none -exe "hi! helpHyperTextJump" .s:fmt_undr .s:fg_blue .s:bg_none -exe "hi! helpHyperTextEntry".s:fmt_none .s:fg_green .s:bg_none -exe "hi! vimIsCommand" .s:fmt_none .s:fg_base00 .s:bg_none -exe "hi! vimSynMtchOpt" .s:fmt_none .s:fg_yellow .s:bg_none -exe "hi! vimSynType" .s:fmt_none .s:fg_cyan .s:bg_none -exe "hi! vimHiLink" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! vimHiGroup" .s:fmt_none .s:fg_blue .s:bg_none -exe "hi! vimGroup" .s:fmt_undb .s:fg_blue .s:bg_none -"}}} -" diff highlighting "{{{ -" --------------------------------------------------------------------- -hi! link diffAdded Statement -hi! link diffLine Identifier -"}}} -" git & gitcommit highlighting "{{{ -"git -"exe "hi! gitDateHeader" -"exe "hi! gitIdentityHeader" -"exe "hi! gitIdentityKeyword" -"exe "hi! gitNotesHeader" -"exe "hi! gitReflogHeader" -"exe "hi! gitKeyword" -"exe "hi! gitIdentity" -"exe "hi! gitEmailDelimiter" -"exe "hi! gitEmail" -"exe "hi! gitDate" -"exe "hi! gitMode" -"exe "hi! gitHashAbbrev" -"exe "hi! gitHash" -"exe "hi! gitReflogMiddle" -"exe "hi! gitReference" -"exe "hi! gitStage" -"exe "hi! gitType" -"exe "hi! gitDiffAdded" -"exe "hi! gitDiffRemoved" -"gitcommit -"exe "hi! gitcommitSummary" -exe "hi! gitcommitComment" .s:fmt_ital .s:fg_base01 .s:bg_none -hi! link gitcommitUntracked gitcommitComment -hi! link gitcommitDiscarded gitcommitComment -hi! link gitcommitSelected gitcommitComment -exe "hi! gitcommitUnmerged" .s:fmt_bold .s:fg_green .s:bg_none -exe "hi! gitcommitOnBranch" .s:fmt_bold .s:fg_base01 .s:bg_none -exe "hi! gitcommitBranch" .s:fmt_bold .s:fg_magenta .s:bg_none -hi! link gitcommitNoBranch gitcommitBranch -exe "hi! gitcommitDiscardedType".s:fmt_none .s:fg_red .s:bg_none -exe "hi! gitcommitSelectedType" .s:fmt_none .s:fg_green .s:bg_none -"exe "hi! gitcommitUnmergedType" -"exe "hi! gitcommitType" -"exe "hi! gitcommitNoChanges" -"exe "hi! gitcommitHeader" -exe "hi! gitcommitHeader" .s:fmt_none .s:fg_base01 .s:bg_none -exe "hi! gitcommitUntrackedFile".s:fmt_bold .s:fg_cyan .s:bg_none -exe "hi! gitcommitDiscardedFile".s:fmt_bold .s:fg_red .s:bg_none -exe "hi! gitcommitSelectedFile" .s:fmt_bold .s:fg_green .s:bg_none -exe "hi! gitcommitUnmergedFile" .s:fmt_bold .s:fg_yellow .s:bg_none -exe "hi! gitcommitFile" .s:fmt_bold .s:fg_base0 .s:bg_none -hi! link gitcommitDiscardedArrow gitcommitDiscardedFile -hi! link gitcommitSelectedArrow gitcommitSelectedFile -hi! link gitcommitUnmergedArrow gitcommitUnmergedFile -"exe "hi! gitcommitArrow" -"exe "hi! gitcommitOverflow" -"exe "hi! gitcommitBlank" -" }}} -" html highlighting "{{{ -" --------------------------------------------------------------------- -exe "hi! htmlTag" .s:fmt_none .s:fg_base01 .s:bg_none -exe "hi! htmlEndTag" .s:fmt_none .s:fg_base01 .s:bg_none -exe "hi! htmlTagN" .s:fmt_bold .s:fg_base1 .s:bg_none -exe "hi! htmlTagName" .s:fmt_bold .s:fg_blue .s:bg_none -exe "hi! htmlSpecialTagName".s:fmt_ital .s:fg_blue .s:bg_none -exe "hi! htmlArg" .s:fmt_none .s:fg_base00 .s:bg_none -exe "hi! javaScript" .s:fmt_none .s:fg_yellow .s:bg_none -"}}} -" perl highlighting "{{{ -" --------------------------------------------------------------------- -exe "hi! perlHereDoc" . s:fg_base1 .s:bg_back .s:fmt_none -exe "hi! perlVarPlain" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi! perlStatementFileDesc". s:fg_cyan.s:bg_back.s:fmt_none - -"}}} -" tex highlighting "{{{ -" --------------------------------------------------------------------- -exe "hi! texStatement" . s:fg_cyan .s:bg_back .s:fmt_none -exe "hi! texMathZoneX" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi! texMathMatcher" . s:fg_yellow .s:bg_back .s:fmt_none -exe "hi! texRefLabel" . s:fg_yellow .s:bg_back .s:fmt_none -"}}} -" ruby highlighting "{{{ -" --------------------------------------------------------------------- -exe "hi! rubyDefine" . s:fg_base1 .s:bg_back .s:fmt_bold -"rubyInclude -"rubySharpBang -"rubyAccess -"rubyPredefinedVariable -"rubyBoolean -"rubyClassVariable -"rubyBeginEnd -"rubyRepeatModifier -"hi! link rubyArrayDelimiter Special " [ , , ] -"rubyCurlyBlock { , , } - -"hi! link rubyClass Keyword -"hi! link rubyModule Keyword -"hi! link rubyKeyword Keyword -"hi! link rubyOperator Operator -"hi! link rubyIdentifier Identifier -"hi! link rubyInstanceVariable Identifier -"hi! link rubyGlobalVariable Identifier -"hi! link rubyClassVariable Identifier -"hi! link rubyConstant Type -"}}} -" haskell syntax highlighting"{{{ -" --------------------------------------------------------------------- -" For use with syntax/haskell.vim : Haskell Syntax File -" http://www.vim.org/scripts/script.php?script_id=3034 -" See also Steffen Siering's github repository: -" http://github.com/urso/dotrc/blob/master/vim/syntax/haskell.vim -" --------------------------------------------------------------------- -" -" Treat True and False specially, see the plugin referenced above -let hs_highlight_boolean=1 -" highlight delims, see the plugin referenced above -let hs_highlight_delimiters=1 - -exe "hi! cPreCondit". s:fg_orange.s:bg_none .s:fmt_none - -exe "hi! VarId" . s:fg_blue .s:bg_none .s:fmt_none -exe "hi! ConId" . s:fg_yellow .s:bg_none .s:fmt_none -exe "hi! hsImport" . s:fg_magenta.s:bg_none .s:fmt_none -exe "hi! hsString" . s:fg_base00 .s:bg_none .s:fmt_none - -exe "hi! hsStructure" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hs_hlFunctionName" . s:fg_blue .s:bg_none -exe "hi! hsStatement" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hsImportLabel" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hs_OpFunctionName" . s:fg_yellow .s:bg_none .s:fmt_none -exe "hi! hs_DeclareFunction" . s:fg_orange .s:bg_none .s:fmt_none -exe "hi! hsVarSym" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hsType" . s:fg_yellow .s:bg_none .s:fmt_none -exe "hi! hsTypedef" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hsModuleName" . s:fg_green .s:bg_none .s:fmt_undr -exe "hi! hsModuleStartLabel" . s:fg_magenta.s:bg_none .s:fmt_none -hi! link hsImportParams Delimiter -hi! link hsDelimTypeExport Delimiter -hi! link hsModuleStartLabel hsStructure -hi! link hsModuleWhereLabel hsModuleStartLabel - -" following is for the haskell-conceal plugin -" the first two items don't have an impact, but better safe -exe "hi! hsNiceOperator" . s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! hsniceoperator" . s:fg_cyan .s:bg_none .s:fmt_none - -"}}} -" pandoc markdown syntax highlighting "{{{ -" --------------------------------------------------------------------- - -"PandocHiLink pandocNormalBlock -exe "hi! pandocTitleBlock" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi! pandocTitleBlockTitle" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi! pandocTitleComment" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi! pandocComment" .s:fg_base01 .s:bg_none .s:fmt_ital -exe "hi! pandocVerbatimBlock" .s:fg_yellow .s:bg_none .s:fmt_none -hi! link pandocVerbatimBlockDeep pandocVerbatimBlock -hi! link pandocCodeBlock pandocVerbatimBlock -hi! link pandocCodeBlockDelim pandocVerbatimBlock -exe "hi! pandocBlockQuote" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader1" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader2" .s:fg_cyan .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader3" .s:fg_yellow .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader4" .s:fg_red .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader5" .s:fg_base0 .s:bg_none .s:fmt_none -exe "hi! pandocBlockQuoteLeader6" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi! pandocListMarker" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi! pandocListReference" .s:fg_magenta.s:bg_none .s:fmt_undr - -" Definitions -" --------------------------------------------------------------------- -let s:fg_pdef = s:fg_violet -exe "hi! pandocDefinitionBlock" .s:fg_pdef .s:bg_none .s:fmt_none -exe "hi! pandocDefinitionTerm" .s:fg_pdef .s:bg_none .s:fmt_stnd -exe "hi! pandocDefinitionIndctr" .s:fg_pdef .s:bg_none .s:fmt_bold -exe "hi! pandocEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_ital -exe "hi! pandocEmphasisNestedDefinition" .s:fg_pdef .s:bg_none .s:fmt_bldi -exe "hi! pandocStrongEmphasisDefinition" .s:fg_pdef .s:bg_none .s:fmt_bold -exe "hi! pandocStrongEmphasisNestedDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi -exe "hi! pandocStrongEmphasisEmphasisDefinition" .s:fg_pdef.s:bg_none.s:fmt_bldi -exe "hi! pandocStrikeoutDefinition" .s:fg_pdef .s:bg_none .s:fmt_revr -exe "hi! pandocVerbatimInlineDefinition" .s:fg_pdef .s:bg_none .s:fmt_none -exe "hi! pandocSuperscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none -exe "hi! pandocSubscriptDefinition" .s:fg_pdef .s:bg_none .s:fmt_none - -" Tables -" --------------------------------------------------------------------- -let s:fg_ptable = s:fg_blue -exe "hi! pandocTable" .s:fg_ptable.s:bg_none .s:fmt_none -exe "hi! pandocTableStructure" .s:fg_ptable.s:bg_none .s:fmt_none -hi! link pandocTableStructureTop pandocTableStructre -hi! link pandocTableStructureEnd pandocTableStructre -exe "hi! pandocTableZebraLight" .s:fg_ptable.s:bg_base03.s:fmt_none -exe "hi! pandocTableZebraDark" .s:fg_ptable.s:bg_base02.s:fmt_none -exe "hi! pandocEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_ital -exe "hi! pandocEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi -exe "hi! pandocStrongEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bold -exe "hi! pandocStrongEmphasisNestedTable" .s:fg_ptable.s:bg_none .s:fmt_bldi -exe "hi! pandocStrongEmphasisEmphasisTable" .s:fg_ptable.s:bg_none .s:fmt_bldi -exe "hi! pandocStrikeoutTable" .s:fg_ptable.s:bg_none .s:fmt_revr -exe "hi! pandocVerbatimInlineTable" .s:fg_ptable.s:bg_none .s:fmt_none -exe "hi! pandocSuperscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none -exe "hi! pandocSubscriptTable" .s:fg_ptable.s:bg_none .s:fmt_none - -" Headings -" --------------------------------------------------------------------- -let s:fg_phead = s:fg_orange -exe "hi! pandocHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi! pandocHeadingMarker" .s:fg_yellow.s:bg_none.s:fmt_bold -exe "hi! pandocEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi! pandocEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi! pandocStrongEmphasisHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi! pandocStrongEmphasisNestedHeading" .s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi! pandocStrongEmphasisEmphasisHeading".s:fg_phead .s:bg_none.s:fmt_bldi -exe "hi! pandocStrikeoutHeading" .s:fg_phead .s:bg_none.s:fmt_revr -exe "hi! pandocVerbatimInlineHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi! pandocSuperscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold -exe "hi! pandocSubscriptHeading" .s:fg_phead .s:bg_none.s:fmt_bold - -" Links -" --------------------------------------------------------------------- -exe "hi! pandocLinkDelim" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi! pandocLinkLabel" .s:fg_blue .s:bg_none .s:fmt_undr -exe "hi! pandocLinkText" .s:fg_blue .s:bg_none .s:fmt_undb -exe "hi! pandocLinkURL" .s:fg_base00 .s:bg_none .s:fmt_undr -exe "hi! pandocLinkTitle" .s:fg_base00 .s:bg_none .s:fmt_undi -exe "hi! pandocLinkTitleDelim" .s:fg_base01 .s:bg_none .s:fmt_undi .s:sp_base00 -exe "hi! pandocLinkDefinition" .s:fg_cyan .s:bg_none .s:fmt_undr .s:sp_base00 -exe "hi! pandocLinkDefinitionID" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi! pandocImageCaption" .s:fg_violet .s:bg_none .s:fmt_undb -exe "hi! pandocFootnoteLink" .s:fg_green .s:bg_none .s:fmt_undr -exe "hi! pandocFootnoteDefLink" .s:fg_green .s:bg_none .s:fmt_bold -exe "hi! pandocFootnoteInline" .s:fg_green .s:bg_none .s:fmt_undb -exe "hi! pandocFootnote" .s:fg_green .s:bg_none .s:fmt_none -exe "hi! pandocCitationDelim" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi! pandocCitation" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi! pandocCitationID" .s:fg_magenta.s:bg_none .s:fmt_undr -exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none - -" Main Styles -" --------------------------------------------------------------------- -exe "hi! pandocStyleDelim" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi! pandocEmphasis" .s:fg_base0 .s:bg_none .s:fmt_ital -exe "hi! pandocEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi -exe "hi! pandocStrongEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bold -exe "hi! pandocStrongEmphasisNested" .s:fg_base0 .s:bg_none .s:fmt_bldi -exe "hi! pandocStrongEmphasisEmphasis" .s:fg_base0 .s:bg_none .s:fmt_bldi -exe "hi! pandocStrikeout" .s:fg_base01 .s:bg_none .s:fmt_revr -exe "hi! pandocVerbatimInline" .s:fg_yellow .s:bg_none .s:fmt_none -exe "hi! pandocSuperscript" .s:fg_violet .s:bg_none .s:fmt_none -exe "hi! pandocSubscript" .s:fg_violet .s:bg_none .s:fmt_none - -exe "hi! pandocRule" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi! pandocRuleLine" .s:fg_blue .s:bg_none .s:fmt_bold -exe "hi! pandocEscapePair" .s:fg_red .s:bg_none .s:fmt_bold -exe "hi! pandocCitationRef" .s:fg_magenta.s:bg_none .s:fmt_none -exe "hi! pandocNonBreakingSpace" . s:fg_red .s:bg_none .s:fmt_revr -hi! link pandocEscapedCharacter pandocEscapePair -hi! link pandocLineBreak pandocEscapePair - -" Embedded Code -" --------------------------------------------------------------------- -exe "hi! pandocMetadataDelim" .s:fg_base01 .s:bg_none .s:fmt_none -exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi! pandocMetadataKey" .s:fg_blue .s:bg_none .s:fmt_none -exe "hi! pandocMetadata" .s:fg_blue .s:bg_none .s:fmt_bold -hi! link pandocMetadataTitle pandocMetadata - -"}}} -" Utility autocommand "{{{ -" --------------------------------------------------------------------- -" In cases where Solarized is initialized inside a terminal vim session and -" then transferred to a gui session via the command `:gui`, the gui vim process -" does not re-read the colorscheme (or .vimrc for that matter) so any `has_gui` -" related code that sets gui specific values isn't executed. -" -" Currently, Solarized sets only the cterm or gui values for the colorscheme -" depending on gui or terminal mode. It's possible that, if the following -" autocommand method is deemed excessively poor form, that approach will be -" used again and the autocommand below will be dropped. -" -" However it seems relatively benign in this case to include the autocommand -" here. It fires only in cases where vim is transferring from terminal to gui -" mode (detected with the script scope s:vmode variable). It also allows for -" other potential terminal customizations that might make gui mode suboptimal. -" -autocmd GUIEnter * if (s:vmode != "gui") | exe "colorscheme " . g:colors_name | endif -"}}} -" Highlight Trailing Space {{{ -" Experimental: Different highlight when on cursorline -function! s:SolarizedHiTrail() - if g:solarized_hitrail==0 - hi! clear solarizedTrailingSpace - else - syn match solarizedTrailingSpace "\s*$" - exe "hi! solarizedTrailingSpace " .s:fmt_undr .s:fg_red .s:bg_none .s:sp_red - endif -endfunction -augroup SolarizedHiTrail - autocmd! - if g:solarized_hitrail==1 - autocmd! Syntax * call s:SolarizedHiTrail() - autocmd! ColorScheme * if g:colors_name == "solarized" | call s:SolarizedHiTrail() | else | augroup! s:SolarizedHiTrail | endif - endif -augroup END -" }}} -" Menus "{{{ -" --------------------------------------------------------------------- -" Turn off Solarized menu by including the following assignment in your .vimrc: -" -" let g:solarized_menu=0 - -function! s:SolarizedOptions() - new "new buffer - setf vim "vim filetype - let failed = append(0, s:defaults_list) - let failed = append(0, s:colorscheme_list) - let failed = append(0, s:options_list) - let failed = append(0, s:lazycat_list) - 0 "jump back to the top -endfunction -if !exists(":SolarizedOptions") - command SolarizedOptions :call s:SolarizedOptions() -endif - -function! SolarizedMenu() - if exists("g:loaded_solarized_menu") - try - silent! aunmenu Solarized - endtry - endif - let g:loaded_solarized_menu = 1 - - if g:colors_name == "solarized" && g:solarized_menu != 0 - - amenu &Solarized.&Contrast.&Low\ Contrast :let g:solarized_contrast="low" \| colorscheme solarized - amenu &Solarized.&Contrast.&Normal\ Contrast :let g:solarized_contrast="normal" \| colorscheme solarized - amenu &Solarized.&Contrast.&High\ Contrast :let g:solarized_contrast="high" \| colorscheme solarized - an &Solarized.&Contrast.-sep- - amenu &Solarized.&Contrast.&Help:\ Contrast :help 'solarized_contrast' - - amenu &Solarized.&Visibility.&Low\ Visibility :let g:solarized_visibility="low" \| colorscheme solarized - amenu &Solarized.&Visibility.&Normal\ Visibility :let g:solarized_visibility="normal" \| colorscheme solarized - amenu &Solarized.&Visibility.&High\ Visibility :let g:solarized_visibility="high" \| colorscheme solarized - an &Solarized.&Visibility.-sep- - amenu &Solarized.&Visibility.&Help:\ Visibility :help 'solarized_visibility' - - amenu &Solarized.&Background.&Toggle\ Background :ToggleBG - amenu &Solarized.&Background.&Dark\ Background :set background=dark \| colorscheme solarized - amenu &Solarized.&Background.&Light\ Background :set background=light \| colorscheme solarized - an &Solarized.&Background.-sep- - amenu &Solarized.&Background.&Help:\ ToggleBG :help togglebg - - if g:solarized_bold==0 | let l:boldswitch="On" | else | let l:boldswitch="Off" | endif - exe "amenu &Solarized.&Styling.&Turn\\ Bold\\ ".l:boldswitch." :let g:solarized_bold=(abs(g:solarized_bold-1)) \\| colorscheme solarized" - if g:solarized_italic==0 | let l:italicswitch="On" | else | let l:italicswitch="Off" | endif - exe "amenu &Solarized.&Styling.&Turn\\ Italic\\ ".l:italicswitch." :let g:solarized_italic=(abs(g:solarized_italic-1)) \\| colorscheme solarized" - if g:solarized_underline==0 | let l:underlineswitch="On" | else | let l:underlineswitch="Off" | endif - exe "amenu &Solarized.&Styling.&Turn\\ Underline\\ ".l:underlineswitch." :let g:solarized_underline=(abs(g:solarized_underline-1)) \\| colorscheme solarized" - - amenu &Solarized.&Diff\ Mode.&Low\ Diff\ Mode :let g:solarized_diffmode="low" \| colorscheme solarized - amenu &Solarized.&Diff\ Mode.&Normal\ Diff\ Mode :let g:solarized_diffmode="normal" \| colorscheme solarized - amenu &Solarized.&Diff\ Mode.&High\ Diff\ Mode :let g:solarized_diffmode="high" \| colorscheme solarized - - if g:solarized_hitrail==0 | let l:hitrailswitch="On" | else | let l:hitrailswitch="Off" | endif - exe "amenu &Solarized.&Experimental.&Turn\\ Highlight\\ Trailing\\ Spaces\\ ".l:hitrailswitch." :let g:solarized_hitrail=(abs(g:solarized_hitrail-1)) \\| colorscheme solarized" - an &Solarized.&Experimental.-sep- - amenu &Solarized.&Experimental.&Help:\ HiTrail :help 'solarized_hitrail' - - an &Solarized.-sep1- - - amenu &Solarized.&Autogenerate\ options :SolarizedOptions - - an &Solarized.-sep2- - - amenu &Solarized.&Help.&Solarized\ Help :help solarized - amenu &Solarized.&Help.&Toggle\ Background\ Help :help togglebg - amenu &Solarized.&Help.&Removing\ This\ Menu :help solarized-menu - - an 9999.77 &Help.&Solarized\ Colorscheme :help solarized - an 9999.78 &Help.&Toggle\ Background :help togglebg - an 9999.79 &Help.-sep3- - - endif -endfunction - -autocmd ColorScheme * if g:colors_name != "solarized" | silent! aunmenu Solarized | else | call SolarizedMenu() | endif - -"}}} -" License "{{{ -" --------------------------------------------------------------------- -" -" Copyright (c) 2011 Ethan Schoonover -" -" 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. -" -" vim:foldmethod=marker:foldlevel=0 -"}}} diff --git a/vimrc b/vimrc index 9cebb5a..8dccfb5 100644 --- a/vimrc +++ b/vimrc @@ -11,7 +11,6 @@ Plugin 'ekalinin/Dockerfile.vim' Plugin 'markcornick/vim-terraform' Plugin 'bling/vim-airline' Plugin 'gnupg.vim' -"Plugin 'jinja.vim' call vundle#end() filetype plugin indent on @@ -49,4 +48,3 @@ autocmd FileType java setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd BufNewFile,BufRead *.json set shiftwidth=2 sts=2 expandtab smartindent ft=javascript autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent - From d0c926d30561f5e49c7906d230ee5e6ee2147455 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Mar 2015 15:37:16 +0200 Subject: [PATCH 016/230] silent fail when solarized does not exist --- vimrc | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/vimrc b/vimrc index 8dccfb5..94a3b0f 100644 --- a/vimrc +++ b/vimrc @@ -1,6 +1,8 @@ -" Vundle -set nocompatible +set nocompatible " Be iMproved filetype off + + +" Vundle set runtimepath+=~/.vim/bundle/Vundle.vim call vundle#begin() @@ -15,9 +17,13 @@ Plugin 'gnupg.vim' call vundle#end() filetype plugin indent on + +" Silent errors if colorscheme not exist +silent! colorscheme solarized + + " Global syntax on -colorscheme solarized set background=light set timeoutlen=1000 set ttimeoutlen=0 @@ -30,6 +36,7 @@ set modeline set modelines=5 set laststatus=2 + " Search set incsearch " show search matches as you type set showmatch @@ -39,8 +46,6 @@ set ignorecase set hlsearch nnoremap :let @/="" " cancel search hlight with space -" vim-go settings -let g:go_fmt_command = "goimports" autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent @@ -48,3 +53,7 @@ autocmd FileType java setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd BufNewFile,BufRead *.json set shiftwidth=2 sts=2 expandtab smartindent ft=javascript autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent + + +" vim-go settings +let g:go_fmt_command = "goimports" From 76973262b1dd95db2b88da39ab6aacea72afcc55 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 26 Mar 2015 23:05:29 +0200 Subject: [PATCH 017/230] Added undo settings for vim --- vimrc | 10 ++++++++++ zshrc | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/vimrc b/vimrc index 94a3b0f..2fdc560 100644 --- a/vimrc +++ b/vimrc @@ -37,6 +37,16 @@ set modelines=5 set laststatus=2 +" Undo and swap +set directory=/tmp/ +if exists("&undodir") + set undofile + let &undodir=&directory + set undolevels=500 + set undoreload=500 +endif + + " Search set incsearch " show search matches as you type set showmatch diff --git a/zshrc b/zshrc index d41678e..6dacb8b 100644 --- a/zshrc +++ b/zshrc @@ -32,7 +32,7 @@ source $ZSH/oh-my-zsh.sh # # GOPATH -export GOPATH="/Users/$USER/BTSync/Projects/go" +export GOPATH="/Users/$USER/Sync/Projects/go" # PATH export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:${GOPATH}/bin" From 8247e1855d2f514c76dc5e0f91de1be2550902b8 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 16 Apr 2015 13:35:46 +0300 Subject: [PATCH 018/230] Added tabs line for airline --- vimrc | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vimrc b/vimrc index 2fdc560..f5fb811 100644 --- a/vimrc +++ b/vimrc @@ -42,8 +42,8 @@ set directory=/tmp/ if exists("&undodir") set undofile let &undodir=&directory - set undolevels=500 - set undoreload=500 + set undolevels=200 + set undoreload=200 endif @@ -67,3 +67,6 @@ autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent " vim-go settings let g:go_fmt_command = "goimports" + +" airline +let g:airline#extensions#tabline#enabled = 1 From 1e3890c5b623c05daed800ecda5358d155a95bb8 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 3 May 2015 17:41:25 +0300 Subject: [PATCH 019/230] Changed to dark mode; created imap for http func --- vimrc | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vimrc b/vimrc index f5fb811..c364109 100644 --- a/vimrc +++ b/vimrc @@ -24,7 +24,7 @@ silent! colorscheme solarized " Global syntax on -set background=light +set background=dark set timeoutlen=1000 set ttimeoutlen=0 set encoding=utf-8 @@ -64,6 +64,8 @@ autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd BufNewFile,BufRead *.json set shiftwidth=2 sts=2 expandtab smartindent ft=javascript autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent +" Golang +imap ;http func Handler(w http.ResponseWrite, r *http.Request) {} " vim-go settings let g:go_fmt_command = "goimports" From 6b01dbf2af69d4051c3bfcead9e1406f9346c85d Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 4 May 2015 10:57:56 +0300 Subject: [PATCH 020/230] Remove knife block aliases --- zshrc | 4 ---- 1 file changed, 4 deletions(-) diff --git a/zshrc b/zshrc index 6dacb8b..cb3a7a3 100644 --- a/zshrc +++ b/zshrc @@ -16,11 +16,7 @@ alias git="/usr/local/bin/git" # Override tig options to show gpg signatures alias tig="tig --show-signature" -# Knife aliases -alias kbl="knife block list" -alias kbu="knife block use" -# # ZSH Plugins # plugins=(git ruby golang docker gem github vagrant knife brew jump tmuxinator) From 14a1e270d63c11fdd94bf735ca82f26710adbf94 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 4 May 2015 11:03:16 +0300 Subject: [PATCH 021/230] rust-lang syntax --- vimrc | 1 + 1 file changed, 1 insertion(+) diff --git a/vimrc b/vimrc index c364109..5f67d88 100644 --- a/vimrc +++ b/vimrc @@ -9,6 +9,7 @@ call vundle#begin() Plugin 'gmarik/Vundle.vim' Plugin 'altercation/vim-colors-solarized' Plugin 'fatih/vim-go' +Plugin 'rust-lang/rust.vim' Plugin 'ekalinin/Dockerfile.vim' Plugin 'markcornick/vim-terraform' Plugin 'bling/vim-airline' From 0341d1acd14dfde5318f762640bc9c995d48d43d Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 5 May 2015 21:29:58 +0300 Subject: [PATCH 022/230] Removed chef --- .gitignore | 1 - 1 file changed, 1 deletion(-) diff --git a/.gitignore b/.gitignore index 68e7c59..e69de29 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +0,0 @@ -zsh/chef.zsh From ebb682299ba726de063d669b0d5f26bbefdf7cca Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 6 May 2015 08:56:32 +0300 Subject: [PATCH 023/230] Changed to dark bg --- tmux.conf | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tmux.conf b/tmux.conf index d6316fa..d7e4997 100644 --- a/tmux.conf +++ b/tmux.conf @@ -26,8 +26,8 @@ set-option -g renumber-windows on # Set status bar set-window-option -g window-status-current-bg red - set -g status-bg white - set -g status-fg black + set -g status-bg black + set -g status-fg white set -g status-left '#[fg=green]#H' # set -g status-right '#[fg=blue]#(uptime | cut -d"," -f 2-)' set -g status-right-length 100 From 9ba9f127940f82ab92b509e692c1f344244e7e50 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 27 May 2015 10:12:40 +0300 Subject: [PATCH 024/230] Update zshrc --- zshrc | 2 -- 1 file changed, 2 deletions(-) diff --git a/zshrc b/zshrc index cb3a7a3..e9e56e2 100644 --- a/zshrc +++ b/zshrc @@ -10,8 +10,6 @@ zstyle ':completion:*' special-dirs true # # Aliases # -# Brew GIT Version -alias git="/usr/local/bin/git" # Override tig options to show gpg signatures alias tig="tig --show-signature" From bfcf2beacd9546e3fc97574c0864c5247ad8ca40 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 22 Jun 2015 13:19:04 +0300 Subject: [PATCH 025/230] google sdk and more --- README.md | 8 +++++++- install => install.sh | 30 +++++++++++++++--------------- vimrc | 2 ++ zsh/google.zsh | 6 ++++++ zshrc | 2 +- 5 files changed, 31 insertions(+), 17 deletions(-) rename install => install.sh (88%) create mode 100644 zsh/google.zsh diff --git a/README.md b/README.md index 1e52546..fbf730f 100644 --- a/README.md +++ b/README.md @@ -4,5 +4,11 @@ # To install the dotfiles git clone https://github.com/vic3lord/dotfiles ~/.dotfiles cd ~/.dotfiles -./install +./install.sh ``` + +## What's inside + +* oh-my-zsh +* Vundle +* config files for (tmux, zsh, vim) diff --git a/install b/install.sh similarity index 88% rename from install rename to install.sh index 2cf0b19..3a64b15 100755 --- a/install +++ b/install.sh @@ -1,19 +1,5 @@ SRC=$HOME/.dotfiles -dotfiles=(vimrc tmux.conf gitconfig zshrc zsh) - -# symlinks to dotfiles -for dotfile in ${dotfiles[@]} -do - if [ ! "$(readlink $HOME/.${dotfile})" == "$HOME/.dotfiles/${dotfile}" ] - then - if [ -f $HOME/.$dotfile ] - then - rm $HOME/.$dotfile - fi - echo "Creating a symlink for ${dotfile}..." - ln -s $SRC/$dotfile $HOME/.$dotfile - fi -done +DOTFILES="vimrc tmux.conf gitconfig zshrc zsh" # install oh-my-zsh if [ ! -d ~/.oh-my-zsh ] @@ -28,3 +14,17 @@ then git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim vim +PluginInstall +qall fi + +# symlinks to dotfiles +for dotfile in ${DOTFILES[@]} +do + if [ ! "$(readlink $HOME/.${dotfile})" == "$HOME/.dotfiles/${dotfile}" ] + then + if [ -f $HOME/.$dotfile ] + then + rm $HOME/.$dotfile + fi + echo "Creating a symlink for ${dotfile}..." + ln -s $SRC/$dotfile $HOME/.$dotfile + fi +done diff --git a/vimrc b/vimrc index 5f67d88..39a121e 100644 --- a/vimrc +++ b/vimrc @@ -14,6 +14,8 @@ Plugin 'ekalinin/Dockerfile.vim' Plugin 'markcornick/vim-terraform' Plugin 'bling/vim-airline' Plugin 'gnupg.vim' +Plugin 'vimclojure' +Plugin 'vim-coffee-script' call vundle#end() filetype plugin indent on diff --git a/zsh/google.zsh b/zsh/google.zsh new file mode 100644 index 0000000..5706f32 --- /dev/null +++ b/zsh/google.zsh @@ -0,0 +1,6 @@ + +# The next line updates PATH for the Google Cloud SDK. +source "$HOME/google-cloud-sdk/path.zsh.inc" + +# The next line enables bash completion for gcloud. +source "$HOME/google-cloud-sdk/completion.zsh.inc" diff --git a/zshrc b/zshrc index e9e56e2..7e0bf47 100644 --- a/zshrc +++ b/zshrc @@ -26,7 +26,7 @@ source $ZSH/oh-my-zsh.sh # # GOPATH -export GOPATH="/Users/$USER/Sync/Projects/go" +export GOPATH="/Users/$USER/go" # PATH export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:${GOPATH}/bin" From e7706b6e4d5e0654202bcecbb9dd3f7e74523533 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 19 Jul 2015 12:49:03 +0300 Subject: [PATCH 026/230] gssh command alias and relativenumber in vim --- vimrc | 5 +++-- zsh/google.zsh | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/vimrc b/vimrc index 39a121e..84e7d92 100644 --- a/vimrc +++ b/vimrc @@ -38,6 +38,7 @@ set numberwidth=1 set modeline set modelines=5 set laststatus=2 +set relativenumber " Undo and swap @@ -45,8 +46,8 @@ set directory=/tmp/ if exists("&undodir") set undofile let &undodir=&directory - set undolevels=200 - set undoreload=200 + set undolevels=100 + set undoreload=100 endif diff --git a/zsh/google.zsh b/zsh/google.zsh index 5706f32..2454e54 100644 --- a/zsh/google.zsh +++ b/zsh/google.zsh @@ -1,3 +1,4 @@ +alias gssh='gcloud compute ssh' # The next line updates PATH for the Google Cloud SDK. source "$HOME/google-cloud-sdk/path.zsh.inc" From 4ec77bdd897969683edc23f5d8c199386ea47b69 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 19 Jul 2015 21:26:02 +0300 Subject: [PATCH 027/230] Github URLs line numbers --- vimrc | 1 + 1 file changed, 1 insertion(+) diff --git a/vimrc b/vimrc index 84e7d92..ffed4b6 100644 --- a/vimrc +++ b/vimrc @@ -16,6 +16,7 @@ Plugin 'bling/vim-airline' Plugin 'gnupg.vim' Plugin 'vimclojure' Plugin 'vim-coffee-script' +Plugin 'vitapluvia/vim-gurl' call vundle#end() filetype plugin indent on From 4c19a9b7df11780a5f0e97334fcfcb7ee4c576fb Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 19 Jul 2015 21:37:44 +0300 Subject: [PATCH 028/230] Prettify --- vimrc | 25 ++++++++++++++++--------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/vimrc b/vimrc index ffed4b6..5bdbfa1 100644 --- a/vimrc +++ b/vimrc @@ -61,19 +61,26 @@ set ignorecase set hlsearch nnoremap :let @/="" " cancel search hlight with space +" vim-go settings +let g:go_fmt_command = "goimports" + +" airline +let g:airline#extensions#tabline#enabled = 1 +" Ruby autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent + +" YAML autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent -autocmd FileType java setlocal shiftwidth=4 sts=4 expandtab smartindent -autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent + +" JSON autocmd BufNewFile,BufRead *.json set shiftwidth=2 sts=2 expandtab smartindent ft=javascript -autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent -" Golang -imap ;http func Handler(w http.ResponseWrite, r *http.Request) {} +" Java +autocmd FileType java setlocal shiftwidth=4 sts=4 expandtab smartindent -" vim-go settings -let g:go_fmt_command = "goimports" +" Python +autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent -" airline -let g:airline#extensions#tabline#enabled = 1 +" HTML +autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent From bdbd92d2ad736de6171dd0d218ab7799130dc1cc Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 19 Jul 2015 21:45:50 +0300 Subject: [PATCH 029/230] exclude my MBA --- zsh/google.zsh | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/zsh/google.zsh b/zsh/google.zsh index 2454e54..49f98f7 100644 --- a/zsh/google.zsh +++ b/zsh/google.zsh @@ -1,7 +1,7 @@ alias gssh='gcloud compute ssh' -# The next line updates PATH for the Google Cloud SDK. -source "$HOME/google-cloud-sdk/path.zsh.inc" - -# The next line enables bash completion for gcloud. -source "$HOME/google-cloud-sdk/completion.zsh.inc" +if [ $(hostname) != "Ors-MacBook-Air.local" ] +then + source "$HOME/google-cloud-sdk/path.zsh.inc" + source "$HOME/google-cloud-sdk/completion.zsh.inc" +fi From 5734080659fbd8f758560ca13b322055c77ac3e2 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 3 Aug 2015 23:32:51 +0300 Subject: [PATCH 030/230] vimrc improvments --- gitconfig | 1 + vimrc | 24 +++++++++++++++++------- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/gitconfig b/gitconfig index 6b07dca..9dcc831 100644 --- a/gitconfig +++ b/gitconfig @@ -7,6 +7,7 @@ co = checkout br = branch st = status -s + edit = "!vim `git ls-files -m` -p" [push] default = simple [color] diff --git a/vimrc b/vimrc index 5bdbfa1..ab7ea03 100644 --- a/vimrc +++ b/vimrc @@ -1,8 +1,7 @@ set nocompatible " Be iMproved filetype off - -" Vundle +" Manage Vundle and its plugins set runtimepath+=~/.vim/bundle/Vundle.vim call vundle#begin() @@ -21,11 +20,9 @@ Plugin 'vitapluvia/vim-gurl' call vundle#end() filetype plugin indent on - " Silent errors if colorscheme not exist silent! colorscheme solarized - " Global syntax on set background=dark @@ -41,7 +38,6 @@ set modelines=5 set laststatus=2 set relativenumber - " Undo and swap set directory=/tmp/ if exists("&undodir") @@ -51,7 +47,6 @@ if exists("&undodir") set undoreload=100 endif - " Search set incsearch " show search matches as you type set showmatch @@ -59,7 +54,22 @@ set hlsearch set smartcase " ignore case if search pattern is all lowercase, case-sensitive otherwise set ignorecase set hlsearch -nnoremap :let @/="" " cancel search hlight with space + +" cancel search highlight with space +nnoremap :let @/="" + +" Find tasks and todos in files +command Todo noautocmd vimgrep /TODO\|FIXME/j ** | cw + +" Keybinding to remind me that I suck at VIM +map :startinsertI suck at Vim. +map :startinsertI suck at Vim. +map :startinsertI suck at Vim. +map :startinsertI suck at Vim. +imap I suck at Vim. +imap I suck at Vim. +imap I suck at Vim. +imap I suck at Vim. " vim-go settings let g:go_fmt_command = "goimports" From 51d4e043d414d5e3399338f5e453adc1c84561a1 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 4 Aug 2015 22:38:50 +0300 Subject: [PATCH 031/230] Removed signing key --- gitconfig | 1 - 1 file changed, 1 deletion(-) diff --git a/gitconfig b/gitconfig index 9dcc831..64dfb14 100644 --- a/gitconfig +++ b/gitconfig @@ -1,7 +1,6 @@ [user] name = Or Elimelech email = 0r3limelech@gmail.com - signingkey = 6166633F [alias] ci = commit co = checkout From b4349b9dcab10e345607466a12cf6d618f659947 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 11 Aug 2015 11:44:02 +0300 Subject: [PATCH 032/230] vim quick-scope --- vimrc | 1 + 1 file changed, 1 insertion(+) diff --git a/vimrc b/vimrc index ab7ea03..59f94b8 100644 --- a/vimrc +++ b/vimrc @@ -16,6 +16,7 @@ Plugin 'gnupg.vim' Plugin 'vimclojure' Plugin 'vim-coffee-script' Plugin 'vitapluvia/vim-gurl' +Plugin 'unblevable/quick-scope' call vundle#end() filetype plugin indent on From c2881e556883538f3ad2b6f62c121b2bb4f0eac8 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 17 Aug 2015 11:28:48 +0300 Subject: [PATCH 033/230] Migrated to docker-machine --- zsh/docker.zsh | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/zsh/docker.zsh b/zsh/docker.zsh index d60f5b1..9337be6 100644 --- a/zsh/docker.zsh +++ b/zsh/docker.zsh @@ -1,3 +1 @@ -export DOCKER_HOST=tcp://192.168.59.103:2376 -export DOCKER_CERT_PATH=/Users/$USER/.boot2docker/certs/boot2docker-vm -export DOCKER_TLS_VERIFY=1 +eval "$(docker-machine env dev)" From 45744dba8b68efbcab7cdfd1e7ae7ca6e4b830df Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 25 Aug 2015 15:50:20 +0300 Subject: [PATCH 034/230] removed unused plugins --- zshrc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zshrc b/zshrc index 7e0bf47..cfd384e 100644 --- a/zshrc +++ b/zshrc @@ -17,7 +17,7 @@ alias tig="tig --show-signature" # ZSH Plugins # -plugins=(git ruby golang docker gem github vagrant knife brew jump tmuxinator) +plugins=(git ruby golang docker gem vagrant brew jump) source $ZSH/oh-my-zsh.sh From dc3fa5629ca04b31f6a0013f5940920be158b4a3 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 27 Aug 2015 16:22:01 +0300 Subject: [PATCH 035/230] Changed Vundle address --- install.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 3a64b15..4ef195f 100755 --- a/install.sh +++ b/install.sh @@ -11,7 +11,7 @@ fi # install Vundle if [ ! -d ~/.vim/bundle/Vundle.vim ] then - git clone https://github.com/gmarik/Vundle.vim.git ~/.vim/bundle/Vundle.vim + git clone https://github.com/VundleVim/Vundle.vim ~/.vim/bundle/Vundle.vim vim +PluginInstall +qall fi From 30cb220524e59defb61fe7721a80d02d1fc23100 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 24 Sep 2015 18:00:52 +0300 Subject: [PATCH 036/230] Added gitignore.io zsh function --- zsh/gitignore.zsh | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 zsh/gitignore.zsh diff --git a/zsh/gitignore.zsh b/zsh/gitignore.zsh new file mode 100644 index 0000000..a31188c --- /dev/null +++ b/zsh/gitignore.zsh @@ -0,0 +1,5 @@ +# gitignore.io +# gi list to get all supported types +function gi() { + curl -L -s https://www.gitignore.io/api/$@ +} From e6c888065e554d0c75831c60c35f10e174ac864b Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Nov 2015 23:46:45 +0200 Subject: [PATCH 037/230] Added support for NeoVIM (me like good stuff). --- install.sh | 3 +++ vimrc | 25 +++---------------------- 2 files changed, 6 insertions(+), 22 deletions(-) diff --git a/install.sh b/install.sh index 4ef195f..a41873e 100755 --- a/install.sh +++ b/install.sh @@ -13,6 +13,9 @@ if [ ! -d ~/.vim/bundle/Vundle.vim ] then git clone https://github.com/VundleVim/Vundle.vim ~/.vim/bundle/Vundle.vim vim +PluginInstall +qall + mkdir $HOME/.config + ln -s $HOME/.vim $HOME/.config/nvim + ln -s $HOME/.vimrc $HOME/.config/nvim/init.vim fi # symlinks to dotfiles diff --git a/vimrc b/vimrc index 59f94b8..da8ad22 100644 --- a/vimrc +++ b/vimrc @@ -13,7 +13,6 @@ Plugin 'ekalinin/Dockerfile.vim' Plugin 'markcornick/vim-terraform' Plugin 'bling/vim-airline' Plugin 'gnupg.vim' -Plugin 'vimclojure' Plugin 'vim-coffee-script' Plugin 'vitapluvia/vim-gurl' Plugin 'unblevable/quick-scope' @@ -33,20 +32,12 @@ set encoding=utf-8 set fileencoding=utf-8 set showmatch set number +set relativenumber set numberwidth=1 set modeline set modelines=5 set laststatus=2 -set relativenumber - -" Undo and swap -set directory=/tmp/ -if exists("&undodir") - set undofile - let &undodir=&directory - set undolevels=100 - set undoreload=100 -endif +set undofile " Search set incsearch " show search matches as you type @@ -78,20 +69,10 @@ let g:go_fmt_command = "goimports" " airline let g:airline#extensions#tabline#enabled = 1 -" Ruby +" Language specifics autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent - -" YAML autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent - -" JSON autocmd BufNewFile,BufRead *.json set shiftwidth=2 sts=2 expandtab smartindent ft=javascript - -" Java autocmd FileType java setlocal shiftwidth=4 sts=4 expandtab smartindent - -" Python autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent - -" HTML autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent From 1006fc947490a7e287a394d91ad2b03181b992ce Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Nov 2015 23:47:27 +0200 Subject: [PATCH 038/230] openssl print certificate details --- zsh/openssl.zsh | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 zsh/openssl.zsh diff --git a/zsh/openssl.zsh b/zsh/openssl.zsh new file mode 100644 index 0000000..8412531 --- /dev/null +++ b/zsh/openssl.zsh @@ -0,0 +1,3 @@ +function print_ssl() { + openssl x509 -in $1 -inform PEM -text +} From 4953c8e06e2647d93f44b757b7744c3e71eb3cac Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Nov 2015 23:50:02 +0200 Subject: [PATCH 039/230] more neovim support --- zshrc | 3 +++ 1 file changed, 3 insertions(+) diff --git a/zshrc b/zshrc index cfd384e..c0223e4 100644 --- a/zshrc +++ b/zshrc @@ -14,6 +14,9 @@ zstyle ':completion:*' special-dirs true # Override tig options to show gpg signatures alias tig="tig --show-signature" +# vi alias to neovim +alias vi="nvim" + # ZSH Plugins # From 91a6a72c60529dcde89a7a317ae13d901ab59394 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 2 Nov 2015 23:53:42 +0200 Subject: [PATCH 040/230] readme.md cleanup --- README.md | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index fbf730f..9c89954 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,11 @@ -# dotfiles +# Dotfiles + +My private dotfiles collection, used as a reference for me and others. +Helps me automate my environment on new systems. + +**To install the dotfiles** ``` -# To install the dotfiles git clone https://github.com/vic3lord/dotfiles ~/.dotfiles -cd ~/.dotfiles -./install.sh +~/.dotfiles/install.sh ``` - -## What's inside - -* oh-my-zsh -* Vundle -* config files for (tmux, zsh, vim) From e654de6f8a8ef8196fe815ea15cd26f08d980d03 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Nov 2015 00:06:27 +0200 Subject: [PATCH 041/230] mouse working in normal and visual mode only --- vimrc | 1 + 1 file changed, 1 insertion(+) diff --git a/vimrc b/vimrc index da8ad22..5a14ed4 100644 --- a/vimrc +++ b/vimrc @@ -38,6 +38,7 @@ set modeline set modelines=5 set laststatus=2 set undofile +set mouse=nv " Search set incsearch " show search matches as you type From f2db9049cdea9c23b88a1feeb23d989705dd4bd2 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Nov 2015 01:23:59 +0200 Subject: [PATCH 042/230] Moved away from Vundle to vim-plug --- install.sh | 8 ++++---- vimrc | 29 +++++++++++++---------------- zshrc | 1 + 3 files changed, 18 insertions(+), 20 deletions(-) diff --git a/install.sh b/install.sh index a41873e..b20de97 100755 --- a/install.sh +++ b/install.sh @@ -8,11 +8,11 @@ then curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh fi -# install Vundle -if [ ! -d ~/.vim/bundle/Vundle.vim ] +# install vim-plug +if [ ! -f ~/.vim/autoload/plug.vim ] then - git clone https://github.com/VundleVim/Vundle.vim ~/.vim/bundle/Vundle.vim - vim +PluginInstall +qall + curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + vim +PlugInstall +qall mkdir $HOME/.config ln -s $HOME/.vim $HOME/.config/nvim ln -s $HOME/.vimrc $HOME/.config/nvim/init.vim diff --git a/vimrc b/vimrc index 5a14ed4..97421fb 100644 --- a/vimrc +++ b/vimrc @@ -1,23 +1,20 @@ set nocompatible " Be iMproved filetype off -" Manage Vundle and its plugins -set runtimepath+=~/.vim/bundle/Vundle.vim -call vundle#begin() +" vim-plug +call plug#begin('~/.vim/plugged') +Plug 'altercation/vim-colors-solarized' +Plug 'fatih/vim-go' +Plug 'rust-lang/rust.vim' +Plug 'ekalinin/Dockerfile.vim' +Plug 'markcornick/vim-terraform' +Plug 'bling/vim-airline' +Plug 'gnupg.vim' +Plug 'vim-coffee-script' +Plug 'vitapluvia/vim-gurl' +Plug 'unblevable/quick-scope' +call plug#end() -Plugin 'gmarik/Vundle.vim' -Plugin 'altercation/vim-colors-solarized' -Plugin 'fatih/vim-go' -Plugin 'rust-lang/rust.vim' -Plugin 'ekalinin/Dockerfile.vim' -Plugin 'markcornick/vim-terraform' -Plugin 'bling/vim-airline' -Plugin 'gnupg.vim' -Plugin 'vim-coffee-script' -Plugin 'vitapluvia/vim-gurl' -Plugin 'unblevable/quick-scope' - -call vundle#end() filetype plugin indent on " Silent errors if colorscheme not exist diff --git a/zshrc b/zshrc index c0223e4..b2d97aa 100644 --- a/zshrc +++ b/zshrc @@ -16,6 +16,7 @@ alias tig="tig --show-signature" # vi alias to neovim alias vi="nvim" +alias vimdiff="nvim -d" # ZSH Plugins From 118761d04e9aee987a996290e631bd32168bd8aa Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Nov 2015 09:04:19 +0200 Subject: [PATCH 043/230] Cleanup some old training stuff --- vimrc | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/vimrc b/vimrc index 97421fb..dc4fa6b 100644 --- a/vimrc +++ b/vimrc @@ -13,6 +13,7 @@ Plug 'gnupg.vim' Plug 'vim-coffee-script' Plug 'vitapluvia/vim-gurl' Plug 'unblevable/quick-scope' +Plug 'tpope/vim-surround' call plug#end() filetype plugin indent on @@ -36,8 +37,6 @@ set modelines=5 set laststatus=2 set undofile set mouse=nv - -" Search set incsearch " show search matches as you type set showmatch set hlsearch @@ -48,19 +47,6 @@ set hlsearch " cancel search highlight with space nnoremap :let @/="" -" Find tasks and todos in files -command Todo noautocmd vimgrep /TODO\|FIXME/j ** | cw - -" Keybinding to remind me that I suck at VIM -map :startinsertI suck at Vim. -map :startinsertI suck at Vim. -map :startinsertI suck at Vim. -map :startinsertI suck at Vim. -imap I suck at Vim. -imap I suck at Vim. -imap I suck at Vim. -imap I suck at Vim. - " vim-go settings let g:go_fmt_command = "goimports" From b81770226f93ff6b90b610d21d2636f4a4db52b3 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Nov 2015 09:05:34 +0200 Subject: [PATCH 044/230] Update vimrc --- vimrc | 1 - 1 file changed, 1 deletion(-) diff --git a/vimrc b/vimrc index dc4fa6b..08c2320 100644 --- a/vimrc +++ b/vimrc @@ -42,7 +42,6 @@ set showmatch set hlsearch set smartcase " ignore case if search pattern is all lowercase, case-sensitive otherwise set ignorecase -set hlsearch " cancel search highlight with space nnoremap :let @/="" From a2d7217085ed7c5cfaeec1e2251b3dd18515ae35 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Nov 2015 12:22:53 +0200 Subject: [PATCH 045/230] Added packages to dotfiles for bootstrapping new systems --- install.sh | 14 ++++++++++++++ packages/osx | 29 +++++++++++++++++++++++++++++ 2 files changed, 43 insertions(+) create mode 100755 packages/osx diff --git a/install.sh b/install.sh index b20de97..9e30fa6 100755 --- a/install.sh +++ b/install.sh @@ -1,5 +1,19 @@ SRC=$HOME/.dotfiles DOTFILES="vimrc tmux.conf gitconfig zshrc zsh" +PACKAGES=$1 +OS=`uname` + +if [ "$PACKAGES" == "packages" ] +then + case $OS in + Darwin) + $SRC/packages/osx + ;; + *) + echo "Unsupported OS: ${OS}" + exit 0 + esac +fi # install oh-my-zsh if [ ! -d ~/.oh-my-zsh ] diff --git a/packages/osx b/packages/osx new file mode 100755 index 0000000..ef9b295 --- /dev/null +++ b/packages/osx @@ -0,0 +1,29 @@ +# Updating cache +brew update + +# Installing packages +brew install \ + ansible \ + autojump \ + caskroom/cask/brew-cask \ + gnupg2 \ + reop \ + go \ + hugo \ + iperf \ + jq \ + keybase \ + mercurial \ + neovim \ + nmap \ + node \ + packer \ + terraform \ + tig \ + tmux \ + tree \ + weechat \ + wget \ + docker \ + docker-compose \ + docker-machine From 71d044054bcc776d28089b869c64b4e660b0d4ee Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Nov 2015 12:32:59 +0200 Subject: [PATCH 046/230] Added ask packages and neovim tap --- packages/osx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/packages/osx b/packages/osx index ef9b295..42636df 100755 --- a/packages/osx +++ b/packages/osx @@ -1,6 +1,9 @@ # Updating cache brew update +# Adding custom taps +brew tap neovim/neovim + # Installing packages brew install \ ansible \ @@ -27,3 +30,15 @@ brew install \ docker \ docker-compose \ docker-machine + +# Installing cask packages +brew cask install \ + flux \ + transmission \ + vlc \ + steam \ + virtualbox \ + netspot \ + google-chrome \ + google-drive \ + google-cloud-sdk From c3f2dab43739b93f168223e0396274963982d031 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Nov 2015 12:38:38 +0200 Subject: [PATCH 047/230] Changed packages install logic --- install.sh | 12 +++++------- packages/{osx => Darwin} | 0 2 files changed, 5 insertions(+), 7 deletions(-) rename packages/{osx => Darwin} (100%) diff --git a/install.sh b/install.sh index 9e30fa6..a05e7ae 100755 --- a/install.sh +++ b/install.sh @@ -5,14 +5,12 @@ OS=`uname` if [ "$PACKAGES" == "packages" ] then - case $OS in - Darwin) - $SRC/packages/osx - ;; - *) + if [ -f $SRC/packages/$OS ] + then + $SRC/packages/$OS + else echo "Unsupported OS: ${OS}" - exit 0 - esac + fi fi # install oh-my-zsh diff --git a/packages/osx b/packages/Darwin similarity index 100% rename from packages/osx rename to packages/Darwin From 83388a486ba2d07d8d5f548c2e039116118610c1 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 3 Nov 2015 12:44:00 +0200 Subject: [PATCH 048/230] Added OpenBSD support --- packages/OpenBSD | 5 +++++ 1 file changed, 5 insertions(+) create mode 100755 packages/OpenBSD diff --git a/packages/OpenBSD b/packages/OpenBSD new file mode 100755 index 0000000..8a30dc3 --- /dev/null +++ b/packages/OpenBSD @@ -0,0 +1,5 @@ +# Install packages +pkg_add -v \ + vim \ + go \ + zsh From d83117248c78202304018fcff23834ad37b85006 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 4 Nov 2015 17:34:48 +0200 Subject: [PATCH 049/230] Added otto --- packages/Darwin | 2 ++ vimrc | 1 + 2 files changed, 3 insertions(+) diff --git a/packages/Darwin b/packages/Darwin index 42636df..c9c4c5b 100755 --- a/packages/Darwin +++ b/packages/Darwin @@ -37,7 +37,9 @@ brew cask install \ transmission \ vlc \ steam \ + boxer \ virtualbox \ + otto \ netspot \ google-chrome \ google-drive \ diff --git a/vimrc b/vimrc index 08c2320..39e794f 100644 --- a/vimrc +++ b/vimrc @@ -14,6 +14,7 @@ Plug 'vim-coffee-script' Plug 'vitapluvia/vim-gurl' Plug 'unblevable/quick-scope' Plug 'tpope/vim-surround' +Plug 'commentary.vim' call plug#end() filetype plugin indent on From 463e57dc191e8ab143006fd203417b8df62b486d Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 8 Nov 2015 21:06:40 +0200 Subject: [PATCH 050/230] Darwin location of gcloud --- zsh/google.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zsh/google.zsh b/zsh/google.zsh index 49f98f7..ebbfaaf 100644 --- a/zsh/google.zsh +++ b/zsh/google.zsh @@ -1,7 +1,7 @@ alias gssh='gcloud compute ssh' -if [ $(hostname) != "Ors-MacBook-Air.local" ] +if [ $(uname) == "Darwin" ] then - source "$HOME/google-cloud-sdk/path.zsh.inc" - source "$HOME/google-cloud-sdk/completion.zsh.inc" + source "/opt/homebrew-cask/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc" + source "/opt/homebrew-cask/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc" fi From d2301855f2285966b42e78ef852539442ade6bc0 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 8 Nov 2015 21:08:03 +0200 Subject: [PATCH 051/230] Gcloud --- zsh/google.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zsh/google.zsh b/zsh/google.zsh index ebbfaaf..534bb8e 100644 --- a/zsh/google.zsh +++ b/zsh/google.zsh @@ -1,6 +1,6 @@ alias gssh='gcloud compute ssh' -if [ $(uname) == "Darwin" ] +if [[ $(uname) == "Darwin" ]] then source "/opt/homebrew-cask/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc" source "/opt/homebrew-cask/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc" From 73a0eae33be727bcbdbe681fd5635e457fca4230 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 11 Nov 2015 21:34:06 +0200 Subject: [PATCH 052/230] Go packages; fzf support for vim and zsh --- install.sh | 2 ++ packages/Darwin | 1 + packages/GoPackages | 2 ++ vimrc | 25 +++++++++++++------------ zsh/fzf.zsh | 20 ++++++++++++++++++++ 5 files changed, 38 insertions(+), 12 deletions(-) create mode 100755 packages/GoPackages create mode 100644 zsh/fzf.zsh diff --git a/install.sh b/install.sh index a05e7ae..05b6818 100755 --- a/install.sh +++ b/install.sh @@ -11,6 +11,8 @@ then else echo "Unsupported OS: ${OS}" fi + echo "Install Go packages" + $SRC/packages/GoPackages fi # install oh-my-zsh diff --git a/packages/Darwin b/packages/Darwin index c9c4c5b..4552f94 100755 --- a/packages/Darwin +++ b/packages/Darwin @@ -41,6 +41,7 @@ brew cask install \ virtualbox \ otto \ netspot \ + torbrowser \ google-chrome \ google-drive \ google-cloud-sdk diff --git a/packages/GoPackages b/packages/GoPackages new file mode 100755 index 0000000..5b8b7c5 --- /dev/null +++ b/packages/GoPackages @@ -0,0 +1,2 @@ +github.com/rakyll/boom +github.com/jfrazelle/weather diff --git a/vimrc b/vimrc index 39e794f..44dc07f 100644 --- a/vimrc +++ b/vimrc @@ -3,18 +3,19 @@ filetype off " vim-plug call plug#begin('~/.vim/plugged') -Plug 'altercation/vim-colors-solarized' -Plug 'fatih/vim-go' -Plug 'rust-lang/rust.vim' -Plug 'ekalinin/Dockerfile.vim' -Plug 'markcornick/vim-terraform' -Plug 'bling/vim-airline' -Plug 'gnupg.vim' -Plug 'vim-coffee-script' -Plug 'vitapluvia/vim-gurl' -Plug 'unblevable/quick-scope' -Plug 'tpope/vim-surround' -Plug 'commentary.vim' + Plug 'altercation/vim-colors-solarized' + Plug 'fatih/vim-go' + Plug 'rust-lang/rust.vim' + Plug 'ekalinin/Dockerfile.vim' + Plug 'markcornick/vim-terraform' + Plug 'bling/vim-airline' + Plug 'gnupg.vim' + Plug 'vim-coffee-script' + Plug 'vitapluvia/vim-gurl' + Plug 'unblevable/quick-scope' + Plug 'tpope/vim-surround' + Plug 'commentary.vim' + Plug 'junegunn/fzf' call plug#end() filetype plugin indent on diff --git a/zsh/fzf.zsh b/zsh/fzf.zsh new file mode 100644 index 0000000..441dd5e --- /dev/null +++ b/zsh/fzf.zsh @@ -0,0 +1,20 @@ +# Setup fzf +# --------- +if [[ ! "$PATH" == */usr/local/opt/fzf/bin* ]]; then + export PATH="$PATH:/usr/local/opt/fzf/bin" +fi + +# Man path +# -------- +if [[ ! "$MANPATH" == */usr/local/opt/fzf/man* && -d "/usr/local/opt/fzf/man" ]]; then + export MANPATH="$MANPATH:/usr/local/opt/fzf/man" +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" + From d77a46feb128ae91aee77fc0593d22908d0616c1 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 11 Nov 2015 21:34:45 +0200 Subject: [PATCH 053/230] fzf package --- packages/Darwin | 1 + 1 file changed, 1 insertion(+) diff --git a/packages/Darwin b/packages/Darwin index 4552f94..327afc6 100755 --- a/packages/Darwin +++ b/packages/Darwin @@ -14,6 +14,7 @@ brew install \ go \ hugo \ iperf \ + fzf \ jq \ keybase \ mercurial \ From a125e3ad08396cbffc65c8753a73e4992a91988f Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Fri, 13 Nov 2015 16:54:36 +0200 Subject: [PATCH 054/230] Golang support packages --- install.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/install.sh b/install.sh index 05b6818..6d74749 100755 --- a/install.sh +++ b/install.sh @@ -12,7 +12,10 @@ then echo "Unsupported OS: ${OS}" fi echo "Install Go packages" - $SRC/packages/GoPackages + for pkg in $(cat $SRC/packages/GoPackages) + do + go get -u $pkg + done fi # install oh-my-zsh From 4fa023921fd69f6e1735bca50609b880d0d19688 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 18 Nov 2015 12:17:21 +0200 Subject: [PATCH 055/230] Refactored installation method etc. --- LICENSE | 13 +++ README.md | 6 +- bootstrap | 150 ++++++++++++++++++++++++++++ gitconfig => git/gitconfig.symlink | 0 install.sh | 50 ---------- tmux.conf => tmux/tmux.conf.symlink | 0 vimrc => vim/vimrc.symlink | 0 zsh/keys.zsh | 2 + zshrc => zsh/zshrc.symlink | 7 +- 9 files changed, 174 insertions(+), 54 deletions(-) create mode 100644 LICENSE create mode 100755 bootstrap rename gitconfig => git/gitconfig.symlink (100%) delete mode 100755 install.sh rename tmux.conf => tmux/tmux.conf.symlink (100%) rename vimrc => vim/vimrc.symlink (100%) create mode 100644 zsh/keys.zsh rename zshrc => zsh/zshrc.symlink (92%) diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..339f438 --- /dev/null +++ b/LICENSE @@ -0,0 +1,13 @@ +Copyright (c) 2015, Or Elimelech <0r3limelech@gmail.com> + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted, provided that the above +copyright notice and this permission notice appear in all copies. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. diff --git a/README.md b/README.md index 9c89954..47c80a4 100644 --- a/README.md +++ b/README.md @@ -7,5 +7,9 @@ Helps me automate my environment on new systems. ``` git clone https://github.com/vic3lord/dotfiles ~/.dotfiles -~/.dotfiles/install.sh +~/.dotfiles/bootstrap ``` + +## Credits + +Borrowed some stuff from [holman/dotfiles](https://github.com/holman/dotfiles) diff --git a/bootstrap b/bootstrap new file mode 100755 index 0000000..2119944 --- /dev/null +++ b/bootstrap @@ -0,0 +1,150 @@ +#!/usr/bin/env bash +DOTFILES=$HOME/git/dotfiles +OS=$(uname) + +Info () { + printf "\r [ \033[00;34m..\033[0m ] $1\n" +} + +User () { + printf "\r [ \033[0;33m??\033[0m ] $1\n" +} + +Success () { + printf "\r\033[2K [ \033[00;32mOK\033[0m ] $1\n" +} + +Fail () { + printf "\r\033[2K [\033[0;31mFAIL\033[0m] $1\n" + echo '' + exit +} + +Usage() { + Info "Usage: $0 [packages] - use packages to install OS specific packages" + exit 0 +} + +link_file() { + local src=$1 dst=$2 + + local overwrite= backup= skip= + local action= + + if [ -f "$dst" -o -d "$dst" -o -L "$dst" ] + then + + if [ "$overwrite_all" == "false" ] && [ "$backup_all" == "false" ] && [ "$skip_all" == "false" ] + then + + local currentSrc="$(readlink $dst)" + + if [ "$currentSrc" == "$src" ] + then + + skip=true; + + else + + User "File already exists: $dst ($(basename "$src")), what do you want to do?\n\ + [s]kip, [S]kip all, [o]verwrite, [O]verwrite all, [b]ackup, [B]ackup all?" + read -n 1 action + + case "$action" in + o ) + overwrite=true;; + O ) + overwrite_all=true;; + b ) + backup=true;; + B ) + backup_all=true;; + s ) + skip=true;; + S ) + skip_all=true;; + * ) + ;; + esac + + fi + + fi + + overwrite=${overwrite:-$overwrite_all} + backup=${backup:-$backup_all} + skip=${skip:-$skip_all} + + if [ "$overwrite" == "true" ] + then + rm -rf "$dst" + Success "removed $dst" + fi + + if [ "$backup" == "true" ] + then + mv "$dst" "${dst}.backup" + Success "moved $dst to ${dst}.backup" + fi + + if [ "$skip" == "true" ] + then + Success "skipped $src" + fi + fi + + if [ "$skip" != "true" ] # "false" or empty + then + ln -s "$1" "$2" + Success "linked $1 to $2" + fi +} + +case $1 in + packages) + if [ -f $DOTFILES/packages/$OS ] + then + $DOTFILES/packages/$OS + else + Fail "Unsupported OS: ${OS}" + fi + echo "Install Go packages" + for pkg in $(cat $DOTFILES/packages/GoPackages) + do + go get -u $pkg + done + ;; + usage|help) + Usage +esac + +if [ ! -d ~/.oh-my-zsh ] +then + Info "Installing oh-my-zsh" + curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh + Success "oh-my-zsh installed" +fi + +# install vim-plug +if [ ! -f ~/.vim/autoload/plug.vim ] +then + curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + vim +PlugInstall +qall + mkdir $HOME/.config + ln -s $HOME/.vim $HOME/.config/nvim + ln -s $HOME/.vimrc $HOME/.config/nvim/init.vim +fi + +# symlinks to dotfiles +Dotfiles_install() { + Info 'installing dotfiles' + local overwrite_all=false backup_all=false skip_all=false + + for src in $(find -H "$DOTFILES" -maxdepth 2 -name '*.symlink') + do + dst="$HOME/.$(basename "${src%.*}")" + link_file "$src" "$dst" + done +} + +Dotfiles_install diff --git a/gitconfig b/git/gitconfig.symlink similarity index 100% rename from gitconfig rename to git/gitconfig.symlink diff --git a/install.sh b/install.sh deleted file mode 100755 index 6d74749..0000000 --- a/install.sh +++ /dev/null @@ -1,50 +0,0 @@ -SRC=$HOME/.dotfiles -DOTFILES="vimrc tmux.conf gitconfig zshrc zsh" -PACKAGES=$1 -OS=`uname` - -if [ "$PACKAGES" == "packages" ] -then - if [ -f $SRC/packages/$OS ] - then - $SRC/packages/$OS - else - echo "Unsupported OS: ${OS}" - fi - echo "Install Go packages" - for pkg in $(cat $SRC/packages/GoPackages) - do - go get -u $pkg - done -fi - -# install oh-my-zsh -if [ ! -d ~/.oh-my-zsh ] -then - echo "Installing oh-my-zsh..." - curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh -fi - -# install vim-plug -if [ ! -f ~/.vim/autoload/plug.vim ] -then - curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim - vim +PlugInstall +qall - mkdir $HOME/.config - ln -s $HOME/.vim $HOME/.config/nvim - ln -s $HOME/.vimrc $HOME/.config/nvim/init.vim -fi - -# symlinks to dotfiles -for dotfile in ${DOTFILES[@]} -do - if [ ! "$(readlink $HOME/.${dotfile})" == "$HOME/.dotfiles/${dotfile}" ] - then - if [ -f $HOME/.$dotfile ] - then - rm $HOME/.$dotfile - fi - echo "Creating a symlink for ${dotfile}..." - ln -s $SRC/$dotfile $HOME/.$dotfile - fi -done diff --git a/tmux.conf b/tmux/tmux.conf.symlink similarity index 100% rename from tmux.conf rename to tmux/tmux.conf.symlink diff --git a/vimrc b/vim/vimrc.symlink similarity index 100% rename from vimrc rename to vim/vimrc.symlink diff --git a/zsh/keys.zsh b/zsh/keys.zsh new file mode 100644 index 0000000..5fbb0a5 --- /dev/null +++ b/zsh/keys.zsh @@ -0,0 +1,2 @@ +# Copy ssh public key to clipboard +alias pubkey="cat ~/.ssh/id_id_ed25519.pub | pbcopy | echo '=> Public key copied to pasteboard.'" diff --git a/zshrc b/zsh/zshrc.symlink similarity index 92% rename from zshrc rename to zsh/zshrc.symlink index b2d97aa..9ee59ae 100644 --- a/zshrc +++ b/zsh/zshrc.symlink @@ -61,8 +61,9 @@ autoload -U edit-command-line zle -N edit-command-line bindkey -M vicmd v edit-command-line -# Load ~/.zsh directory -for zsh_file in $(ls ~/.zsh/*.zsh) +# Load *.zsh files +DOTFILES=$HOME/.dotfiles +for file in $(ls $DOTFILES/**/*.zsh) do - source $zsh_file + source $file done From 95b03ca12a8cbfd128dfe69af6bc2ff74303eebb Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 18 Nov 2015 12:18:32 +0200 Subject: [PATCH 056/230] vim alias --- zsh/zshrc.symlink | 1 + 1 file changed, 1 insertion(+) diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index 9ee59ae..ad5f88a 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -16,6 +16,7 @@ alias tig="tig --show-signature" # vi alias to neovim alias vi="nvim" +alias vim="nvim" alias vimdiff="nvim -d" From 2a6d04442f5b3104df0e5c37650fd180ceb79c85 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 18 Nov 2015 12:19:53 +0200 Subject: [PATCH 057/230] Changed path --- bootstrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap b/bootstrap index 2119944..d8aedd4 100755 --- a/bootstrap +++ b/bootstrap @@ -1,5 +1,5 @@ #!/usr/bin/env bash -DOTFILES=$HOME/git/dotfiles +DOTFILES=$HOME/.dotfiles OS=$(uname) Info () { From a5592e03ff14fdec3ce89446f511fcc8fe15beeb Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 18 Nov 2015 12:29:29 +0200 Subject: [PATCH 058/230] Usage changed to use echo instead of Info --- bootstrap | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bootstrap b/bootstrap index d8aedd4..fe4ca83 100755 --- a/bootstrap +++ b/bootstrap @@ -21,7 +21,7 @@ Fail () { } Usage() { - Info "Usage: $0 [packages] - use packages to install OS specific packages" + echo "Usage: $0 [packages] - use packages to install OS specific packages" exit 0 } From 8df9e9ff941f42f246a7ecc171dcb7e6f19dfa18 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 18 Nov 2015 12:49:29 +0200 Subject: [PATCH 059/230] Seperate install.sh files from main bootstrap script --- bootstrap | 21 +++------------------ vim/install.sh | 15 +++++++++++++++ zsh/install.sh | 9 +++++++++ 3 files changed, 27 insertions(+), 18 deletions(-) create mode 100755 vim/install.sh create mode 100755 zsh/install.sh diff --git a/bootstrap b/bootstrap index fe4ca83..f6ea5b4 100755 --- a/bootstrap +++ b/bootstrap @@ -118,24 +118,6 @@ case $1 in Usage esac -if [ ! -d ~/.oh-my-zsh ] -then - Info "Installing oh-my-zsh" - curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh - Success "oh-my-zsh installed" -fi - -# install vim-plug -if [ ! -f ~/.vim/autoload/plug.vim ] -then - curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim - vim +PlugInstall +qall - mkdir $HOME/.config - ln -s $HOME/.vim $HOME/.config/nvim - ln -s $HOME/.vimrc $HOME/.config/nvim/init.vim -fi - -# symlinks to dotfiles Dotfiles_install() { Info 'installing dotfiles' local overwrite_all=false backup_all=false skip_all=false @@ -148,3 +130,6 @@ Dotfiles_install() { } Dotfiles_install + +# look for install.sh and execute +find $DOTFILES -name install.sh | while read installer ; do sh -c "${installer}" ; done diff --git a/vim/install.sh b/vim/install.sh new file mode 100755 index 0000000..7e92b5f --- /dev/null +++ b/vim/install.sh @@ -0,0 +1,15 @@ +#!/usr/bin/env sh +# +# install vim-plug +# + +if [ ! -f ~/.vim/autoload/plug.vim ] +then + curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim + vim +PlugInstall +qall + + mkdir $HOME/.config + ln -s $HOME/.vim $HOME/.config/nvim + ln -s $HOME/.vimrc $HOME/.config/nvim/init.vim +fi + diff --git a/zsh/install.sh b/zsh/install.sh new file mode 100755 index 0000000..feb7a5f --- /dev/null +++ b/zsh/install.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env sh +# +# install oh-my-zsh + +if [ ! -d ~/.oh-my-zsh ] +then + echo "Installing oh-my-zsh" + curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh +fi From f4141915f6572a807eb41b983d6a542b9247c8a6 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 18 Nov 2015 13:14:48 +0200 Subject: [PATCH 060/230] more refactoring --- bootstrap | 61 ++++++++++++++++++++++----------------------- homebrew/install.sh | 13 ++++++++++ 2 files changed, 43 insertions(+), 31 deletions(-) create mode 100755 homebrew/install.sh diff --git a/bootstrap b/bootstrap index f6ea5b4..f9249be 100755 --- a/bootstrap +++ b/bootstrap @@ -1,31 +1,30 @@ #!/usr/bin/env bash +# +# Bootstrap +# +# Help boostrapping a system config files and environment +# DOTFILES=$HOME/.dotfiles -OS=$(uname) -Info () { +function Info() { printf "\r [ \033[00;34m..\033[0m ] $1\n" } -User () { +function User() { printf "\r [ \033[0;33m??\033[0m ] $1\n" } -Success () { +function Success() { printf "\r\033[2K [ \033[00;32mOK\033[0m ] $1\n" } -Fail () { +function Fail() { printf "\r\033[2K [\033[0;31mFAIL\033[0m] $1\n" echo '' exit } -Usage() { - echo "Usage: $0 [packages] - use packages to install OS specific packages" - exit 0 -} - -link_file() { +function link_file() { local src=$1 dst=$2 local overwrite= backup= skip= @@ -100,25 +99,22 @@ link_file() { fi } -case $1 in - packages) - if [ -f $DOTFILES/packages/$OS ] - then - $DOTFILES/packages/$OS - else - Fail "Unsupported OS: ${OS}" - fi - echo "Install Go packages" - for pkg in $(cat $DOTFILES/packages/GoPackages) - do - go get -u $pkg - done - ;; - usage|help) - Usage -esac - -Dotfiles_install() { +function Packages() { + if [ -f $DOTFILES/packages/$OS ] + then + $DOTFILES/packages/$OS + else + Fail "Unsupported OS: ${OS}" + fi + + echo "Install Go packages" + for pkg in $(cat $DOTFILES/packages/GoPackages) + do + go get -u $pkg + done +} + +function Dotfiles_install() { Info 'installing dotfiles' local overwrite_all=false backup_all=false skip_all=false @@ -131,5 +127,8 @@ Dotfiles_install() { Dotfiles_install +# install OS and lang packages +if [ "$1" == "packages" ]; then Packages; fi + # look for install.sh and execute -find $DOTFILES -name install.sh | while read installer ; do sh -c "${installer}" ; done +find $DOTFILES -name install.sh | while read installer; do sh -c "${installer}"; done diff --git a/homebrew/install.sh b/homebrew/install.sh new file mode 100755 index 0000000..a9bb056 --- /dev/null +++ b/homebrew/install.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env sh +# +# install homebrew +# +if test ! $(which brew) +then + if [ "$(uname)" == "Darwin" ] + then + ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" + else + echo "Unsupported OS: $(uname)" + fi +fi From 56429ee318973154c5e60589b4afaa6d967866a1 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 18 Nov 2015 13:16:54 +0200 Subject: [PATCH 061/230] OS var --- bootstrap | 1 + 1 file changed, 1 insertion(+) diff --git a/bootstrap b/bootstrap index f9249be..17c017e 100755 --- a/bootstrap +++ b/bootstrap @@ -5,6 +5,7 @@ # Help boostrapping a system config files and environment # DOTFILES=$HOME/.dotfiles +OS=$(uname) function Info() { printf "\r [ \033[00;34m..\033[0m ] $1\n" From 1deeae66ca9e5d8dc75e11c46e9c3e7542c16f7f Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 18 Nov 2015 20:30:36 +0200 Subject: [PATCH 062/230] Moved some zshrc stuff to its own .zsh --- zsh/gitignore.zsh => git/git.zsh | 3 +++ go/go.zsh | 2 ++ vim/vim.zsh | 6 ++++++ zsh/zshrc.symlink | 21 +-------------------- 4 files changed, 12 insertions(+), 20 deletions(-) rename zsh/gitignore.zsh => git/git.zsh (76%) create mode 100644 go/go.zsh create mode 100644 vim/vim.zsh diff --git a/zsh/gitignore.zsh b/git/git.zsh similarity index 76% rename from zsh/gitignore.zsh rename to git/git.zsh index a31188c..6603d9f 100644 --- a/zsh/gitignore.zsh +++ b/git/git.zsh @@ -1,5 +1,8 @@ +alias tig="tig --show-signature" + # gitignore.io # gi list to get all supported types function gi() { curl -L -s https://www.gitignore.io/api/$@ } + diff --git a/go/go.zsh b/go/go.zsh new file mode 100644 index 0000000..82d6d44 --- /dev/null +++ b/go/go.zsh @@ -0,0 +1,2 @@ +export GOPATH="$HOME/go" +export PATH="$GOPATH/bin:$PATH" diff --git a/vim/vim.zsh b/vim/vim.zsh new file mode 100644 index 0000000..65433b8 --- /dev/null +++ b/vim/vim.zsh @@ -0,0 +1,6 @@ +export EDITOR="vim" + +# vi alias to neovim +alias vi="nvim" +alias vim="nvim" +alias vimdiff="nvim -d" diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index ad5f88a..1c912c0 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -8,18 +8,6 @@ ZSH_THEME="sorin" zstyle ':completion:*' special-dirs true # -# Aliases -# - -# Override tig options to show gpg signatures -alias tig="tig --show-signature" - -# vi alias to neovim -alias vi="nvim" -alias vim="nvim" -alias vimdiff="nvim -d" - - # ZSH Plugins # plugins=(git ruby golang docker gem vagrant brew jump) @@ -30,14 +18,7 @@ source $ZSH/oh-my-zsh.sh # User configuration # -# GOPATH -export GOPATH="/Users/$USER/go" - -# PATH -export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:${GOPATH}/bin" - -# Preferred editor for local and remote sessions -export EDITOR='vim' +export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" # ZSH Vim Mode bindkey -v From f518c9aa487bc9108102396cff627d40c2a728c6 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 18 Nov 2015 20:44:36 +0200 Subject: [PATCH 063/230] reload! alias --- zsh/aliases.zsh | 1 + zsh/zshrc.symlink | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 zsh/aliases.zsh diff --git a/zsh/aliases.zsh b/zsh/aliases.zsh new file mode 100644 index 0000000..d7742c8 --- /dev/null +++ b/zsh/aliases.zsh @@ -0,0 +1 @@ +alias reload!=". ~/.zshrc" diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index 1c912c0..ea3c637 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -1,3 +1,6 @@ +# Dotfiles location +DOTFILES=$HOME/.dotfiles + # Path to your oh-my-zsh installation. export ZSH=$HOME/.oh-my-zsh @@ -20,7 +23,7 @@ source $ZSH/oh-my-zsh.sh export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" -# ZSH Vim Mode +# ZSH Vi Mode bindkey -v export KEYTIMEOUT=1 @@ -44,7 +47,6 @@ zle -N edit-command-line bindkey -M vicmd v edit-command-line # Load *.zsh files -DOTFILES=$HOME/.dotfiles for file in $(ls $DOTFILES/**/*.zsh) do source $file From 719f2549f31b1f45698fe983f0baa07b709e3f18 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 18 Nov 2015 20:45:39 +0200 Subject: [PATCH 064/230] typo --- zsh/keys.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zsh/keys.zsh b/zsh/keys.zsh index 5fbb0a5..67ee652 100644 --- a/zsh/keys.zsh +++ b/zsh/keys.zsh @@ -1,2 +1,2 @@ # Copy ssh public key to clipboard -alias pubkey="cat ~/.ssh/id_id_ed25519.pub | pbcopy | echo '=> Public key copied to pasteboard.'" +alias pubkey="cat ~/.ssh/id_ed25519.pub | pbcopy | echo '=> Public key copied to pasteboard.'" From 0be2f0fc4a3d1af0212522d9be70cd5c292cbee2 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 19 Nov 2015 10:41:25 +0200 Subject: [PATCH 065/230] renamed to path --- go/{go.zsh => path.zsh} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename go/{go.zsh => path.zsh} (100%) diff --git a/go/go.zsh b/go/path.zsh similarity index 100% rename from go/go.zsh rename to go/path.zsh From c327213e213eed8acb2eb30a950af51e786a7b11 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 26 Nov 2015 22:26:06 +0200 Subject: [PATCH 066/230] removed some old plugs --- zsh/zshrc.symlink | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index ea3c637..aa4201e 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -13,7 +13,7 @@ zstyle ':completion:*' special-dirs true # # ZSH Plugins # -plugins=(git ruby golang docker gem vagrant brew jump) +plugins=(git golang docker vagrant brew) source $ZSH/oh-my-zsh.sh From 332484e45ce12e75fbe4e20fd5abbb98911c4d48 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 8 Dec 2015 22:21:15 +0200 Subject: [PATCH 067/230] Packages; Socks Proxy functions --- git/gitconfig.symlink | 4 ++++ packages/Darwin | 2 ++ zsh/proxy.zsh | 31 +++++++++++++++++++++++++++++++ 3 files changed, 37 insertions(+) create mode 100644 zsh/proxy.zsh diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index 64dfb14..7aa617d 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -15,3 +15,7 @@ current = yellow reverse local = yellow remote = green +[filter "lfs"] + clean = git-lfs clean %f + smudge = git-lfs smudge %f + required = true diff --git a/packages/Darwin b/packages/Darwin index 327afc6..aff048f 100755 --- a/packages/Darwin +++ b/packages/Darwin @@ -20,6 +20,7 @@ brew install \ mercurial \ neovim \ nmap \ + mitmproxy \ node \ packer \ terraform \ @@ -28,6 +29,7 @@ brew install \ tree \ weechat \ wget \ + caddy \ docker \ docker-compose \ docker-machine diff --git a/zsh/proxy.zsh b/zsh/proxy.zsh new file mode 100644 index 0000000..27a3b5e --- /dev/null +++ b/zsh/proxy.zsh @@ -0,0 +1,31 @@ +# Set socks proxy +# Support Darwin +function set-proxy() { + if [[ "$1" == "state" ]] + then + PORT="$(get-proxy | grep Port | cut -d: -f2)" + if [[ "$2" == "on" ]] + then + _start-proxy-server $PORT $3 && \ + networksetup -setsocksfirewallproxystate Wi-Fi on + else + networksetup -setsocksfirewallproxystate Wi-Fi off + _stop-proxy-server + fi + else + _start-proxy-server $2 $3 && \ + networksetup -setsocksfirewallproxy Wi-Fi $1 $2 + fi +} + +function get-proxy() { + networksetup -getsocksfirewallproxy Wi-Fi +} + +function _start-proxy-server() { + ssh -D $1 -N -f $2 +} + +function _stop-proxy-server() { + ps aux | grep -v grep | grep 'ssh -D' | awk '{print $2}' | xargs kill +} From 97bfe692131652d05e39fe9fa2beffd4fda971ed Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 10 Dec 2015 13:10:32 +0200 Subject: [PATCH 068/230] Added option to proxy command --- zsh/proxy.zsh | 55 +++++++++++++++++++++++++++++++++++---------------- 1 file changed, 38 insertions(+), 17 deletions(-) diff --git a/zsh/proxy.zsh b/zsh/proxy.zsh index 27a3b5e..ddf94a4 100644 --- a/zsh/proxy.zsh +++ b/zsh/proxy.zsh @@ -1,21 +1,16 @@ -# Set socks proxy +# +# Author: Or Elimelech +# +# Desc: Sets socks proxy server on your machine using ssh -D (socksv5) # Support Darwin -function set-proxy() { - if [[ "$1" == "state" ]] - then - PORT="$(get-proxy | grep Port | cut -d: -f2)" - if [[ "$2" == "on" ]] - then - _start-proxy-server $PORT $3 && \ - networksetup -setsocksfirewallproxystate Wi-Fi on - else - networksetup -setsocksfirewallproxystate Wi-Fi off - _stop-proxy-server - fi - else - _start-proxy-server $2 $3 && \ - networksetup -setsocksfirewallproxy Wi-Fi $1 $2 - fi +# +function usage() { + echo "Usage: set-proxy [state] [setup] user@example.com" + echo + echo "Examples:" + echo " set-proxy setup localhost 9000 user@example.com # turn on socks proxy pointing to localhost:9000 with ssh socks to example.com" + echo " set-proxy state on user@example.com # turn on proxy and set up ssh socks server" + echo " set-proxy state off # turn off proxy" } function get-proxy() { @@ -29,3 +24,29 @@ function _start-proxy-server() { function _stop-proxy-server() { ps aux | grep -v grep | grep 'ssh -D' | awk '{print $2}' | xargs kill } + +function set-proxy() { + case $1 in + state) + PORT="$(get-proxy | grep Port | cut -d: -f2)" + if [[ "$2" == "on" ]] + then + _start-proxy-server $PORT $4 && \ + networksetup -setsocksfirewallproxystate Wi-Fi on + else + networksetup -setsocksfirewallproxystate Wi-Fi off + _stop-proxy-server + fi + ;; + setup) + _start-proxy-server $3 $4 && \ + networksetup -setsocksfirewallproxy Wi-Fi $2 $3 + ;; + -help|-h|help) + usage + ;; + *) + echo "Invalid argument" + usage + esac +} From b175a8ed47b3d89d2c262565a29d12fd7996ced6 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 10 Dec 2015 22:04:51 +0200 Subject: [PATCH 069/230] Fixed ARG --- zsh/proxy.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zsh/proxy.zsh b/zsh/proxy.zsh index ddf94a4..ba7b7fd 100644 --- a/zsh/proxy.zsh +++ b/zsh/proxy.zsh @@ -31,7 +31,7 @@ function set-proxy() { PORT="$(get-proxy | grep Port | cut -d: -f2)" if [[ "$2" == "on" ]] then - _start-proxy-server $PORT $4 && \ + _start-proxy-server $PORT $3 && \ networksetup -setsocksfirewallproxystate Wi-Fi on else networksetup -setsocksfirewallproxystate Wi-Fi off From aa2b02912a25a5fe8856e64290710753c0720941 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 24 Dec 2015 19:20:44 +0200 Subject: [PATCH 070/230] Usage removed multiple echos --- zsh/proxy.zsh | 35 +++++++++++++++++++++-------------- 1 file changed, 21 insertions(+), 14 deletions(-) diff --git a/zsh/proxy.zsh b/zsh/proxy.zsh index ba7b7fd..4420e3a 100644 --- a/zsh/proxy.zsh +++ b/zsh/proxy.zsh @@ -5,12 +5,20 @@ # Support Darwin # function usage() { - echo "Usage: set-proxy [state] [setup] user@example.com" - echo - echo "Examples:" - echo " set-proxy setup localhost 9000 user@example.com # turn on socks proxy pointing to localhost:9000 with ssh socks to example.com" - echo " set-proxy state on user@example.com # turn on proxy and set up ssh socks server" - echo " set-proxy state off # turn off proxy" + cat <<- EOF + USAGE: set-proxy [state] [setup] user@example.com + + Socks proxy setup. + + OPTIONS: + setup setup proxy settings (local ip and port) + state turn socks proxy on/off + + EXAMPLES: + set-proxy setup localhost 9000 user@example.com turn on socks proxy pointing to localhost:9000 with ssh socks to example.com" + set-proxy state on user@example.com turn on proxy and set up ssh socks server" + set-proxy state off turn off proxy" + EOF } function get-proxy() { @@ -18,7 +26,9 @@ function get-proxy() { } function _start-proxy-server() { - ssh -D $1 -N -f $2 + local port=$1 + local server=$2 + ssh -D $port -N -f $server } function _stop-proxy-server() { @@ -26,12 +36,13 @@ function _stop-proxy-server() { } function set-proxy() { - case $1 in + local flag=$1 + case $flag in state) - PORT="$(get-proxy | grep Port | cut -d: -f2)" + local port="$(get-proxy | grep Port | cut -d: -f2)" if [[ "$2" == "on" ]] then - _start-proxy-server $PORT $3 && \ + _start-proxy-server $port $3 && \ networksetup -setsocksfirewallproxystate Wi-Fi on else networksetup -setsocksfirewallproxystate Wi-Fi off @@ -42,11 +53,7 @@ function set-proxy() { _start-proxy-server $3 $4 && \ networksetup -setsocksfirewallproxy Wi-Fi $2 $3 ;; - -help|-h|help) - usage - ;; *) - echo "Invalid argument" usage esac } From 8aa1711ddb598304c9196249a68bee48490a9ae2 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 11 Jan 2016 21:14:52 +0200 Subject: [PATCH 071/230] Added local.zsh file support --- zsh/zshrc.symlink | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index aa4201e..7f1b3bc 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -51,3 +51,9 @@ for file in $(ls $DOTFILES/**/*.zsh) do source $file done + +# Load ~/.local.zsh for local functions and vars +if [ -f $HOME/.local.zsh ] +then + source $HOME/.local.zsh +fi From 8e8f1d55673ec6412d0f58eb550d709bfae4e019 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 18 Jan 2016 11:42:23 +0200 Subject: [PATCH 072/230] FZF f mapping --- vim/vimrc.symlink | 3 +++ 1 file changed, 3 insertions(+) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 44dc07f..0ba8a91 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -54,6 +54,9 @@ let g:go_fmt_command = "goimports" " airline let g:airline#extensions#tabline#enabled = 1 +" FZF +nnoremap f :FZF + " Language specifics autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent From 19634f1ea9e64c05f91546dc12f9a27203db4bf1 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Fri, 19 Feb 2016 14:06:12 +0200 Subject: [PATCH 073/230] Added /usr/local/sbin to path; renamed vim-airline package --- packages/GoPackages | 1 + vim/vimrc.symlink | 6 +++++- zsh/zshrc.symlink | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/packages/GoPackages b/packages/GoPackages index 5b8b7c5..561dc2d 100755 --- a/packages/GoPackages +++ b/packages/GoPackages @@ -1,2 +1,3 @@ github.com/rakyll/boom github.com/jfrazelle/weather +github.com/otium/ytdl/... diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 0ba8a91..acf84ef 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -8,7 +8,8 @@ call plug#begin('~/.vim/plugged') Plug 'rust-lang/rust.vim' Plug 'ekalinin/Dockerfile.vim' Plug 'markcornick/vim-terraform' - Plug 'bling/vim-airline' + Plug 'vim-airline/vim-airline' + Plug 'vim-airline/vim-airline-themes' Plug 'gnupg.vim' Plug 'vim-coffee-script' Plug 'vitapluvia/vim-gurl' @@ -16,6 +17,7 @@ call plug#begin('~/.vim/plugged') Plug 'tpope/vim-surround' Plug 'commentary.vim' Plug 'junegunn/fzf' + Plug 'junegunn/fzf.vim' call plug#end() filetype plugin indent on @@ -53,6 +55,7 @@ let g:go_fmt_command = "goimports" " airline let g:airline#extensions#tabline#enabled = 1 +let g:airline_powerline_fonts = 1 " FZF nnoremap f :FZF @@ -64,3 +67,4 @@ autocmd BufNewFile,BufRead *.json set shiftwidth=2 sts=2 expandtab smartindent f autocmd FileType java setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent +autocmd BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index 7f1b3bc..ac077d1 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -21,7 +21,7 @@ source $ZSH/oh-my-zsh.sh # User configuration # -export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin" +export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin" # ZSH Vi Mode bindkey -v From 7933aab0c8e0d3375607ab4b43d0b4b1fe21e7a7 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sat, 20 Feb 2016 23:01:19 +0200 Subject: [PATCH 074/230] Godep --- packages/GoPackages | 1 + vim/vimrc.symlink | 1 + 2 files changed, 2 insertions(+) diff --git a/packages/GoPackages b/packages/GoPackages index 561dc2d..7a05662 100755 --- a/packages/GoPackages +++ b/packages/GoPackages @@ -1,3 +1,4 @@ github.com/rakyll/boom github.com/jfrazelle/weather github.com/otium/ytdl/... +github.com/tools/godep diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index acf84ef..0a8976b 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -10,6 +10,7 @@ call plug#begin('~/.vim/plugged') Plug 'markcornick/vim-terraform' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' + Plug 'ryanoasis/vim-devicons' Plug 'gnupg.vim' Plug 'vim-coffee-script' Plug 'vitapluvia/vim-gurl' From 21c488ffa1595d9a880b2fc1a06b6b395ac7bb27 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 21 Feb 2016 10:47:22 +0200 Subject: [PATCH 075/230] airline seperators --- vim/vimrc.symlink | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 0a8976b..8dfcfdf 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -55,8 +55,11 @@ nnoremap :let @/="" let g:go_fmt_command = "goimports" " airline -let g:airline#extensions#tabline#enabled = 1 +let g:airline_right_sep=' ' +let g:airline_left_sep=' ' let g:airline_powerline_fonts = 1 +let g:airline#extensions#tabline#enabled = 1 +let g:airline#extensions#tabline#left_sep = ' ' " FZF nnoremap f :FZF From 6838a21bc6beaf5b32800eb595fff9de9bcb57e6 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 29 Feb 2016 16:33:13 +0200 Subject: [PATCH 076/230] Deleted devicons --- vim/vimrc.symlink | 2 -- 1 file changed, 2 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 8dfcfdf..4054cce 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -10,7 +10,6 @@ call plug#begin('~/.vim/plugged') Plug 'markcornick/vim-terraform' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' - Plug 'ryanoasis/vim-devicons' Plug 'gnupg.vim' Plug 'vim-coffee-script' Plug 'vitapluvia/vim-gurl' @@ -57,7 +56,6 @@ let g:go_fmt_command = "goimports" " airline let g:airline_right_sep=' ' let g:airline_left_sep=' ' -let g:airline_powerline_fonts = 1 let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#left_sep = ' ' From dba48517de5080d78a35c2f83310771738c1ed00 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 29 Feb 2016 17:44:55 +0200 Subject: [PATCH 077/230] weechat --- weechat.symlink/.gitignore | 4 + weechat.symlink/alias.conf | 41 +++ weechat.symlink/charset.conf | 11 + weechat.symlink/exec.conf | 11 + weechat.symlink/logger.conf | 26 ++ weechat.symlink/plugins.conf | 9 + weechat.symlink/relay.conf | 40 +++ weechat.symlink/script.conf | 50 +++ weechat.symlink/sec.conf | 11 + weechat.symlink/trigger.conf | 47 +++ weechat.symlink/weechat.conf | 590 +++++++++++++++++++++++++++++++++++ weechat.symlink/xfer.conf | 39 +++ 12 files changed, 879 insertions(+) create mode 100644 weechat.symlink/.gitignore create mode 100644 weechat.symlink/alias.conf create mode 100644 weechat.symlink/charset.conf create mode 100644 weechat.symlink/exec.conf create mode 100644 weechat.symlink/logger.conf create mode 100644 weechat.symlink/plugins.conf create mode 100644 weechat.symlink/relay.conf create mode 100644 weechat.symlink/script.conf create mode 100644 weechat.symlink/sec.conf create mode 100644 weechat.symlink/trigger.conf create mode 100644 weechat.symlink/weechat.conf create mode 100644 weechat.symlink/xfer.conf diff --git a/weechat.symlink/.gitignore b/weechat.symlink/.gitignore new file mode 100644 index 0000000..6897e29 --- /dev/null +++ b/weechat.symlink/.gitignore @@ -0,0 +1,4 @@ +logs/ +ssl/ +*.log +irc.conf diff --git a/weechat.symlink/alias.conf b/weechat.symlink/alias.conf new file mode 100644 index 0000000..069fc02 --- /dev/null +++ b/weechat.symlink/alias.conf @@ -0,0 +1,41 @@ +# +# weechat -- alias.conf +# + +[cmd] +AAWAY = "allserv /away" +AME = "allchan /me" +AMSG = "allchan /msg *" +ANICK = "allserv /nick" +BEEP = "print -beep" +BYE = "quit" +C = "buffer clear" +CHAT = "dcc chat" +CL = "buffer clear" +CLOSE = "buffer close" +EXIT = "quit" +IG = "ignore" +J = "join" +K = "kick" +KB = "kickban" +LEAVE = "part" +M = "msg" +MSGBUF = "command -buffer $1 * /input send $2-" +MUB = "unban *" +N = "names" +Q = "query" +REDRAW = "window refresh" +SAY = "msg *" +SIGNOFF = "quit" +T = "topic" +UB = "unban" +UMODE = "mode $nick" +V = "command core version" +W = "who" +WC = "window merge" +WI = "whois" +WII = "whois $1 $1" +WW = "whowas" + +[completion] +MSGBUF = "%(buffers_plugins_names)" diff --git a/weechat.symlink/charset.conf b/weechat.symlink/charset.conf new file mode 100644 index 0000000..c3ce725 --- /dev/null +++ b/weechat.symlink/charset.conf @@ -0,0 +1,11 @@ +# +# weechat -- charset.conf +# + +[default] +decode = "US-ASCII" +encode = "" + +[decode] + +[encode] diff --git a/weechat.symlink/exec.conf b/weechat.symlink/exec.conf new file mode 100644 index 0000000..39f1929 --- /dev/null +++ b/weechat.symlink/exec.conf @@ -0,0 +1,11 @@ +# +# weechat -- exec.conf +# + +[command] +default_options = "" +purge_delay = 0 + +[color] +flag_finished = lightred +flag_running = lightgreen diff --git a/weechat.symlink/logger.conf b/weechat.symlink/logger.conf new file mode 100644 index 0000000..89fed53 --- /dev/null +++ b/weechat.symlink/logger.conf @@ -0,0 +1,26 @@ +# +# weechat -- logger.conf +# + +[look] +backlog = 20 + +[color] +backlog_end = default +backlog_line = default + +[file] +auto_log = on +flush_delay = 120 +info_lines = off +mask = "$plugin.$name.weechatlog" +name_lower_case = on +nick_prefix = "" +nick_suffix = "" +path = "%h/logs/" +replacement_char = "_" +time_format = "%Y-%m-%d %H:%M:%S" + +[level] + +[mask] diff --git a/weechat.symlink/plugins.conf b/weechat.symlink/plugins.conf new file mode 100644 index 0000000..c0b3234 --- /dev/null +++ b/weechat.symlink/plugins.conf @@ -0,0 +1,9 @@ +# +# weechat -- plugins.conf +# + +[var] +fifo.fifo = "on" +tcl.check_license = "off" + +[desc] diff --git a/weechat.symlink/relay.conf b/weechat.symlink/relay.conf new file mode 100644 index 0000000..2795023 --- /dev/null +++ b/weechat.symlink/relay.conf @@ -0,0 +1,40 @@ +# +# weechat -- relay.conf +# + +[look] +auto_open_buffer = on +raw_messages = 256 + +[color] +client = cyan +status_active = lightblue +status_auth_failed = lightred +status_connecting = yellow +status_disconnected = lightred +status_waiting_auth = brown +text = default +text_bg = default +text_selected = white + +[network] +allowed_ips = "" +bind_address = "" +clients_purge_delay = 0 +compression_level = 6 +ipv6 = on +max_clients = 5 +password = "" +ssl_cert_key = "%h/ssl/relay.pem" +ssl_priorities = "NORMAL:-VERS-SSL3.0" +websocket_allowed_origins = "" + +[irc] +backlog_max_minutes = 1440 +backlog_max_number = 256 +backlog_since_last_disconnect = on +backlog_since_last_message = off +backlog_tags = "irc_privmsg" +backlog_time_format = "[%H:%M] " + +[port] diff --git a/weechat.symlink/script.conf b/weechat.symlink/script.conf new file mode 100644 index 0000000..e1577d4 --- /dev/null +++ b/weechat.symlink/script.conf @@ -0,0 +1,50 @@ +# +# weechat -- script.conf +# + +[look] +columns = "%s %n %V %v %u | %d | %t" +diff_color = on +diff_command = "auto" +display_source = on +quiet_actions = on +sort = "p,n" +translate_description = on +use_keys = on + +[color] +status_autoloaded = cyan +status_held = white +status_installed = lightcyan +status_obsolete = lightmagenta +status_popular = yellow +status_running = lightgreen +status_unknown = lightred +text = default +text_bg = default +text_bg_selected = red +text_date = default +text_date_selected = white +text_delimiters = default +text_description = default +text_description_selected = white +text_extension = default +text_extension_selected = white +text_name = cyan +text_name_selected = lightcyan +text_selected = white +text_tags = brown +text_tags_selected = yellow +text_version = magenta +text_version_loaded = default +text_version_loaded_selected = white +text_version_selected = lightmagenta + +[scripts] +autoload = on +cache_expire = 1440 +download_timeout = 30 +hold = "" +path = "%h/script" +url = "http://weechat.org/files/plugins.xml.gz" +url_force_https = on diff --git a/weechat.symlink/sec.conf b/weechat.symlink/sec.conf new file mode 100644 index 0000000..3672aa7 --- /dev/null +++ b/weechat.symlink/sec.conf @@ -0,0 +1,11 @@ +# +# weechat -- sec.conf +# + +[crypt] +cipher = aes256 +hash_algo = sha256 +passphrase_file = "" +salt = on + +[data] diff --git a/weechat.symlink/trigger.conf b/weechat.symlink/trigger.conf new file mode 100644 index 0000000..6de8bf5 --- /dev/null +++ b/weechat.symlink/trigger.conf @@ -0,0 +1,47 @@ +# +# weechat -- trigger.conf +# + +[look] +enabled = on +monitor_strip_colors = off + +[color] +flag_command = lightgreen +flag_conditions = yellow +flag_regex = lightcyan +flag_return_code = lightmagenta +regex = white +replace = cyan +trigger = green +trigger_disabled = red + +[trigger] +beep.arguments = "" +beep.command = "/print -beep" +beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})" +beep.enabled = on +beep.hook = print +beep.regex = "" +beep.return_code = ok +cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth" +cmd_pass.command = "" +cmd_pass.conditions = "" +cmd_pass.enabled = on +cmd_pass.hook = modifier +cmd_pass.regex = "==^((/(msg|m|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" +cmd_pass.return_code = ok +msg_auth.arguments = "5000|irc_message_auth" +msg_auth.command = "" +msg_auth.conditions = "" +msg_auth.enabled = on +msg_auth.hook = modifier +msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" +msg_auth.return_code = ok +server_pass.arguments = "5000|input_text_display;5000|history_add" +server_pass.command = "" +server_pass.conditions = "" +server_pass.enabled = on +server_pass.hook = modifier +server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}" +server_pass.return_code = ok diff --git a/weechat.symlink/weechat.conf b/weechat.symlink/weechat.conf new file mode 100644 index 0000000..252f5ac --- /dev/null +++ b/weechat.symlink/weechat.conf @@ -0,0 +1,590 @@ +# +# weechat -- weechat.conf +# + +[debug] + +[startup] +command_after_plugins = "" +command_before_plugins = "" +display_logo = on +display_version = on +sys_rlimit = "" + +[look] +align_end_of_lines = message +bar_more_down = "++" +bar_more_left = "<<" +bar_more_right = ">>" +bar_more_up = "--" +bare_display_exit_on_input = on +bare_display_time_format = "%H:%M" +buffer_auto_renumber = on +buffer_notify_default = all +buffer_position = end +buffer_search_case_sensitive = off +buffer_search_force_default = off +buffer_search_regex = off +buffer_search_where = prefix_message +buffer_time_format = "%H:%M:%S" +color_basic_force_bold = off +color_inactive_buffer = on +color_inactive_message = on +color_inactive_prefix = on +color_inactive_prefix_buffer = on +color_inactive_time = off +color_inactive_window = on +color_nick_offline = off +color_pairs_auto_reset = 5 +color_real_white = off +command_chars = "" +command_incomplete = off +confirm_quit = off +confirm_upgrade = off +day_change = on +day_change_message_1date = "-- %a, %d %b %Y --" +day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --" +eat_newline_glitch = off +emphasized_attributes = "" +highlight = "" +highlight_regex = "" +highlight_tags = "" +hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0" +hotlist_buffer_separator = ", " +hotlist_count_max = 2 +hotlist_count_min_msg = 2 +hotlist_names_count = 3 +hotlist_names_length = 0 +hotlist_names_level = 12 +hotlist_names_merged_buffers = off +hotlist_prefix = "H: " +hotlist_remove = merged +hotlist_short_names = on +hotlist_sort = group_time_asc +hotlist_suffix = "" +hotlist_unique_numbers = on +input_cursor_scroll = 20 +input_share = none +input_share_overwrite = off +input_undo_max = 32 +item_buffer_filter = "*" +item_buffer_zoom = "!" +item_mouse_status = "M" +item_time_format = "%H:%M" +jump_current_to_previous_buffer = on +jump_previous_buffer_when_closing = on +jump_smart_back_to_buffer = on +key_bind_safe = on +key_grab_delay = 800 +mouse = off +mouse_timer_delay = 100 +nick_prefix = "" +nick_suffix = "" +paste_auto_add_newline = on +paste_bracketed = on +paste_bracketed_timer_delay = 10 +paste_max_lines = 1 +prefix_action = " *" +prefix_align = right +prefix_align_max = 0 +prefix_align_min = 0 +prefix_align_more = "+" +prefix_align_more_after = on +prefix_buffer_align = right +prefix_buffer_align_max = 0 +prefix_buffer_align_more = "+" +prefix_buffer_align_more_after = on +prefix_error = "=!=" +prefix_join = "-->" +prefix_network = "--" +prefix_quit = "<--" +prefix_same_nick = "" +prefix_suffix = "|" +quote_nick_prefix = "<" +quote_nick_suffix = ">" +quote_time_format = "%H:%M:%S" +read_marker = line +read_marker_always_show = off +read_marker_string = "- " +save_config_on_exit = on +save_layout_on_exit = none +scroll_amount = 3 +scroll_bottom_after_switch = off +scroll_page_percent = 100 +search_text_not_found_alert = on +separator_horizontal = "-" +separator_vertical = "" +tab_width = 1 +time_format = "%a, %d %b %Y %T" +window_auto_zoom = off +window_separator_horizontal = on +window_separator_vertical = on +window_title = "WeeChat ${info:version}" +word_chars_highlight = "!\u00A0,-,_,|,alnum" +word_chars_input = "!\u00A0,-,_,|,alnum" + +[palette] + +[color] +bar_more = lightmagenta +chat = default +chat_bg = default +chat_buffer = white +chat_channel = white +chat_day_change = cyan +chat_delimiters = green +chat_highlight = yellow +chat_highlight_bg = magenta +chat_host = cyan +chat_inactive_buffer = default +chat_inactive_window = default +chat_nick = lightcyan +chat_nick_colors = "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue" +chat_nick_offline = default +chat_nick_offline_highlight = default +chat_nick_offline_highlight_bg = blue +chat_nick_other = cyan +chat_nick_prefix = green +chat_nick_self = white +chat_nick_suffix = green +chat_prefix_action = white +chat_prefix_buffer = brown +chat_prefix_buffer_inactive_buffer = default +chat_prefix_error = yellow +chat_prefix_join = lightgreen +chat_prefix_more = lightmagenta +chat_prefix_network = magenta +chat_prefix_quit = lightred +chat_prefix_suffix = green +chat_read_marker = magenta +chat_read_marker_bg = default +chat_server = brown +chat_tags = red +chat_text_found = yellow +chat_text_found_bg = lightmagenta +chat_time = default +chat_time_delimiters = brown +chat_value = cyan +chat_value_null = blue +emphasized = yellow +emphasized_bg = magenta +input_actions = lightgreen +input_text_not_found = red +nicklist_away = cyan +nicklist_group = green +separator = blue +status_count_highlight = magenta +status_count_msg = brown +status_count_other = default +status_count_private = green +status_data_highlight = lightmagenta +status_data_msg = yellow +status_data_other = default +status_data_private = lightgreen +status_filter = green +status_more = yellow +status_mouse = green +status_name = white +status_name_ssl = lightgreen +status_nicklist_count = default +status_number = yellow +status_time = default + +[completion] +base_word_until_cursor = on +command_inline = on +default_template = "%(nicks)|%(irc_channels)" +nick_add_space = on +nick_completer = ":" +nick_first_only = off +nick_ignore_chars = "[]`_-^" +partial_completion_alert = on +partial_completion_command = off +partial_completion_command_arg = off +partial_completion_count = on +partial_completion_other = off + +[history] +display_default = 5 +max_buffer_lines_minutes = 0 +max_buffer_lines_number = 4096 +max_commands = 100 +max_visited_buffers = 50 + +[proxy] + +[network] +connection_timeout = 60 +gnutls_ca_file = "/usr/local/etc/openssl/cert.pem" +gnutls_handshake_timeout = 30 +proxy_curl = "" + +[plugin] +autoload = "*" +debug = off +extension = ".so,.dll" +path = "%h/plugins" +save_config_on_unload = on + +[bar] +input.color_bg = default +input.color_delim = cyan +input.color_fg = default +input.conditions = "" +input.filling_left_right = vertical +input.filling_top_bottom = horizontal +input.hidden = off +input.items = "[input_prompt]+(away),[input_search],[input_paste],input_text" +input.position = bottom +input.priority = 1000 +input.separator = off +input.size = 1 +input.size_max = 0 +input.type = window +nicklist.color_bg = default +nicklist.color_delim = cyan +nicklist.color_fg = default +nicklist.conditions = "${nicklist}" +nicklist.filling_left_right = vertical +nicklist.filling_top_bottom = columns_vertical +nicklist.hidden = off +nicklist.items = "buffer_nicklist" +nicklist.position = right +nicklist.priority = 200 +nicklist.separator = on +nicklist.size = 0 +nicklist.size_max = 0 +nicklist.type = window +status.color_bg = blue +status.color_delim = cyan +status.color_fg = default +status.conditions = "" +status.filling_left_right = vertical +status.filling_top_bottom = horizontal +status.hidden = off +status.items = "[time],[buffer_last_number],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,scroll,[lag],[hotlist],completion" +status.position = bottom +status.priority = 500 +status.separator = off +status.size = 1 +status.size_max = 0 +status.type = window +title.color_bg = blue +title.color_delim = cyan +title.color_fg = default +title.conditions = "" +title.filling_left_right = vertical +title.filling_top_bottom = horizontal +title.hidden = off +title.items = "buffer_title" +title.position = top +title.priority = 500 +title.separator = off +title.size = 1 +title.size_max = 0 +title.type = window + +[layout] + +[notify] + +[filter] + +[key] +ctrl-? = "/input delete_previous_char" +ctrl-A = "/input move_beginning_of_line" +ctrl-B = "/input move_previous_char" +ctrl-C_ = "/input insert \x1F" +ctrl-Cb = "/input insert \x02" +ctrl-Cc = "/input insert \x03" +ctrl-Ci = "/input insert \x1D" +ctrl-Co = "/input insert \x0F" +ctrl-Cv = "/input insert \x16" +ctrl-D = "/input delete_next_char" +ctrl-E = "/input move_end_of_line" +ctrl-F = "/input move_next_char" +ctrl-H = "/input delete_previous_char" +ctrl-I = "/input complete_next" +ctrl-J = "/input return" +ctrl-K = "/input delete_end_of_line" +ctrl-L = "/window refresh" +ctrl-M = "/input return" +ctrl-N = "/buffer +1" +ctrl-P = "/buffer -1" +ctrl-R = "/input search_text_here" +ctrl-Sctrl-U = "/input set_unread" +ctrl-T = "/input transpose_chars" +ctrl-U = "/input delete_beginning_of_line" +ctrl-W = "/input delete_previous_word" +ctrl-X = "/input switch_active_buffer" +ctrl-Y = "/input clipboard_paste" +meta-meta2-1~ = "/window scroll_top" +meta-meta2-23~ = "/bar scroll nicklist * b" +meta-meta2-24~ = "/bar scroll nicklist * e" +meta-meta2-4~ = "/window scroll_bottom" +meta-meta2-5~ = "/window scroll_up" +meta-meta2-6~ = "/window scroll_down" +meta-meta2-7~ = "/window scroll_top" +meta-meta2-8~ = "/window scroll_bottom" +meta-meta2-A = "/buffer -1" +meta-meta2-B = "/buffer +1" +meta-meta2-C = "/buffer +1" +meta-meta2-D = "/buffer -1" +meta-- = "/filter toggle @" +meta-/ = "/input jump_last_buffer_displayed" +meta-0 = "/buffer *10" +meta-1 = "/buffer *1" +meta-2 = "/buffer *2" +meta-3 = "/buffer *3" +meta-4 = "/buffer *4" +meta-5 = "/buffer *5" +meta-6 = "/buffer *6" +meta-7 = "/buffer *7" +meta-8 = "/buffer *8" +meta-9 = "/buffer *9" +meta-< = "/input jump_previously_visited_buffer" +meta-= = "/filter toggle" +meta-> = "/input jump_next_visited_buffer" +meta-OA = "/input history_global_previous" +meta-OB = "/input history_global_next" +meta-OC = "/input move_next_word" +meta-OD = "/input move_previous_word" +meta-OF = "/input move_end_of_line" +meta-OH = "/input move_beginning_of_line" +meta-Oa = "/input history_global_previous" +meta-Ob = "/input history_global_next" +meta-Oc = "/input move_next_word" +meta-Od = "/input move_previous_word" +meta2-15~ = "/buffer -1" +meta2-17~ = "/buffer +1" +meta2-18~ = "/window -1" +meta2-19~ = "/window +1" +meta2-1;3A = "/buffer -1" +meta2-1;3B = "/buffer +1" +meta2-1;3C = "/buffer +1" +meta2-1;3D = "/buffer -1" +meta2-1;3F = "/window scroll_bottom" +meta2-1;3H = "/window scroll_top" +meta2-1;5A = "/input history_global_previous" +meta2-1;5B = "/input history_global_next" +meta2-1;5C = "/input move_next_word" +meta2-1;5D = "/input move_previous_word" +meta2-1~ = "/input move_beginning_of_line" +meta2-200~ = "/input paste_start" +meta2-201~ = "/input paste_stop" +meta2-20~ = "/bar scroll title * -30%" +meta2-21~ = "/bar scroll title * +30%" +meta2-23;3~ = "/bar scroll nicklist * b" +meta2-23~ = "/bar scroll nicklist * -100%" +meta2-24;3~ = "/bar scroll nicklist * e" +meta2-24~ = "/bar scroll nicklist * +100%" +meta2-3~ = "/input delete_next_char" +meta2-4~ = "/input move_end_of_line" +meta2-5;3~ = "/window scroll_up" +meta2-5~ = "/window page_up" +meta2-6;3~ = "/window scroll_down" +meta2-6~ = "/window page_down" +meta2-7~ = "/input move_beginning_of_line" +meta2-8~ = "/input move_end_of_line" +meta2-A = "/input history_previous" +meta2-B = "/input history_next" +meta2-C = "/input move_next_char" +meta2-D = "/input move_previous_char" +meta2-F = "/input move_end_of_line" +meta2-G = "/window page_down" +meta2-H = "/input move_beginning_of_line" +meta2-I = "/window page_up" +meta2-Z = "/input complete_previous" +meta2-[E = "/buffer -1" +meta-_ = "/input redo" +meta-a = "/input jump_smart" +meta-b = "/input move_previous_word" +meta-d = "/input delete_next_word" +meta-f = "/input move_next_word" +meta-h = "/input hotlist_clear" +meta-jmeta-f = "/buffer -" +meta-jmeta-l = "/buffer +" +meta-jmeta-r = "/server raw" +meta-jmeta-s = "/server jump" +meta-j01 = "/buffer *1" +meta-j02 = "/buffer *2" +meta-j03 = "/buffer *3" +meta-j04 = "/buffer *4" +meta-j05 = "/buffer *5" +meta-j06 = "/buffer *6" +meta-j07 = "/buffer *7" +meta-j08 = "/buffer *8" +meta-j09 = "/buffer *9" +meta-j10 = "/buffer *10" +meta-j11 = "/buffer *11" +meta-j12 = "/buffer *12" +meta-j13 = "/buffer *13" +meta-j14 = "/buffer *14" +meta-j15 = "/buffer *15" +meta-j16 = "/buffer *16" +meta-j17 = "/buffer *17" +meta-j18 = "/buffer *18" +meta-j19 = "/buffer *19" +meta-j20 = "/buffer *20" +meta-j21 = "/buffer *21" +meta-j22 = "/buffer *22" +meta-j23 = "/buffer *23" +meta-j24 = "/buffer *24" +meta-j25 = "/buffer *25" +meta-j26 = "/buffer *26" +meta-j27 = "/buffer *27" +meta-j28 = "/buffer *28" +meta-j29 = "/buffer *29" +meta-j30 = "/buffer *30" +meta-j31 = "/buffer *31" +meta-j32 = "/buffer *32" +meta-j33 = "/buffer *33" +meta-j34 = "/buffer *34" +meta-j35 = "/buffer *35" +meta-j36 = "/buffer *36" +meta-j37 = "/buffer *37" +meta-j38 = "/buffer *38" +meta-j39 = "/buffer *39" +meta-j40 = "/buffer *40" +meta-j41 = "/buffer *41" +meta-j42 = "/buffer *42" +meta-j43 = "/buffer *43" +meta-j44 = "/buffer *44" +meta-j45 = "/buffer *45" +meta-j46 = "/buffer *46" +meta-j47 = "/buffer *47" +meta-j48 = "/buffer *48" +meta-j49 = "/buffer *49" +meta-j50 = "/buffer *50" +meta-j51 = "/buffer *51" +meta-j52 = "/buffer *52" +meta-j53 = "/buffer *53" +meta-j54 = "/buffer *54" +meta-j55 = "/buffer *55" +meta-j56 = "/buffer *56" +meta-j57 = "/buffer *57" +meta-j58 = "/buffer *58" +meta-j59 = "/buffer *59" +meta-j60 = "/buffer *60" +meta-j61 = "/buffer *61" +meta-j62 = "/buffer *62" +meta-j63 = "/buffer *63" +meta-j64 = "/buffer *64" +meta-j65 = "/buffer *65" +meta-j66 = "/buffer *66" +meta-j67 = "/buffer *67" +meta-j68 = "/buffer *68" +meta-j69 = "/buffer *69" +meta-j70 = "/buffer *70" +meta-j71 = "/buffer *71" +meta-j72 = "/buffer *72" +meta-j73 = "/buffer *73" +meta-j74 = "/buffer *74" +meta-j75 = "/buffer *75" +meta-j76 = "/buffer *76" +meta-j77 = "/buffer *77" +meta-j78 = "/buffer *78" +meta-j79 = "/buffer *79" +meta-j80 = "/buffer *80" +meta-j81 = "/buffer *81" +meta-j82 = "/buffer *82" +meta-j83 = "/buffer *83" +meta-j84 = "/buffer *84" +meta-j85 = "/buffer *85" +meta-j86 = "/buffer *86" +meta-j87 = "/buffer *87" +meta-j88 = "/buffer *88" +meta-j89 = "/buffer *89" +meta-j90 = "/buffer *90" +meta-j91 = "/buffer *91" +meta-j92 = "/buffer *92" +meta-j93 = "/buffer *93" +meta-j94 = "/buffer *94" +meta-j95 = "/buffer *95" +meta-j96 = "/buffer *96" +meta-j97 = "/buffer *97" +meta-j98 = "/buffer *98" +meta-j99 = "/buffer *99" +meta-k = "/input grab_key_command" +meta-l = "/window bare" +meta-m = "/mute mouse toggle" +meta-n = "/window scroll_next_highlight" +meta-p = "/window scroll_previous_highlight" +meta-r = "/input delete_line" +meta-s = "/mute aspell toggle" +meta-u = "/window scroll_unread" +meta-wmeta-meta2-A = "/window up" +meta-wmeta-meta2-B = "/window down" +meta-wmeta-meta2-C = "/window right" +meta-wmeta-meta2-D = "/window left" +meta-wmeta2-1;3A = "/window up" +meta-wmeta2-1;3B = "/window down" +meta-wmeta2-1;3C = "/window right" +meta-wmeta2-1;3D = "/window left" +meta-wmeta-b = "/window balance" +meta-wmeta-s = "/window swap" +meta-x = "/input zoom_merged_buffer" +meta-z = "/window zoom" +ctrl-_ = "/input undo" + +[key_search] +ctrl-I = "/input search_switch_where" +ctrl-J = "/input search_stop_here" +ctrl-M = "/input search_stop_here" +ctrl-Q = "/input search_stop" +ctrl-R = "/input search_switch_regex" +meta2-A = "/input search_previous" +meta2-B = "/input search_next" +meta-c = "/input search_switch_case" + +[key_cursor] +ctrl-J = "/cursor stop" +ctrl-M = "/cursor stop" +meta-meta2-A = "/cursor move area_up" +meta-meta2-B = "/cursor move area_down" +meta-meta2-C = "/cursor move area_right" +meta-meta2-D = "/cursor move area_left" +meta2-1;3A = "/cursor move area_up" +meta2-1;3B = "/cursor move area_down" +meta2-1;3C = "/cursor move area_right" +meta2-1;3D = "/cursor move area_left" +meta2-A = "/cursor move up" +meta2-B = "/cursor move down" +meta2-C = "/cursor move right" +meta2-D = "/cursor move left" +@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}" +@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}" +@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}" +@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop" +@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}" +@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop" +@chat:m = "hsignal:chat_quote_message;/cursor stop" +@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop" + +[key_mouse] +@bar(input):button2 = "/input grab_mouse_area" +@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%" +@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e" +@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%" +@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b" +@chat(script.scripts):button1 = "/window ${_window_number};/script go ${_chat_line_y}" +@chat(script.scripts):button2 = "/window ${_window_number};/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}" +@chat(script.scripts):wheeldown = "/script down 5" +@chat(script.scripts):wheelup = "/script up 5" +@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}" +@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}" +@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}" +@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}" +@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}" +@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%" +@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%" +@chat:button1 = "/window ${_window_number}" +@chat:button1-gesture-left = "/window ${_window_number};/buffer -1" +@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1" +@chat:button1-gesture-right = "/window ${_window_number};/buffer +1" +@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer" +@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%" +@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%" +@chat:wheeldown = "/window scroll_down -window ${_window_number}" +@chat:wheelup = "/window scroll_up -window ${_window_number}" +@*:button3 = "/cursor go ${_x},${_y}" diff --git a/weechat.symlink/xfer.conf b/weechat.symlink/xfer.conf new file mode 100644 index 0000000..39ac5bd --- /dev/null +++ b/weechat.symlink/xfer.conf @@ -0,0 +1,39 @@ +# +# weechat -- xfer.conf +# + +[look] +auto_open_buffer = on +progress_bar_size = 20 +pv_tags = "notify_private" + +[color] +status_aborted = lightred +status_active = lightblue +status_connecting = yellow +status_done = lightgreen +status_failed = lightred +status_waiting = lightcyan +text = default +text_bg = default +text_selected = white + +[network] +blocksize = 65536 +fast_send = on +own_ip = "" +port_range = "" +speed_limit = 0 +timeout = 300 + +[file] +auto_accept_chats = off +auto_accept_files = off +auto_accept_nicks = "" +auto_check_crc32 = off +auto_rename = on +auto_resume = on +convert_spaces = on +download_path = "%h/xfer" +upload_path = "~" +use_nick_in_filename = on From cd062e3347c08df485d5de5419ce305d803aaa66 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 23 Mar 2016 20:38:36 +0200 Subject: [PATCH 078/230] Fugitive --- LICENSE | 2 +- packages/Darwin | 1 - vim/vimrc.symlink | 3 ++- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/LICENSE b/LICENSE index 339f438..96956b6 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2015, Or Elimelech <0r3limelech@gmail.com> +Copyright (c) 2016 Or Elimelech <0r3limelech@gmail.com> Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above diff --git a/packages/Darwin b/packages/Darwin index aff048f..2255515 100755 --- a/packages/Darwin +++ b/packages/Darwin @@ -8,7 +8,6 @@ brew tap neovim/neovim brew install \ ansible \ autojump \ - caskroom/cask/brew-cask \ gnupg2 \ reop \ go \ diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 4054cce..ea82b6b 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -11,6 +11,7 @@ call plug#begin('~/.vim/plugged') Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'gnupg.vim' + Plug 'fugitive.vim' Plug 'vim-coffee-script' Plug 'vitapluvia/vim-gurl' Plug 'unblevable/quick-scope' @@ -18,6 +19,7 @@ call plug#begin('~/.vim/plugged') Plug 'commentary.vim' Plug 'junegunn/fzf' Plug 'junegunn/fzf.vim' + Plug 'elzr/vim-json' call plug#end() filetype plugin indent on @@ -65,7 +67,6 @@ nnoremap f :FZF " Language specifics autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent -autocmd BufNewFile,BufRead *.json set shiftwidth=2 sts=2 expandtab smartindent ft=javascript autocmd FileType java setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent From 80a9b4e0facdc558b7bc1403694008bcf6f42f16 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 4 Apr 2016 18:30:57 +0300 Subject: [PATCH 079/230] Added ignore space history --- vim/vimrc.symlink | 44 +++++++++++++++++++++++++++----------------- zsh/history.zsh | 1 + 2 files changed, 28 insertions(+), 17 deletions(-) create mode 100644 zsh/history.zsh diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index ea82b6b..a2c902a 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -3,23 +3,26 @@ filetype off " vim-plug call plug#begin('~/.vim/plugged') - Plug 'altercation/vim-colors-solarized' - Plug 'fatih/vim-go' - Plug 'rust-lang/rust.vim' - Plug 'ekalinin/Dockerfile.vim' - Plug 'markcornick/vim-terraform' - Plug 'vim-airline/vim-airline' - Plug 'vim-airline/vim-airline-themes' - Plug 'gnupg.vim' - Plug 'fugitive.vim' - Plug 'vim-coffee-script' - Plug 'vitapluvia/vim-gurl' - Plug 'unblevable/quick-scope' - Plug 'tpope/vim-surround' - Plug 'commentary.vim' - Plug 'junegunn/fzf' - Plug 'junegunn/fzf.vim' - Plug 'elzr/vim-json' + +Plug 'altercation/vim-colors-solarized' +Plug 'markcornick/vim-terraform' +Plug 'vim-airline/vim-airline' +Plug 'vim-airline/vim-airline-themes' +Plug 'gnupg.vim' +Plug 'fugitive.vim' +Plug 'vitapluvia/vim-gurl' +Plug 'unblevable/quick-scope' +Plug 'tpope/vim-surround' +Plug 'commentary.vim' +Plug 'junegunn/fzf' +Plug 'junegunn/fzf.vim' +Plug 'fatih/vim-go', { 'for': 'go' } +Plug 'rust-lang/rust.vim', { 'for': 'rust' } +Plug 'ekalinin/Dockerfile.vim' +Plug 'vim-coffee-script', { 'for': 'coffee' } +Plug 'elzr/vim-json', { 'for': 'json' } + +" Add plugins to runtime call plug#end() filetype plugin indent on @@ -52,6 +55,13 @@ set ignorecase " cancel search highlight with space nnoremap :let @/="" +" Copy to OSX clipboard +let os=substitute(system('uname'), '\n', '', '') +if os == 'Darwin' + set clipboard^=unnamed + set clipboard^=unnamedplus" +endif + " vim-go settings let g:go_fmt_command = "goimports" diff --git a/zsh/history.zsh b/zsh/history.zsh new file mode 100644 index 0000000..8fcfde2 --- /dev/null +++ b/zsh/history.zsh @@ -0,0 +1 @@ +setopt HIST_IGNORE_SPACE From c7e309bfa7009c16f90113b2a51928d2d6d2bbcf Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 7 Apr 2016 17:55:20 +0300 Subject: [PATCH 080/230] vimrc --- bootstrap | 4 ++-- vim/vimrc.symlink | 19 ++++++++++++------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/bootstrap b/bootstrap index 17c017e..2bff8d0 100755 --- a/bootstrap +++ b/bootstrap @@ -115,7 +115,7 @@ function Packages() { done } -function Dotfiles_install() { +function DotfilesInstall() { Info 'installing dotfiles' local overwrite_all=false backup_all=false skip_all=false @@ -126,7 +126,7 @@ function Dotfiles_install() { done } -Dotfiles_install +DotfilesInstall # install OS and lang packages if [ "$1" == "packages" ]; then Packages; fi diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index a2c902a..8e4e157 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -4,10 +4,8 @@ filetype off " vim-plug call plug#begin('~/.vim/plugged') -Plug 'altercation/vim-colors-solarized' +" Common stuff Plug 'markcornick/vim-terraform' -Plug 'vim-airline/vim-airline' -Plug 'vim-airline/vim-airline-themes' Plug 'gnupg.vim' Plug 'fugitive.vim' Plug 'vitapluvia/vim-gurl' @@ -16,9 +14,17 @@ Plug 'tpope/vim-surround' Plug 'commentary.vim' Plug 'junegunn/fzf' Plug 'junegunn/fzf.vim' +Plug 'editorconfig/editorconfig-vim' + +" Themes +Plug 'altercation/vim-colors-solarized' +Plug 'vim-airline/vim-airline' +Plug 'vim-airline/vim-airline-themes' + +" Language specific plugins +Plug 'ekalinin/Dockerfile.vim' Plug 'fatih/vim-go', { 'for': 'go' } Plug 'rust-lang/rust.vim', { 'for': 'rust' } -Plug 'ekalinin/Dockerfile.vim' Plug 'vim-coffee-script', { 'for': 'coffee' } Plug 'elzr/vim-json', { 'for': 'json' } @@ -37,7 +43,6 @@ set timeoutlen=1000 set ttimeoutlen=0 set encoding=utf-8 set fileencoding=utf-8 -set showmatch set number set relativenumber set numberwidth=1 @@ -46,13 +51,13 @@ set modelines=5 set laststatus=2 set undofile set mouse=nv + +" Search settings set incsearch " show search matches as you type set showmatch set hlsearch set smartcase " ignore case if search pattern is all lowercase, case-sensitive otherwise set ignorecase - -" cancel search highlight with space nnoremap :let @/="" " Copy to OSX clipboard From bfdd8087aa40045a849dc27c1bddc7a52e5441c0 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 16 May 2016 18:30:51 +0300 Subject: [PATCH 081/230] update stuff --- git/gitconfig.symlink | 2 +- packages/Darwin | 9 +++------ packages/GoPackages | 4 +--- vim/vimrc.symlink | 11 ++++++----- zsh/docker.zsh | 1 - 5 files changed, 11 insertions(+), 16 deletions(-) delete mode 100644 zsh/docker.zsh diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index 7aa617d..f7558a1 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -6,7 +6,7 @@ co = checkout br = branch st = status -s - edit = "!vim `git ls-files -m` -p" + edit = "!nvim `git ls-files -m` -p" [push] default = simple [color] diff --git a/packages/Darwin b/packages/Darwin index 2255515..d3f9d2f 100755 --- a/packages/Darwin +++ b/packages/Darwin @@ -27,11 +27,7 @@ brew install \ tmux \ tree \ weechat \ - wget \ - caddy \ - docker \ - docker-compose \ - docker-machine + wget # Installing cask packages brew cask install \ @@ -41,9 +37,10 @@ brew cask install \ steam \ boxer \ virtualbox \ - otto \ netspot \ torbrowser \ + whatsapp \ + wireshark \ google-chrome \ google-drive \ google-cloud-sdk diff --git a/packages/GoPackages b/packages/GoPackages index 7a05662..2118640 100755 --- a/packages/GoPackages +++ b/packages/GoPackages @@ -1,4 +1,2 @@ github.com/rakyll/boom -github.com/jfrazelle/weather -github.com/otium/ytdl/... -github.com/tools/godep +github.com/kardianos/govendor diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 8e4e157..789b6f3 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -51,6 +51,7 @@ set modelines=5 set laststatus=2 set undofile set mouse=nv +set cursorline " Search settings set incsearch " show search matches as you type @@ -61,11 +62,11 @@ set ignorecase nnoremap :let @/="" " Copy to OSX clipboard -let os=substitute(system('uname'), '\n', '', '') -if os == 'Darwin' - set clipboard^=unnamed - set clipboard^=unnamedplus" -endif +" let os=substitute(system('uname'), '\n', '', '') +" if os == 'Darwin' +" set clipboard^=unnamed +" set clipboard^=unnamedplus" +" endif " vim-go settings let g:go_fmt_command = "goimports" diff --git a/zsh/docker.zsh b/zsh/docker.zsh deleted file mode 100644 index 9337be6..0000000 --- a/zsh/docker.zsh +++ /dev/null @@ -1 +0,0 @@ -eval "$(docker-machine env dev)" From 3d595daa68c0e431c9a5339f18aa666fad6a284c Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 31 Jul 2016 11:26:04 +0300 Subject: [PATCH 082/230] Some changes --- bootstrap | 17 ++++++----------- git/gitconfig.symlink | 2 ++ packages/Darwin | 3 +++ packages/GoPackages | 1 + vim/vimrc.symlink | 7 +++++++ weechat.symlink/weechat.conf | 5 +++++ zsh/google.zsh | 6 +++--- zsh/k8s.zsh | 3 +++ 8 files changed, 30 insertions(+), 14 deletions(-) create mode 100644 zsh/k8s.zsh diff --git a/bootstrap b/bootstrap index 2bff8d0..7eda534 100755 --- a/bootstrap +++ b/bootstrap @@ -26,30 +26,24 @@ function Fail() { } function link_file() { - local src=$1 dst=$2 - + local src=$1 + local dst=$2 local overwrite= backup= skip= local action= if [ -f "$dst" -o -d "$dst" -o -L "$dst" ] then - if [ "$overwrite_all" == "false" ] && [ "$backup_all" == "false" ] && [ "$skip_all" == "false" ] then - local currentSrc="$(readlink $dst)" if [ "$currentSrc" == "$src" ] then - skip=true; - else - User "File already exists: $dst ($(basename "$src")), what do you want to do?\n\ [s]kip, [S]kip all, [o]verwrite, [O]verwrite all, [b]ackup, [B]ackup all?" read -n 1 action - case "$action" in o ) overwrite=true;; @@ -66,9 +60,7 @@ function link_file() { * ) ;; esac - fi - fi overwrite=${overwrite:-$overwrite_all} @@ -129,7 +121,10 @@ function DotfilesInstall() { DotfilesInstall # install OS and lang packages -if [ "$1" == "packages" ]; then Packages; fi +if [ "$1" == "packages" ] +then + Packages +fi # look for install.sh and execute find $DOTFILES -name install.sh | while read installer; do sh -c "${installer}"; done diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index f7558a1..bfd994f 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -2,6 +2,8 @@ name = Or Elimelech email = 0r3limelech@gmail.com [alias] + compare = log --oneline master.. + author = shortlog -s -e ci = commit co = checkout br = branch diff --git a/packages/Darwin b/packages/Darwin index d3f9d2f..9301908 100755 --- a/packages/Darwin +++ b/packages/Darwin @@ -12,6 +12,7 @@ brew install \ reop \ go \ hugo \ + glide \ iperf \ fzf \ jq \ @@ -27,6 +28,7 @@ brew install \ tmux \ tree \ weechat \ + ipcalc wget # Installing cask packages @@ -41,6 +43,7 @@ brew cask install \ torbrowser \ whatsapp \ wireshark \ + openzfs \ google-chrome \ google-drive \ google-cloud-sdk diff --git a/packages/GoPackages b/packages/GoPackages index 2118640..da24af2 100755 --- a/packages/GoPackages +++ b/packages/GoPackages @@ -1,2 +1,3 @@ github.com/rakyll/boom github.com/kardianos/govendor +github.com/nsf/gocode diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 789b6f3..050d94c 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -24,6 +24,7 @@ Plug 'vim-airline/vim-airline-themes' " Language specific plugins Plug 'ekalinin/Dockerfile.vim' Plug 'fatih/vim-go', { 'for': 'go' } +Plug 'nsf/gocode', { 'for': 'go', 'rtp': 'nvim', 'do': '~/.config/nvim/plugged/gocode/nvim/symlink.sh' } Plug 'rust-lang/rust.vim', { 'for': 'rust' } Plug 'vim-coffee-script', { 'for': 'coffee' } Plug 'elzr/vim-json', { 'for': 'json' } @@ -70,6 +71,11 @@ nnoremap :let @/="" " vim-go settings let g:go_fmt_command = "goimports" +au FileType go nmap te (go-test) +au FileType go nmap ds (go-def-split) +au FileType go nmap dv (go-def-vertical) +au FileType go nmap dt (go-def-tab) +au FileType go nmap gd (go-doc) " airline let g:airline_right_sep=' ' @@ -85,5 +91,6 @@ autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType java setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent +autocmd FileType javascript setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab diff --git a/weechat.symlink/weechat.conf b/weechat.symlink/weechat.conf index 252f5ac..472ef4e 100644 --- a/weechat.symlink/weechat.conf +++ b/weechat.symlink/weechat.conf @@ -67,6 +67,7 @@ input_cursor_scroll = 20 input_share = none input_share_overwrite = off input_undo_max = 32 +item_away_message = on item_buffer_filter = "*" item_buffer_zoom = "!" item_mouse_status = "M" @@ -78,6 +79,9 @@ key_bind_safe = on key_grab_delay = 800 mouse = off mouse_timer_delay = 100 +nick_color_force = "" +nick_color_hash = djb2 +nick_color_stop_chars = "_|[" nick_prefix = "" nick_suffix = "" paste_auto_add_newline = on @@ -170,6 +174,7 @@ emphasized = yellow emphasized_bg = magenta input_actions = lightgreen input_text_not_found = red +item_away = yellow nicklist_away = cyan nicklist_group = green separator = blue diff --git a/zsh/google.zsh b/zsh/google.zsh index 534bb8e..103daee 100644 --- a/zsh/google.zsh +++ b/zsh/google.zsh @@ -1,7 +1,7 @@ -alias gssh='gcloud compute ssh' +alias gssh='gcloud compute ssh --ssh-key-file ~/.ssh/id_ed25519' if [[ $(uname) == "Darwin" ]] then - source "/opt/homebrew-cask/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc" - source "/opt/homebrew-cask/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc" + source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc" + source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc" fi diff --git a/zsh/k8s.zsh b/zsh/k8s.zsh new file mode 100644 index 0000000..08d27b8 --- /dev/null +++ b/zsh/k8s.zsh @@ -0,0 +1,3 @@ +# kubectl config view -o jsonpath='{.contexts[0].context.namespace}' +alias kc='kubectl --namespace=production' +alias kca='kubectl get --all-namespaces' From 67e66a1a17871e12cc77624b49f48252889641d4 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 17 Aug 2016 21:40:14 +0300 Subject: [PATCH 083/230] kube --- zsh/k8s.zsh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/zsh/k8s.zsh b/zsh/k8s.zsh index 08d27b8..ab6dbf2 100644 --- a/zsh/k8s.zsh +++ b/zsh/k8s.zsh @@ -1,3 +1,4 @@ -# kubectl config view -o jsonpath='{.contexts[0].context.namespace}' -alias kc='kubectl --namespace=production' +# kubectl command completion +source <(kubectl completion zsh) + alias kca='kubectl get --all-namespaces' From 580ab38280fd5f838cb47e32f2dec2ac53a0f4d7 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 21 Aug 2016 21:03:04 +0300 Subject: [PATCH 084/230] organize in progress --- Brewfile | 43 ++++++++++ README.md | 4 +- bin/dot | 18 ++++ bootstrap | 130 ----------------------------- git/{git.zsh => aliases.zsh} | 1 - git/gitconfig.local.symlink | 5 ++ git/gitignore.symblink | 3 + kubernetes/aliases.zsh | 1 + kubernetes/completion.zsh | 2 + macos/install.sh | 7 ++ packages/Darwin | 49 ----------- packages/OpenBSD | 5 -- script/bootstrap | 156 +++++++++++++++++++++++++++++++++++ script/install | 16 ++++ zsh/k8s.zsh | 4 - zsh/vi-mode.zsh | 21 +++++ zsh/zshrc.symlink | 56 ++++++------- 17 files changed, 300 insertions(+), 221 deletions(-) create mode 100644 Brewfile create mode 100755 bin/dot delete mode 100755 bootstrap rename git/{git.zsh => aliases.zsh} (99%) create mode 100644 git/gitconfig.local.symlink create mode 100644 git/gitignore.symblink create mode 100644 kubernetes/aliases.zsh create mode 100644 kubernetes/completion.zsh create mode 100755 macos/install.sh delete mode 100755 packages/Darwin delete mode 100755 packages/OpenBSD create mode 100755 script/bootstrap create mode 100755 script/install delete mode 100644 zsh/k8s.zsh create mode 100644 zsh/vi-mode.zsh diff --git a/Brewfile b/Brewfile new file mode 100644 index 0000000..2aa5569 --- /dev/null +++ b/Brewfile @@ -0,0 +1,43 @@ +tap 'neovim/neovim' + +# Brews +brew 'ansible' +brew 'autojump' +brew 'gnupg2' +brew 'reop' +brew 'go' +brew 'hugo' +brew 'glide' +brew 'iperf' +brew 'fzf' +brew 'jq' +brew 'keybase' +brew 'mercurial' +brew 'neovim' +brew 'nmap' +brew 'mitmproxy' +brew 'node' +brew 'packer' +brew 'terraform' +brew 'tig' +brew 'tmux' +brew 'tree' +brew 'weechat' +brew 'ipcalc' +brew 'wget' + +# Casks +cask 'flux' +cask 'transmission' +cask 'vlc' +cask 'steam' +cask 'boxer' +cask 'virtualbox' +cask 'netspot' +cask 'torbrowser' +cask 'whatsapp' +cask 'wireshark' +cask 'openzfs' +cask 'google-chrome' +cask 'google-drive' +cask 'google-cloud-sdk' diff --git a/README.md b/README.md index 47c80a4..7244e75 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,9 @@ Helps me automate my environment on new systems. ``` git clone https://github.com/vic3lord/dotfiles ~/.dotfiles -~/.dotfiles/bootstrap +~/.dotfiles/script/bootstrap ``` ## Credits -Borrowed some stuff from [holman/dotfiles](https://github.com/holman/dotfiles) +[holman/dotfiles](https://github.com/holman/dotfiles) diff --git a/bin/dot b/bin/dot new file mode 100755 index 0000000..d69727c --- /dev/null +++ b/bin/dot @@ -0,0 +1,18 @@ +#!/bin/sh +# +# dot +# +# `dot` handles installation, updates, things like that. Run it periodically +# to make sure you're on the latest and greatest. +export ZSH=$HOME/.dotfiles + +# Install homebrew +$ZSH/homebrew/install.sh 2>&1 + +# Upgrade homebrew +echo "› brew update" +brew update + +# Install software +echo "› $ZSH/script/install" +$ZSH/script/install diff --git a/bootstrap b/bootstrap deleted file mode 100755 index 7eda534..0000000 --- a/bootstrap +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env bash -# -# Bootstrap -# -# Help boostrapping a system config files and environment -# -DOTFILES=$HOME/.dotfiles -OS=$(uname) - -function Info() { - printf "\r [ \033[00;34m..\033[0m ] $1\n" -} - -function User() { - printf "\r [ \033[0;33m??\033[0m ] $1\n" -} - -function Success() { - printf "\r\033[2K [ \033[00;32mOK\033[0m ] $1\n" -} - -function Fail() { - printf "\r\033[2K [\033[0;31mFAIL\033[0m] $1\n" - echo '' - exit -} - -function link_file() { - local src=$1 - local dst=$2 - local overwrite= backup= skip= - local action= - - if [ -f "$dst" -o -d "$dst" -o -L "$dst" ] - then - if [ "$overwrite_all" == "false" ] && [ "$backup_all" == "false" ] && [ "$skip_all" == "false" ] - then - local currentSrc="$(readlink $dst)" - - if [ "$currentSrc" == "$src" ] - then - skip=true; - else - User "File already exists: $dst ($(basename "$src")), what do you want to do?\n\ - [s]kip, [S]kip all, [o]verwrite, [O]verwrite all, [b]ackup, [B]ackup all?" - read -n 1 action - case "$action" in - o ) - overwrite=true;; - O ) - overwrite_all=true;; - b ) - backup=true;; - B ) - backup_all=true;; - s ) - skip=true;; - S ) - skip_all=true;; - * ) - ;; - esac - fi - fi - - overwrite=${overwrite:-$overwrite_all} - backup=${backup:-$backup_all} - skip=${skip:-$skip_all} - - if [ "$overwrite" == "true" ] - then - rm -rf "$dst" - Success "removed $dst" - fi - - if [ "$backup" == "true" ] - then - mv "$dst" "${dst}.backup" - Success "moved $dst to ${dst}.backup" - fi - - if [ "$skip" == "true" ] - then - Success "skipped $src" - fi - fi - - if [ "$skip" != "true" ] # "false" or empty - then - ln -s "$1" "$2" - Success "linked $1 to $2" - fi -} - -function Packages() { - if [ -f $DOTFILES/packages/$OS ] - then - $DOTFILES/packages/$OS - else - Fail "Unsupported OS: ${OS}" - fi - - echo "Install Go packages" - for pkg in $(cat $DOTFILES/packages/GoPackages) - do - go get -u $pkg - done -} - -function DotfilesInstall() { - Info 'installing dotfiles' - local overwrite_all=false backup_all=false skip_all=false - - for src in $(find -H "$DOTFILES" -maxdepth 2 -name '*.symlink') - do - dst="$HOME/.$(basename "${src%.*}")" - link_file "$src" "$dst" - done -} - -DotfilesInstall - -# install OS and lang packages -if [ "$1" == "packages" ] -then - Packages -fi - -# look for install.sh and execute -find $DOTFILES -name install.sh | while read installer; do sh -c "${installer}"; done diff --git a/git/git.zsh b/git/aliases.zsh similarity index 99% rename from git/git.zsh rename to git/aliases.zsh index 6603d9f..c654297 100644 --- a/git/git.zsh +++ b/git/aliases.zsh @@ -5,4 +5,3 @@ alias tig="tig --show-signature" function gi() { curl -L -s https://www.gitignore.io/api/$@ } - diff --git a/git/gitconfig.local.symlink b/git/gitconfig.local.symlink new file mode 100644 index 0000000..3fdc363 --- /dev/null +++ b/git/gitconfig.local.symlink @@ -0,0 +1,5 @@ +[user] + name = AUTHORNAME + email = AUTHOREMAIL +[credential] + helper = GIT_CREDENTIAL_HELPER diff --git a/git/gitignore.symblink b/git/gitignore.symblink new file mode 100644 index 0000000..6fd41c0 --- /dev/null +++ b/git/gitignore.symblink @@ -0,0 +1,3 @@ +.DS_Store +*~ +*.swp diff --git a/kubernetes/aliases.zsh b/kubernetes/aliases.zsh new file mode 100644 index 0000000..0d0f309 --- /dev/null +++ b/kubernetes/aliases.zsh @@ -0,0 +1 @@ +alias kca='kubectl get --all-namespaces' diff --git a/kubernetes/completion.zsh b/kubernetes/completion.zsh new file mode 100644 index 0000000..935f2ff --- /dev/null +++ b/kubernetes/completion.zsh @@ -0,0 +1,2 @@ +source <(kubectl completion zsh) + diff --git a/macos/install.sh b/macos/install.sh new file mode 100755 index 0000000..b8a11de --- /dev/null +++ b/macos/install.sh @@ -0,0 +1,7 @@ +# The Brewfile handles Homebrew-based app and library installs, but there may +# still be updates and installables in the Mac App Store. There's a nifty +# command line interface to it that we can use to just install everything, so +# yeah, let's do that. + +echo "› sudo softwareupdate -i -a" +sudo softwareupdate -i -a diff --git a/packages/Darwin b/packages/Darwin deleted file mode 100755 index 9301908..0000000 --- a/packages/Darwin +++ /dev/null @@ -1,49 +0,0 @@ -# Updating cache -brew update - -# Adding custom taps -brew tap neovim/neovim - -# Installing packages -brew install \ - ansible \ - autojump \ - gnupg2 \ - reop \ - go \ - hugo \ - glide \ - iperf \ - fzf \ - jq \ - keybase \ - mercurial \ - neovim \ - nmap \ - mitmproxy \ - node \ - packer \ - terraform \ - tig \ - tmux \ - tree \ - weechat \ - ipcalc - wget - -# Installing cask packages -brew cask install \ - flux \ - transmission \ - vlc \ - steam \ - boxer \ - virtualbox \ - netspot \ - torbrowser \ - whatsapp \ - wireshark \ - openzfs \ - google-chrome \ - google-drive \ - google-cloud-sdk diff --git a/packages/OpenBSD b/packages/OpenBSD deleted file mode 100755 index 8a30dc3..0000000 --- a/packages/OpenBSD +++ /dev/null @@ -1,5 +0,0 @@ -# Install packages -pkg_add -v \ - vim \ - go \ - zsh diff --git a/script/bootstrap b/script/bootstrap new file mode 100755 index 0000000..192e165 --- /dev/null +++ b/script/bootstrap @@ -0,0 +1,156 @@ +#!/usr/bin/env bash +# +# bootstrap installs things. + +cd "$(dirname "$0")/.." +DOTFILES_ROOT=$(pwd -P) + +set -e + +echo '' + +info () { + printf "\r [ \033[00;34m..\033[0m ] $1\n" +} + +user () { + printf "\r [ \033[0;33m??\033[0m ] $1\n" +} + +success () { + printf "\r\033[2K [ \033[00;32mOK\033[0m ] $1\n" +} + +fail () { + printf "\r\033[2K [\033[0;31mFAIL\033[0m] $1\n" + echo '' + exit +} + +setup_gitconfig () { + if ! [ -f git/gitconfig.local.symlink ] + then + info 'setup gitconfig' + + git_credential='cache' + if [ "$(uname -s)" == "Darwin" ] + then + git_credential='osxkeychain' + fi + + user ' - What is your github author name?' + read -e git_authorname + user ' - What is your github author email?' + read -e git_authoremail + + sed -e "s/AUTHORNAME/$git_authorname/g" -e "s/AUTHOREMAIL/$git_authoremail/g" -e "s/GIT_CREDENTIAL_HELPER/$git_credential/g" git/gitconfig.local.symlink.example > git/gitconfig.local.symlink + + success 'gitconfig' + fi +} + + +link_file () { + local src=$1 dst=$2 + + local overwrite= backup= skip= + local action= + + if [ -f "$dst" -o -d "$dst" -o -L "$dst" ] + then + + if [ "$overwrite_all" == "false" ] && [ "$backup_all" == "false" ] && [ "$skip_all" == "false" ] + then + + local currentSrc="$(readlink $dst)" + + if [ "$currentSrc" == "$src" ] + then + + skip=true; + + else + + user "File already exists: $dst ($(basename "$src")), what do you want to do?\n\ + [s]kip, [S]kip all, [o]verwrite, [O]verwrite all, [b]ackup, [B]ackup all?" + read -n 1 action + + case "$action" in + o ) + overwrite=true;; + O ) + overwrite_all=true;; + b ) + backup=true;; + B ) + backup_all=true;; + s ) + skip=true;; + S ) + skip_all=true;; + * ) + ;; + esac + + fi + + fi + + overwrite=${overwrite:-$overwrite_all} + backup=${backup:-$backup_all} + skip=${skip:-$skip_all} + + if [ "$overwrite" == "true" ] + then + rm -rf "$dst" + success "removed $dst" + fi + + if [ "$backup" == "true" ] + then + mv "$dst" "${dst}.backup" + success "moved $dst to ${dst}.backup" + fi + + if [ "$skip" == "true" ] + then + success "skipped $src" + fi + fi + + if [ "$skip" != "true" ] # "false" or empty + then + ln -s "$1" "$2" + success "linked $1 to $2" + fi +} + +install_dotfiles () { + info 'installing dotfiles' + + local overwrite_all=false backup_all=false skip_all=false + + for src in $(find -H "$DOTFILES_ROOT" -maxdepth 2 -name '*.symlink' -not -path '*.git*') + do + dst="$HOME/.$(basename "${src%.*}")" + link_file "$src" "$dst" + done +} + +setup_gitconfig +install_dotfiles + +# If we're on a Mac, let's install and setup homebrew. +if [ "$(uname -s)" == "Darwin" ] +then + info "installing dependencies" + if source bin/dot > /tmp/dotfiles-dot 2>&1 + then + success "dependencies installed" + else + fail "error installing dependencies" + fi +fi + +echo '' +echo ' All installed!' diff --git a/script/install b/script/install new file mode 100755 index 0000000..e154bce --- /dev/null +++ b/script/install @@ -0,0 +1,16 @@ +#!/usr/bin/env bash +# +# Run all dotfiles installers. + +set -e + +cd "$(dirname $0)"/.. + +# Run Homebrew through the Brewfile +echo "› brew bundle" +brew bundle + +if + +# find the installers and run them iteratively +find . -name install.sh | while read installer ; do sh -c "${installer}" ; done diff --git a/zsh/k8s.zsh b/zsh/k8s.zsh deleted file mode 100644 index ab6dbf2..0000000 --- a/zsh/k8s.zsh +++ /dev/null @@ -1,4 +0,0 @@ -# kubectl command completion -source <(kubectl completion zsh) - -alias kca='kubectl get --all-namespaces' diff --git a/zsh/vi-mode.zsh b/zsh/vi-mode.zsh new file mode 100644 index 0000000..3c1c355 --- /dev/null +++ b/zsh/vi-mode.zsh @@ -0,0 +1,21 @@ +bindkey -v +export KEYTIMEOUT=1 + +# Use vim cli mode +bindkey '^P' up-history +bindkey '^N' down-history + +# backspace and ^h working even after +# returning from command mode +bindkey '^?' backward-delete-char +bindkey '^h' backward-delete-char + +# ctrl-w removed word backwards +bindkey '^w' backward-kill-word + +# ctrl-r starts searching history backward +bindkey '^r' history-incremental-search-backward + +autoload -U edit-command-line +zle -N edit-command-line +bindkey -M vicmd v edit-command-line diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index ac077d1..0ab3bec 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -17,43 +17,39 @@ plugins=(git golang docker vagrant brew) source $ZSH/oh-my-zsh.sh -# -# User configuration -# - export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin" +export LC_ALL=en_US.UTF-8 +export LANG=en_US.UTF-8 -# ZSH Vi Mode -bindkey -v -export KEYTIMEOUT=1 - -# Use vim cli mode -bindkey '^P' up-history -bindkey '^N' down-history +if [[ -a ~/.localrc ]] +then + source ~/.localrc +fi -# backspace and ^h working even after -# returning from command mode -bindkey '^?' backward-delete-char -bindkey '^h' backward-delete-char +# all of our zsh files +typeset -U config_files +config_files=($ZSH/**/*.zsh) -# ctrl-w removed word backwards -bindkey '^w' backward-kill-word +# load the path files +for file in ${(M)config_files:#*/path.zsh} +do + source $file +done -# ctrl-r starts searching history backward -bindkey '^r' history-incremental-search-backward +# load everything but the path and completion files +for file in ${${config_files:#*/path.zsh}:#*/completion.zsh} +do + source $file +done -autoload -U edit-command-line -zle -N edit-command-line -bindkey -M vicmd v edit-command-line +# initialize autocomplete here, otherwise functions won't be loaded +autoload -U compinit +compinit -# Load *.zsh files -for file in $(ls $DOTFILES/**/*.zsh) +# load every completion after autocomplete loads +for file in ${(M)config_files:#*/completion.zsh} do - source $file + source $file done -# Load ~/.local.zsh for local functions and vars -if [ -f $HOME/.local.zsh ] -then - source $HOME/.local.zsh -fi +unset config_files From 1724a2a5523f4d5eb9840b07d0a9d1b8c438a531 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 21 Aug 2016 21:14:58 +0300 Subject: [PATCH 085/230] wip --- .gitignore | 1 + git/gitconfig.local.symlink | 6 +++--- git/gitconfig.local.symlink.example | 5 +++++ git/gitconfig.symlink | 5 ++--- 4 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 git/gitconfig.local.symlink.example diff --git a/.gitignore b/.gitignore index e69de29..1b67d59 100644 --- a/.gitignore +++ b/.gitignore @@ -0,0 +1 @@ +git/gitconfig.local.symlink diff --git a/git/gitconfig.local.symlink b/git/gitconfig.local.symlink index 3fdc363..5afd167 100644 --- a/git/gitconfig.local.symlink +++ b/git/gitconfig.local.symlink @@ -1,5 +1,5 @@ [user] - name = AUTHORNAME - email = AUTHOREMAIL + name = Or Elimelech + email = or.elimelech@blazemeter.com [credential] - helper = GIT_CREDENTIAL_HELPER + helper = osxkeychain diff --git a/git/gitconfig.local.symlink.example b/git/gitconfig.local.symlink.example new file mode 100644 index 0000000..3fdc363 --- /dev/null +++ b/git/gitconfig.local.symlink.example @@ -0,0 +1,5 @@ +[user] + name = AUTHORNAME + email = AUTHOREMAIL +[credential] + helper = GIT_CREDENTIAL_HELPER diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index bfd994f..bf8f648 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -1,6 +1,5 @@ -[user] - name = Or Elimelech - email = 0r3limelech@gmail.com +[include] + path = ~/.gitconfig.local [alias] compare = log --oneline master.. author = shortlog -s -e From 095a9d7c79c3b3bc5fbb6832090e3fa35879aba7 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 21 Aug 2016 21:49:58 +0300 Subject: [PATCH 086/230] done... --- google/aliases.zsh | 1 + zsh/google.zsh => google/completion.zsh | 2 -- {zsh => system}/keys.zsh | 0 {zsh => system}/openssl.zsh | 0 {zsh => system}/proxy.zsh | 0 zsh/install.sh | 2 +- zsh/lang.zsh | 2 ++ zsh/zshrc.symlink | 18 +++++------------- 8 files changed, 9 insertions(+), 16 deletions(-) create mode 100644 google/aliases.zsh rename zsh/google.zsh => google/completion.zsh (76%) rename {zsh => system}/keys.zsh (100%) rename {zsh => system}/openssl.zsh (100%) rename {zsh => system}/proxy.zsh (100%) create mode 100644 zsh/lang.zsh diff --git a/google/aliases.zsh b/google/aliases.zsh new file mode 100644 index 0000000..5d2803e --- /dev/null +++ b/google/aliases.zsh @@ -0,0 +1 @@ +alias gssh='gcloud compute ssh --ssh-key-file ~/.ssh/id_ed25519' diff --git a/zsh/google.zsh b/google/completion.zsh similarity index 76% rename from zsh/google.zsh rename to google/completion.zsh index 103daee..17e7de2 100644 --- a/zsh/google.zsh +++ b/google/completion.zsh @@ -1,5 +1,3 @@ -alias gssh='gcloud compute ssh --ssh-key-file ~/.ssh/id_ed25519' - if [[ $(uname) == "Darwin" ]] then source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc" diff --git a/zsh/keys.zsh b/system/keys.zsh similarity index 100% rename from zsh/keys.zsh rename to system/keys.zsh diff --git a/zsh/openssl.zsh b/system/openssl.zsh similarity index 100% rename from zsh/openssl.zsh rename to system/openssl.zsh diff --git a/zsh/proxy.zsh b/system/proxy.zsh similarity index 100% rename from zsh/proxy.zsh rename to system/proxy.zsh diff --git a/zsh/install.sh b/zsh/install.sh index feb7a5f..e64d5a6 100755 --- a/zsh/install.sh +++ b/zsh/install.sh @@ -5,5 +5,5 @@ if [ ! -d ~/.oh-my-zsh ] then echo "Installing oh-my-zsh" - curl -L https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh | sh + sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" fi diff --git a/zsh/lang.zsh b/zsh/lang.zsh new file mode 100644 index 0000000..1164e59 --- /dev/null +++ b/zsh/lang.zsh @@ -0,0 +1,2 @@ +export LC_ALL=en_US.UTF-8 +export LANG=en_US.UTF-8 diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index 0ab3bec..72c13b4 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -1,26 +1,18 @@ # Dotfiles location DOTFILES=$HOME/.dotfiles -# Path to your oh-my-zsh installation. +# Oh-my-zsh export ZSH=$HOME/.oh-my-zsh - -# Theme ZSH_THEME="sorin" +plugins=(git golang docker vagrant brew) +source $ZSH/oh-my-zsh.sh # Special dirs zstyle ':completion:*' special-dirs true -# -# ZSH Plugins -# -plugins=(git golang docker vagrant brew) - -source $ZSH/oh-my-zsh.sh - export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin" -export LC_ALL=en_US.UTF-8 -export LANG=en_US.UTF-8 +# store sensitive stuff here if [[ -a ~/.localrc ]] then source ~/.localrc @@ -28,7 +20,7 @@ fi # all of our zsh files typeset -U config_files -config_files=($ZSH/**/*.zsh) +config_files=($DOTFILES/**/*.zsh) # load the path files for file in ${(M)config_files:#*/path.zsh} From 04553a592a4c6b5f05fe33f2b74c44ae1c06db6f Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 21 Aug 2016 22:45:41 +0300 Subject: [PATCH 087/230] fzf; removed vi-mode file as it conflicts with fzf bindings --- fzf/completion.zsh | 1 + fzf/fzf.zsh | 2 ++ fzf/path.zsh | 7 +++++++ zsh/fzf.zsh | 20 -------------------- zsh/vi-mode.zsh | 21 --------------------- zsh/zshrc.symlink | 23 +++++++++++++++++++++++ 6 files changed, 33 insertions(+), 41 deletions(-) create mode 100644 fzf/completion.zsh create mode 100644 fzf/fzf.zsh create mode 100644 fzf/path.zsh delete mode 100644 zsh/fzf.zsh delete mode 100644 zsh/vi-mode.zsh diff --git a/fzf/completion.zsh b/fzf/completion.zsh new file mode 100644 index 0000000..abcde27 --- /dev/null +++ b/fzf/completion.zsh @@ -0,0 +1 @@ +[[ $- == *i* ]] && source "/usr/local/opt/fzf/shell/completion.zsh" 2> /dev/null diff --git a/fzf/fzf.zsh b/fzf/fzf.zsh new file mode 100644 index 0000000..cf8a67f --- /dev/null +++ b/fzf/fzf.zsh @@ -0,0 +1,2 @@ +source "/usr/local/opt/fzf/shell/key-bindings.zsh" + diff --git a/fzf/path.zsh b/fzf/path.zsh new file mode 100644 index 0000000..a40afd7 --- /dev/null +++ b/fzf/path.zsh @@ -0,0 +1,7 @@ +if [[ ! "$PATH" == */usr/local/opt/fzf/bin* ]]; then + export PATH="$PATH:/usr/local/opt/fzf/bin" +fi + +if [[ ! "$MANPATH" == */usr/local/opt/fzf/man* && -d "/usr/local/opt/fzf/man" ]]; then + export MANPATH="$MANPATH:/usr/local/opt/fzf/man" +fi diff --git a/zsh/fzf.zsh b/zsh/fzf.zsh deleted file mode 100644 index 441dd5e..0000000 --- a/zsh/fzf.zsh +++ /dev/null @@ -1,20 +0,0 @@ -# Setup fzf -# --------- -if [[ ! "$PATH" == */usr/local/opt/fzf/bin* ]]; then - export PATH="$PATH:/usr/local/opt/fzf/bin" -fi - -# Man path -# -------- -if [[ ! "$MANPATH" == */usr/local/opt/fzf/man* && -d "/usr/local/opt/fzf/man" ]]; then - export MANPATH="$MANPATH:/usr/local/opt/fzf/man" -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/zsh/vi-mode.zsh b/zsh/vi-mode.zsh deleted file mode 100644 index 3c1c355..0000000 --- a/zsh/vi-mode.zsh +++ /dev/null @@ -1,21 +0,0 @@ -bindkey -v -export KEYTIMEOUT=1 - -# Use vim cli mode -bindkey '^P' up-history -bindkey '^N' down-history - -# backspace and ^h working even after -# returning from command mode -bindkey '^?' backward-delete-char -bindkey '^h' backward-delete-char - -# ctrl-w removed word backwards -bindkey '^w' backward-kill-word - -# ctrl-r starts searching history backward -bindkey '^r' history-incremental-search-backward - -autoload -U edit-command-line -zle -N edit-command-line -bindkey -M vicmd v edit-command-line diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index 72c13b4..929a77a 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -12,6 +12,29 @@ zstyle ':completion:*' special-dirs true export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin" +# vi-mode +bindkey -v +export KEYTIMEOUT=1 + +# Use vim cli mode +bindkey '^P' up-history +bindkey '^N' down-history + +# backspace and ^h working even after +# returning from command mode +bindkey '^?' backward-delete-char +bindkey '^h' backward-delete-char + +# ctrl-w removed word backwards +bindkey '^w' backward-kill-word + +# ctrl-r starts searching history backward +bindkey '^r' history-incremental-search-backward + +autoload -U edit-command-line +zle -N edit-command-line +bindkey -M vicmd v edit-command-line + # store sensitive stuff here if [[ -a ~/.localrc ]] then From ab4a058ed05ddf24bd6f477e5ea7a17ac163952d Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 21 Aug 2016 22:46:25 +0300 Subject: [PATCH 088/230] trim space --- system/openssl.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/system/openssl.zsh b/system/openssl.zsh index 8412531..044fa94 100644 --- a/system/openssl.zsh +++ b/system/openssl.zsh @@ -1,3 +1,3 @@ -function print_ssl() { +function print_ssl() { openssl x509 -in $1 -inform PEM -text } From 82275221ab701f8f003a1676e96dfed2aeb98e8d Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 09:51:57 +0300 Subject: [PATCH 089/230] load only if kubectl installed --- kubernetes/completion.zsh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/kubernetes/completion.zsh b/kubernetes/completion.zsh index 935f2ff..7ab696c 100644 --- a/kubernetes/completion.zsh +++ b/kubernetes/completion.zsh @@ -1,2 +1,5 @@ -source <(kubectl completion zsh) +if $(test $(which kubectl) 2>/dev/null) +then + source <(kubectl completion zsh) +fi From 1d0445fb6f728db36e156d0c27b42a3a0da7fd1e Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 13:19:00 +0300 Subject: [PATCH 090/230] fzf colors --- fzf/fzf.zsh | 5 ++++- zsh/zshrc.symlink | 8 ++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/fzf/fzf.zsh b/fzf/fzf.zsh index cf8a67f..bed53aa 100644 --- a/fzf/fzf.zsh +++ b/fzf/fzf.zsh @@ -1,2 +1,5 @@ +export FZF_DEFAULT_OPTS=' + --color dark,hl:33,hl+:37,fg+:235,bg+:136,fg+:254 + --color info:254,prompt:37,spinner:108,pointer:235,marker:235 +' source "/usr/local/opt/fzf/shell/key-bindings.zsh" - diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index 929a77a..cbc9046 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -1,10 +1,10 @@ # Dotfiles location DOTFILES=$HOME/.dotfiles -# Oh-my-zsh +# oh-my-zsh export ZSH=$HOME/.oh-my-zsh ZSH_THEME="sorin" -plugins=(git golang docker vagrant brew) +plugins=(git docker golang) source $ZSH/oh-my-zsh.sh # Special dirs @@ -28,8 +28,8 @@ bindkey '^h' backward-delete-char # ctrl-w removed word backwards bindkey '^w' backward-kill-word -# ctrl-r starts searching history backward -bindkey '^r' history-incremental-search-backward +# ctrl-r starts searching history backward (overridden by fzf) +# bindkey '^r' history-incremental-search-backward autoload -U edit-command-line zle -N edit-command-line From 2e805cdfff23fef4a2daabf70ab5a5b0609ad9d8 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 14:55:17 +0300 Subject: [PATCH 091/230] get rid of oh-my-zsh --- zsh/config.zsh | 39 ++++++++++++++++++++++ zsh/install.sh | 5 ++- zsh/prompt.zsh | 82 +++++++++++++++++++++++++++++++++++++++++++++++ zsh/window.zsh | 18 +++++++++++ zsh/zshrc.symlink | 9 ++---- 5 files changed, 143 insertions(+), 10 deletions(-) create mode 100644 zsh/config.zsh create mode 100644 zsh/prompt.zsh create mode 100644 zsh/window.zsh diff --git a/zsh/config.zsh b/zsh/config.zsh new file mode 100644 index 0000000..53f596e --- /dev/null +++ b/zsh/config.zsh @@ -0,0 +1,39 @@ +if [[ -n $SSH_CONNECTION ]]; then + export PS1='%m:%3~$(git_info_for_prompt)%# ' +else + export PS1='%3~$(git_info_for_prompt)%# ' +fi + +export LSCOLORS="exfxcxdxbxegedabagacad" +export CLICOLOR=true + +HISTFILE=~/.zsh_history +HISTSIZE=10000 +SAVEHIST=10000 + +setopt NO_BG_NICE # don't nice background tasks +setopt NO_HUP +setopt NO_LIST_BEEP +setopt LOCAL_OPTIONS # allow functions to have local options +setopt LOCAL_TRAPS # allow functions to have local traps +setopt HIST_VERIFY +setopt SHARE_HISTORY # share history between sessions ??? +setopt EXTENDED_HISTORY # add timestamps to history +setopt PROMPT_SUBST +setopt CORRECT +setopt COMPLETE_IN_WORD +setopt IGNORE_EOF + +setopt APPEND_HISTORY # adds history +setopt INC_APPEND_HISTORY SHARE_HISTORY # adds history incrementally and share it across sessions +setopt HIST_IGNORE_ALL_DUPS # don't record dupes in history +setopt HIST_REDUCE_BLANKS + +# don't expand aliases _before_ completion has finished +# like: git comm-[tab] +setopt complete_aliases + +zle -N newtab + +autoload -U select-word-style +select-word-style bash diff --git a/zsh/install.sh b/zsh/install.sh index e64d5a6..f3b2286 100755 --- a/zsh/install.sh +++ b/zsh/install.sh @@ -2,8 +2,7 @@ # # install oh-my-zsh -if [ ! -d ~/.oh-my-zsh ] +if [ ! $SHELL == /bin/zsh ] then - echo "Installing oh-my-zsh" - sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)" + chsh -s /bin/zsh fi diff --git a/zsh/prompt.zsh b/zsh/prompt.zsh new file mode 100644 index 0000000..2e96295 --- /dev/null +++ b/zsh/prompt.zsh @@ -0,0 +1,82 @@ +autoload colors && colors +# cheers, @ehrenmurdick +# http://github.com/ehrenmurdick/config/blob/master/zsh/prompt.zsh + +if (( $+commands[git] )) +then + git="$commands[git]" +else + git="/usr/bin/git" +fi + +git_branch() { + echo $($git symbolic-ref HEAD 2>/dev/null | awk -F/ {'print $NF'}) +} + +git_dirty() { + if $(! $git status -s &> /dev/null) + then + echo "" + else + if [[ $($git status --porcelain) == "" ]] + then + echo "on %{$fg_bold[green]%}$(git_prompt_info)%{$reset_color%}" + else + echo "on %{$fg_bold[red]%}$(git_prompt_info)%{$reset_color%}" + fi + fi +} + +git_prompt_info () { + ref=$($git symbolic-ref HEAD 2>/dev/null) || return +# echo "(%{\e[0;33m%}${ref#refs/heads/}%{\e[0m%})" + echo "${ref#refs/heads/}" +} + +unpushed () { + $git cherry -v @{upstream} 2>/dev/null +} + +need_push () { + if [[ $(unpushed) == "" ]] + then + echo " " + else + echo " with %{$fg_bold[magenta]%}unpushed%{$reset_color%} " + fi +} + +ruby_version() { + if (( $+commands[rbenv] )) + then + echo "$(rbenv version | awk '{print $1}')" + fi + + if (( $+commands[rvm-prompt] )) + then + echo "$(rvm-prompt | awk '{print $1}')" + fi +} + +rb_prompt() { + if ! [[ -z "$(ruby_version)" ]] + then + echo "%{$fg_bold[yellow]%}$(ruby_version)%{$reset_color%} " + else + echo "" + fi +} + +directory_name() { + echo "%{$fg_bold[cyan]%}%1/%\/%{$reset_color%}" +} + +export PROMPT=$'\n$(rb_prompt)in $(directory_name) $(git_dirty)$(need_push)\n› ' +set_prompt () { + export RPROMPT="%{$fg_bold[cyan]%}%{$reset_color%}" +} + +precmd() { + title "zsh" "%m" "%55<...<%~" + set_prompt +} diff --git a/zsh/window.zsh b/zsh/window.zsh new file mode 100644 index 0000000..f07e67d --- /dev/null +++ b/zsh/window.zsh @@ -0,0 +1,18 @@ +# From http://dotfiles.org/~_why/.zshrc +# Sets the window title nicely no matter where you are +function title() { + # escape '%' chars in $1, make nonprintables visible + a=${(V)1//\%/\%\%} + + # Truncate command, and join lines. + a=$(print -Pn "%40>...>$a" | tr -d "\n") + + case $TERM in + screen) + print -Pn "\ek$a:$3\e\\" # screen title (in ^A") + ;; + xterm*|rxvt) + print -Pn "\e]2;$2\a" # plain xterm title ($3 for pwd) + ;; + esac +} diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index cbc9046..ec58ec5 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -1,17 +1,12 @@ # Dotfiles location DOTFILES=$HOME/.dotfiles -# oh-my-zsh -export ZSH=$HOME/.oh-my-zsh -ZSH_THEME="sorin" -plugins=(git docker golang) -source $ZSH/oh-my-zsh.sh +# PATH +export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin" # Special dirs zstyle ':completion:*' special-dirs true -export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin" - # vi-mode bindkey -v export KEYTIMEOUT=1 From 3ff3379625a79c99ed838e1ceba687afe2ba1c1b Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 15:02:14 +0300 Subject: [PATCH 092/230] changed prompt --- zsh/aliases.zsh | 2 ++ zsh/prompt.zsh | 16 ++++++++-------- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/zsh/aliases.zsh b/zsh/aliases.zsh index d7742c8..7486840 100644 --- a/zsh/aliases.zsh +++ b/zsh/aliases.zsh @@ -1 +1,3 @@ alias reload!=". ~/.zshrc" +alias ..="cd .." +alias ...="cd ../.." diff --git a/zsh/prompt.zsh b/zsh/prompt.zsh index 2e96295..787a583 100644 --- a/zsh/prompt.zsh +++ b/zsh/prompt.zsh @@ -16,14 +16,14 @@ git_branch() { git_dirty() { if $(! $git status -s &> /dev/null) then - echo "" + echo "" else - if [[ $($git status --porcelain) == "" ]] - then - echo "on %{$fg_bold[green]%}$(git_prompt_info)%{$reset_color%}" - else - echo "on %{$fg_bold[red]%}$(git_prompt_info)%{$reset_color%}" - fi + if [[ $($git status --porcelain) == "" ]] + then + echo "(%{$fg_bold[green]%}$(git_prompt_info)%{$reset_color%})" + else + echo "(%{$fg_bold[red]%}$(git_prompt_info)%{$reset_color%})" + fi fi } @@ -71,7 +71,7 @@ directory_name() { echo "%{$fg_bold[cyan]%}%1/%\/%{$reset_color%}" } -export PROMPT=$'\n$(rb_prompt)in $(directory_name) $(git_dirty)$(need_push)\n› ' +export PROMPT=$'\n$(rb_prompt)$(directory_name) $(git_dirty)$(need_push)\n› ' set_prompt () { export RPROMPT="%{$fg_bold[cyan]%}%{$reset_color%}" } From ccfc875d3f838f4f390999c4946d46fda268215c Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 15:06:11 +0300 Subject: [PATCH 093/230] removed trailing slash --- zsh/prompt.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zsh/prompt.zsh b/zsh/prompt.zsh index 787a583..186a010 100644 --- a/zsh/prompt.zsh +++ b/zsh/prompt.zsh @@ -68,7 +68,7 @@ rb_prompt() { } directory_name() { - echo "%{$fg_bold[cyan]%}%1/%\/%{$reset_color%}" + echo "%{$fg_bold[cyan]%}%1/%{$reset_color%}" } export PROMPT=$'\n$(rb_prompt)$(directory_name) $(git_dirty)$(need_push)\n› ' From 07f547b957209b01847124c00bb21d6f781e1b14 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 15:47:24 +0300 Subject: [PATCH 094/230] Changed prompt again --- zsh/prompt.zsh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/zsh/prompt.zsh b/zsh/prompt.zsh index 186a010..ddd433f 100644 --- a/zsh/prompt.zsh +++ b/zsh/prompt.zsh @@ -20,9 +20,9 @@ git_dirty() { else if [[ $($git status --porcelain) == "" ]] then - echo "(%{$fg_bold[green]%}$(git_prompt_info)%{$reset_color%})" + echo ":%{$fg_bold[green]%}$(git_prompt_info)%{$reset_color%}" else - echo "(%{$fg_bold[red]%}$(git_prompt_info)%{$reset_color%})" + echo ":%{$fg_bold[red]%}$(git_prompt_info)%{$reset_color%}" fi fi } @@ -71,7 +71,7 @@ directory_name() { echo "%{$fg_bold[cyan]%}%1/%{$reset_color%}" } -export PROMPT=$'\n$(rb_prompt)$(directory_name) $(git_dirty)$(need_push)\n› ' +export PROMPT=$'\n$(rb_prompt)$(directory_name)$(git_dirty)$(need_push)\n› ' set_prompt () { export RPROMPT="%{$fg_bold[cyan]%}%{$reset_color%}" } From 634a3f57fab8e881862a9b09af8dfbd50b88538d Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 15:55:44 +0300 Subject: [PATCH 095/230] changed workspace directory --- go/path.zsh | 2 +- zsh/zshrc.symlink | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/go/path.zsh b/go/path.zsh index 82d6d44..e27cb19 100644 --- a/go/path.zsh +++ b/go/path.zsh @@ -1,2 +1,2 @@ -export GOPATH="$HOME/go" +export GOPATH="$WORKSPACE/go" export PATH="$GOPATH/bin:$PATH" diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index ec58ec5..18aa101 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -1,5 +1,6 @@ # Dotfiles location DOTFILES=$HOME/.dotfiles +WORKSPACE=$HOME/space # PATH export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin" From e13f70713c0e13414feff173a2f7405d2e2560a8 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 17:28:39 +0300 Subject: [PATCH 096/230] completion fpath --- docker/_docker | 439 +++++++++++++++++++++++++++++++++++++++++++++++++ zsh/config.zsh | 4 + zsh/fpath.zsh | 2 + 3 files changed, 445 insertions(+) create mode 100644 docker/_docker create mode 100644 zsh/fpath.zsh diff --git a/docker/_docker b/docker/_docker new file mode 100644 index 0000000..a82a31a --- /dev/null +++ b/docker/_docker @@ -0,0 +1,439 @@ +#compdef docker + +# Docker autocompletion for oh-my-zsh +# Requires: Docker installed +# Author: Azaan (@aeonazaan) +# Updates: Bob Maerten (@bobmaerten) for Docker v0.9+ +# Paul van den Berg (@bergvandenp) for Docker v1.3+ + + +# ----- Helper functions +# Output a selectable list of all running docker containers +__docker_containers() { + declare -a cont_cmd + cont_cmd=($(docker ps | awk 'NR>1{print $NF":[CON("$1")"$2"("$3")]"}')) + if [[ 'X$cont_cmd' != 'X' ]] + _describe 'containers' cont_cmd +} + +# Output a selectable list of all containers, even not running +__docker_all_containers() { + declare -a cont_cmd + cont_cmd=($(docker ps -a | awk 'NR>1{print $NF":[CON("$1")"$2"("$3")]"}')) + if [[ 'X$cont_cmd' != 'X' ]] + _describe 'containers' cont_cmd +} + +# output a selectable list of all docker images +__docker_images() { + declare -a img_cmd + img_cmd=($(docker images | awk 'NR>1{print $1}'| sed 's/:/\\:/g')) + _describe 'images' img_cmd +} + +# ----- Commands +# Seperate function for each command, makes extension easier later +# --------------------------- +__attach() { + _arguments \ + '--no-stdin[Do not attach STDIN]' \ + '--sig-proxy[Proxify all received signal to the process (even in non-tty mode)]' + __docker_containers +} + +__build() { + _arguments \ + '--no-cache[Do not use cache when building the image]' \ + '(-q,--quiet)'{-q,--quiet}'[Suppress the verbose output generated by the containers]' \ + '--rm[Remove intermediate containers after a successful build]' \ + '(-t,--tag=)'{-t,--tag=}'[Repository name (and optionally a tag) to be applied to the resulting image in case of success]' \ + '*:files:_files' +} + +__commit() { + _arguments \ + '(-a,--author=)'{-a,--author=}'[Author (e.g. "John Hannibal Smith ")]' \ + '(-c,--change=)'{-c,--change=}'[Apply Dockerfile instruction to the created image]' \ + '(-m,--message=)'{-m,--message=}'[Commit message]' \ + '(-p,--pause=)'{-p,--pause=}'[Pause container during commit]' \ +} + +__cp() { + __docker_containers +} + +__create() { + _arguments \ + '(-P,--publish-all=)'{-P,--publish-all=}'[Publish all exposed ports to the host interfaces]' \ + '(-a,--attach=)'{-a,--attach=}'[Attach to STDIN, STDOUT or STDERR]' \ + '--add-host=[Add a custom host-to-IP mapping]' \ + '--cap-add=[Add Linux capabilities]' \ + '--cap-drop=[Drop Linux capabilities]' \ + '--cpuset-cpus=[CPUs in which to allow execution (0-3, 0,1)]' \ + '(-c,--cpu-shares=)'{-c,--cpu-shares=}'[CPU shares (relative weight)]' \ + '--cidfile=[Write the container ID to the file]' \ + '--device=[Add a host device to the container]' \ + '--dns=[Set custom dns servers]' \ + '--dns-search=[Set custom DNS search domains]' \ + '(-e,--env=)'{-e,--env=}'[Set environment variables]' \ + '--env-file=[Read in a file of environment variables]' \ + '--entrypoint=[Overwrite the default entrypoint of the image]' \ + '--expose=[Expose a port from the container without publishing it to your host]' \ + '(-h,--hostname=)'{-h,--hostname=}'[Container host name]' \ + '(-i,--interactive=)'{-i,--interactive=}'[Keep STDIN open even if not attached]' \ + '--ipc=[IPC namespace to use]' \ + '(-l,--label=)'{-l,--label=}'[Set meta data on a container]' \ + '--link=[Add link to another container (name:alias)]' \ + '--log-driver=[Logging driver for the container]' \ + '--lxc-conf=[Add custom LXC options]' \ + '--mac-address=[Container MAC address (e.g. 92:d0:c6:0a:29:33)]' \ + '(-m,--memory=)'{-m,--memory=}'[Memory limit (format: , where unit = b, k, m or g)]' \ + '--net=[Set the Network mode for the container]' \ + '--name=[Assign a name to the container]' \ + '--pid=[PID namespace to use]' \ + '(-p,--publish=)'{-p,--publish=}'[Publish a container''s port to the host (format: ip:hostPort:containerPort/protocol)]' \ + '--privileged=[Give extended privileges to this container]' \ + '--restart=[Restart policy to apply when a container exits]' \ + '--security-opt=[Security Options]' \ + '--sig-proxy=[Proxify all received signal to the process (even in non-tty mode)]' \ + '(-t,--tty=)'{-t,--tty=}'[Allocate a pseudo-tty]' \ + '(-u,--user=)'{-u,--user=}'[Username or UID]' \ + '--ulimit=[Ulimit options]' \ + '(-v,--volume=)'{-v,--volume=}'[Bind mount a volume (e.g. -v /host:/container or -v /container)]' \ + '--volumes-from=[Mount volumes from the specified container(s)]' \ + '(-w,--workdir=)'{-w,--workdir=}'[Working directory inside the container]' + __docker_images +} + +__diff() { + __docker_containers +} + +__events() { + _arguments \ + '--since=[Show previously created events and then stream.]' +} + +__export() { + __docker_containers +} + +__history() { + _arguments \ + '--no-trunc=[Don''t truncate output]' \ + '(-q,--quiet)'{-q,--quiet}'[Only show numeric IDs]' + __docker_images +} + +__images() { + _arguments \ + '(-a,--all)'{-a,--all}'[Show all images (by default filter out the intermediate images used to build)]' \ + '--no-trunc[Don''t truncate output]' \ + '(-q,--quiet=)'{-q,--quiet=}'[Only show numeric IDs]' \ + '(-t,--tree=)'{-t,--tree=}'[Output graph in tree format]' \ + '(-v,--viz=)'{-v,--viz=}'[Output graph in graphviz format]' + __docker_images +} + +__import() { + _arguments '*:files:_files' +} + +__info() { + # no arguments +} + +__inspect() { + __docker_images + __docker_all_containers +} + +__kill() { + _arguments \ + '(-s,--signal=)'{-s,--signal=}'[KILL Signal]' + __docker_containers +} + +__load() { + _arguments '*:files:_files' +} + +__login() { + _arguments \ + '(-e,--email=)'{-e,-email=}'[Email]' \ + '(-p,--password=)'{-p,-password=}'[Password]' \ + '(-u,--username=)'{-u,-username=}'[Username]' +} + +__logs() { + _arguments \ + '(-f,--follow)'{-f,-follow}'[Follow log output]' + __docker_containers +} + +__port() { + __docker_containers +} + +__top() { + __docker_containers +} + +__ps() { + _arguments \ + '(-a,--all)'{-a,--all}'[Show all containers. Only running containers are shown by default.]' \ + '--before-id=[Show only container created before Id, include non-running ones.]' \ + '(-l,--latest)'{-l,--latest}'[Show only the latest created container, include non-running ones.]' \ + '-n=[Show n last created containers, include non-running ones. default=-1.]' \ + '--no-trunc[Don''t truncate output]' \ + '(-q,--quiet)'{-q,--quiet}'[Only display numeric IDs]' \ + '(-s,--size)'{-s,--size}'[Display sizes]' \ + '--since-id=[Show only containers created since Id, include non-running ones.]' +} + +__pull() { + _arguments \ + '(-t,--tag=)'{-t,--tag=}'[Download tagged image in repository]' +} + +__push() { + # no arguments +} + +__restart() { + _arguments \ + '(-t,--time=)'{-t,--time=}'[Number of seconds to try to stop for before killing the container. Once killed it will then be restarted. Default=10]' + __docker_containers +} + +__rm() { + _arguments \ + '(-f,--force=)'{-f,--force=}'[Force removal of running container]' \ + '(-l,--link=)'{-l,--link=}'[Remove the specified link and not the underlying container]' \ + '(-v,--volumes=)'{-v,--volumes=}'[Remove the volumes associated to the container]' + __docker_all_containers +} + +__rmi() { + _arguments \ + '(-f,--force=)'{-f,--force=}'[Force]' + __docker_images +} + +__run() { + _arguments \ + '(-P,--publish-all=)'{-P,--publish-all=}'[Publish all exposed ports to the host interfaces]' \ + '(-a,--attach=)'{-a,--attach=}'[Attach to STDIN, STDOUT or STDERR]' \ + '--add-host=[Add a custom host-to-IP mapping]' \ + '--cap-add=[Add Linux capabilities]' \ + '--cap-drop=[Drop Linux capabilities]' \ + '--cpuset-cpus=[CPUs in which to allow execution (0-3, 0,1)]' \ + '(-c,--cpu-shares=)'{-c,--cpu-shares=}'[CPU shares (relative weight)]' \ + '--cidfile=[Write the container ID to the file]' \ + '(-d,--detach=)'{-d,--detach=}'[Run container in the background, print new container id]' \ + '--device=[Add a host device to the container]' \ + '--dns=[Set custom dns servers]' \ + '--dns-search=[Set custom DNS search domains]' \ + '(-e,--env=)'{-e,--env=}'[Set environment variables]' \ + '--env-file=[Read in a file of environment variables]' \ + '--entrypoint=[Overwrite the default entrypoint of the image]' \ + '--expose=[Expose a port from the container without publishing it to your host]' \ + '(-h,--hostname=)'{-h,--hostname=}'[Container host name]' \ + '(-i,--interactive=)'{-i,--interactive=}'[Keep STDIN open even if not attached]' \ + '--ipc=[IPC namespace to use]' \ + '(-l,--label=)'{-l,--label=}'[Set meta data on a container]' \ + '--link=[Add link to another container (name:alias)]' \ + '--log-driver=[Logging driver for the container]' \ + '--lxc-conf=[Add custom LXC options]' \ + '--mac-address=[Container MAC address (e.g. 92:d0:c6:0a:29:33)]' \ + '(-m,--memory=)'{-m,--memory=}'[Memory limit (format: , where unit = b, k, m or g)]' \ + '--net=[Set the Network mode for the container]' \ + '--name=[Assign a name to the container]' \ + '--pid=[PID namespace to use]' \ + '(-p,--publish=)'{-p,--publish=}'[Publish a container''s port to the host (format: ip:hostPort:containerPort/protocol)]' \ + '--privileged=[Give extended privileges to this container]' \ + '--restart=[Restart policy to apply when a container exits]' \ + '--rm=[Automatically remove the container when it exits (incompatible with -d)]' \ + '--security-opt=[Security Options]' \ + '--sig-proxy=[Proxify all received signal to the process (even in non-tty mode)]' \ + '(-t,--tty=)'{-t,--tty=}'[Allocate a pseudo-tty]' \ + '(-u,--user=)'{-u,--user=}'[Username or UID]' \ + '--ulimit=[Ulimit options]' \ + '(-v,--volume=)'{-v,--volume=}'[Bind mount a volume (e.g. -v /host:/container or -v /container)]' \ + '--volumes-from=[Mount volumes from the specified container(s)]' \ + '(-w,--workdir=)'{-w,--workdir=}'[Working directory inside the container]' + __docker_images +} + +__search() { + _arguments \ + '--no-trunc=[Don''t truncate output]' \ + '-s,--stars=)'{-s,--stars=}'[Only displays with at least xxx stars]' \ + '-t,--trusted=)'{-t,--trusted=}'[Only show trusted builds]' +} + +__save() { + __docker_images +} + +__start() { + _arguments \ + '(-a,--attach=)'{-a,--attach=}'[Attach container''s STDOUT/STDERR and forward all signals to the process]' \ + '(-i,--interactive=)'{-i,--interactive=}'[Attach container''s STDIN]' + __docker_all_containers +} + +__stats() { + __docker_containers +} + +__stop() { + _arguments \ + '(-t,--time=)'{-t,--time=}'[Number of seconds to wait for the container to stop before killing it.]' + __docker_containers +} + +__tag() { + _arguments \ + '(-f,--force=)'{-f,--force=}'[Force]' + __docker_images +} + +__version() { + # no arguments +} + +__wait() { + __docker_containers +} + +__exec() { + _arguments \ + '(-d,--detach=)'{-d,--detach=}'[Detached mode: run command in the background]' \ + '(-i,--interactive=)'{-i,--interactive=}'[Keep STDIN open even if not attached]' \ + '(-t,--tty=)'{-t,--tty=}'[Allocate a pseudo-TTY]' + __docker_containers +} + +# end commands --------- +# ---------------------- + +local -a _1st_arguments +_1st_arguments=( + "attach":"Attach to a running container" + "build":"Build a container from a Dockerfile" + "commit":"Create a new image from a container's changes" + "cp":"Copy files/folders from the containers filesystem to the host path" + "create":"Create new container without running it" + "diff":"Inspect changes on a container's filesystem" + "events":"Get real time events from the server" + "export":"Stream the contents of a container as a tar archive" + "history":"Show the history of an image" + "images":"List images" + "import":"Create a new filesystem image from the contents of a tarball" + "info":"Display system-wide information" + "inspect":"Return low-level information on a container" + "kill":"Kill a running container" + "load":"Load an image from a tar archive" + "login":"Register or Login to the docker registry server" + "logs":"Fetch the logs of a container" + "port":"Lookup the public-facing port which is NAT-ed to PRIVATE_PORT" + "ps":"List containers" + "pull":"Pull an image or a repository from the docker registry server" + "push":"Push an image or a repository to the docker registry server" + "restart":"Restart a running container" + "rm":"Remove one or more containers" + "rmi":"Remove one or more images" + "run":"Run a command in a new container" + "save":"Save an image to a tar archive" + "search":"Search for an image in the docker index" + "start":"Start a stopped container" + "stats":"Display a live stream of one or more containers' resource usage statistics" + "stop":"Stop a running container" + "tag":"Tag an image into a repository" + "top":"Lookup the running processes of a container" + "version":"Show the docker version information" + "wait":"Block until a container stops, then print its exit code" + "exec":"Run a task inside a running container" +) + +_arguments '*:: :->command' + +if (( CURRENT == 1 )); then + _describe -t commands "docker command" _1st_arguments + return +fi + +local -a _command_args +case "$words[1]" in + attach) + __attach ;; + build) + __build ;; + commit) + __commit ;; + cp) + __cp ;; + create) + __create ;; + diff) + __diff ;; + events) + __events ;; + export) + __export ;; + history) + __history ;; + images) + __images ;; + import) + __import ;; + info) + __info ;; + inspect) + __inspect ;; + kill) + __kill ;; + load) + __load ;; + login) + __login ;; + logs) + __logs ;; + port) + __port ;; + ps) + __ps ;; + pull) + __pull ;; + push) + __push ;; + restart) + __restart ;; + rm) + __rm ;; + rmi) + __rmi ;; + run) + __run ;; + save) + __save ;; + search) + __search ;; + stats) + __stats ;; + start) + __start ;; + stop) + __stop ;; + tag) + __tag ;; + top) + __top ;; + version) + __version ;; + wait) + __wait ;; + exec) + __exec ;; +esac diff --git a/zsh/config.zsh b/zsh/config.zsh index 53f596e..6f59382 100644 --- a/zsh/config.zsh +++ b/zsh/config.zsh @@ -35,5 +35,9 @@ setopt complete_aliases zle -N newtab +# delete words bash style autoload -U select-word-style select-word-style bash + +# bring up menu selection +zstyle ':completion:*' menu select diff --git a/zsh/fpath.zsh b/zsh/fpath.zsh new file mode 100644 index 0000000..b123f2c --- /dev/null +++ b/zsh/fpath.zsh @@ -0,0 +1,2 @@ +# add each topic folder to fpath so that they can add functions and completion scripts +for topic_folder ($DOTFILES/*) if [ -d $topic_folder ]; then fpath=($topic_folder $fpath); fi; From 81b62d62ac196be4e6e1ba97c061bc73ec31c9f7 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 17:32:27 +0300 Subject: [PATCH 097/230] typo --- script/install | 2 -- 1 file changed, 2 deletions(-) diff --git a/script/install b/script/install index e154bce..8d516b2 100755 --- a/script/install +++ b/script/install @@ -10,7 +10,5 @@ cd "$(dirname $0)"/.. echo "› brew bundle" brew bundle -if - # find the installers and run them iteratively find . -name install.sh | while read installer ; do sh -c "${installer}" ; done From df31bd73e86a33695f124e04a4f32fcc2acfbf66 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 17:47:08 +0300 Subject: [PATCH 098/230] tweaking prompt --- zsh/prompt.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/zsh/prompt.zsh b/zsh/prompt.zsh index ddd433f..41d1c53 100644 --- a/zsh/prompt.zsh +++ b/zsh/prompt.zsh @@ -71,7 +71,7 @@ directory_name() { echo "%{$fg_bold[cyan]%}%1/%{$reset_color%}" } -export PROMPT=$'\n$(rb_prompt)$(directory_name)$(git_dirty)$(need_push)\n› ' +export PROMPT=$'$(rb_prompt)$(directory_name)$(git_dirty)$(need_push)› ' set_prompt () { export RPROMPT="%{$fg_bold[cyan]%}%{$reset_color%}" } From 8082d8f7f69d7cbba3cb100443b1f548c75397cf Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 18:03:18 +0300 Subject: [PATCH 099/230] syntax highlighting package --- Brewfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Brewfile b/Brewfile index 2aa5569..01f11dd 100644 --- a/Brewfile +++ b/Brewfile @@ -25,6 +25,7 @@ brew 'tree' brew 'weechat' brew 'ipcalc' brew 'wget' +brew 'zsh-syntax-highlighting' # Casks cask 'flux' From 67ad5dc4eb8d029e187165c61b730bd1a11f2663 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 18:03:55 +0300 Subject: [PATCH 100/230] sourcing the file --- zsh/zshrc.symlink | 2 ++ 1 file changed, 2 insertions(+) diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index 18aa101..408e951 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -64,3 +64,5 @@ do done unset config_files + +source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh From b487f7d87e10dacd42c243a85072240a00837897 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 18:18:27 +0300 Subject: [PATCH 101/230] removed syntax h-l --- Brewfile | 1 - zsh/zshrc.symlink | 2 -- 2 files changed, 3 deletions(-) diff --git a/Brewfile b/Brewfile index 01f11dd..2aa5569 100644 --- a/Brewfile +++ b/Brewfile @@ -25,7 +25,6 @@ brew 'tree' brew 'weechat' brew 'ipcalc' brew 'wget' -brew 'zsh-syntax-highlighting' # Casks cask 'flux' diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index 408e951..18aa101 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -64,5 +64,3 @@ do done unset config_files - -source /usr/local/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh From cc40c93ed7650c07f03f0bf7decc5b5b5d8c5270 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 22 Aug 2016 19:37:29 +0300 Subject: [PATCH 102/230] completion for go not working --- go/completion.zsh | 193 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 193 insertions(+) create mode 100644 go/completion.zsh diff --git a/go/completion.zsh b/go/completion.zsh new file mode 100644 index 0000000..d9d4506 --- /dev/null +++ b/go/completion.zsh @@ -0,0 +1,193 @@ +# install in /etc/zsh/zshrc or your personal .zshrc + +# gc +prefixes=(5 6 8) +for p in $prefixes; do + compctl -g "*.${p}" ${p}l + compctl -g "*.go" ${p}g +done + +# standard go tools +compctl -g "*.go" gofmt + +# gccgo +compctl -g "*.go" gccgo + +# go tool +__go_tool_complete() { + typeset -a commands build_flags + commands+=( + 'build[compile packages and dependencies]' + 'clean[remove object files]' + 'doc[run godoc on package sources]' + 'env[print Go environment information]' + 'fix[run go tool fix on packages]' + 'fmt[run gofmt on package sources]' + 'generate[generate Go files by processing source]' + 'get[download and install packages and dependencies]' + 'help[display help]' + 'install[compile and install packages and dependencies]' + 'list[list packages]' + 'run[compile and run Go program]' + 'test[test packages]' + 'tool[run specified go tool]' + 'version[print Go version]' + 'vet[run go tool vet on packages]' + ) + if (( CURRENT == 2 )); then + # explain go commands + _values 'go tool commands' ${commands[@]} + return + fi + build_flags=( + '-a[force reinstallation of packages that are already up-to-date]' + '-n[print the commands but do not run them]' + '-p[number of parallel builds]:number' + '-race[enable data race detection]' + '-x[print the commands]' + '-work[print temporary directory name and keep it]' + '-ccflags[flags for 5c/6c/8c]:flags' + '-gcflags[flags for 5g/6g/8g]:flags' + '-ldflags[flags for 5l/6l/8l]:flags' + '-gccgoflags[flags for gccgo]:flags' + '-compiler[name of compiler to use]:name' + '-installsuffix[suffix to add to package directory]:suffix' + '-tags[list of build tags to consider satisfied]:tags' + ) + __go_packages() { + local gopaths + declare -a gopaths + gopaths=("${(s/:/)$(go env GOPATH)}") + gopaths+=("$(go env GOROOT)") + for p in $gopaths; do + _path_files -W "$p/src" -/ + done + } + __go_identifiers() { + compadd $(godoc -templates $ZSH/plugins/golang/templates ${words[-2]} 2> /dev/null) + } + case ${words[2]} in + doc) + _arguments -s -w \ + "-c[symbol matching honors case (paths not affected)]" \ + "-cmd[show symbols with package docs even if package is a command]" \ + "-u[show unexported symbols as well as exported]" \ + "2:importpaths:__go_packages" \ + ":next identifiers:__go_identifiers" + ;; + clean) + _arguments -s -w \ + "-i[remove the corresponding installed archive or binary (what 'go install' would create)]" \ + "-n[print the remove commands it would execute, but not run them]" \ + "-r[apply recursively to all the dependencies of the packages named by the import paths]" \ + "-x[print remove commands as it executes them]" \ + "*:importpaths:__go_packages" + ;; + fix|fmt|list|vet) + _alternative ':importpaths:__go_packages' ':files:_path_files -g "*.go"' + ;; + install) + _arguments -s -w : ${build_flags[@]} \ + "-v[show package names]" \ + '*:importpaths:__go_packages' + ;; + get) + _arguments -s -w : \ + ${build_flags[@]} + ;; + build) + _arguments -s -w : \ + ${build_flags[@]} \ + "-v[show package names]" \ + "-o[output file]:file:_files" \ + "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }" + ;; + test) + _arguments -s -w : \ + ${build_flags[@]} \ + "-c[do not run, compile the test binary]" \ + "-i[do not run, install dependencies]" \ + "-v[print test output]" \ + "-x[print the commands]" \ + "-short[use short mode]" \ + "-parallel[number of parallel tests]:number" \ + "-cpu[values of GOMAXPROCS to use]:number list" \ + "-run[run tests and examples matching regexp]:regexp" \ + "-bench[run benchmarks matching regexp]:regexp" \ + "-benchmem[print memory allocation stats]" \ + "-benchtime[run each benchmark until taking this long]:duration" \ + "-blockprofile[write goroutine blocking profile to file]:file" \ + "-blockprofilerate[set sampling rate of goroutine blocking profile]:number" \ + "-timeout[kill test after that duration]:duration" \ + "-cpuprofile[write CPU profile to file]:file:_files" \ + "-memprofile[write heap profile to file]:file:_files" \ + "-memprofilerate[set heap profiling rate]:number" \ + "*:args:{ _alternative ':importpaths:__go_packages' ':files:_path_files -g \"*.go\"' }" + ;; + help) + _values "${commands[@]}" \ + 'gopath[GOPATH environment variable]' \ + 'packages[description of package lists]' \ + 'remote[remote import path syntax]' \ + 'testflag[description of testing flags]' \ + 'testfunc[description of testing functions]' + ;; + run) + _arguments -s -w : \ + ${build_flags[@]} \ + '*:file:_path_files -g "*.go"' + ;; + tool) + if (( CURRENT == 3 )); then + _values "go tool" $(go tool) + return + fi + case ${words[3]} in + [568]g) + _arguments -s -w : \ + '-I[search for packages in DIR]:includes:_path_files -/' \ + '-L[show full path in file:line prints]' \ + '-S[print the assembly language]' \ + '-V[print the compiler version]' \ + '-e[no limit on number of errors printed]' \ + '-h[panic on an error]' \ + '-l[disable inlining]' \ + '-m[print optimization decisions]' \ + '-o[file specify output file]:file' \ + '-p[assumed import path for this code]:importpath' \ + '-u[disable package unsafe]' \ + "*:file:_files -g '*.go'" + ;; + [568]l) + local O=${words[3]%l} + _arguments -s -w : \ + '-o[file specify output file]:file' \ + '-L[search for packages in DIR]:includes:_path_files -/' \ + "*:file:_files -g '*.[ao$O]'" + ;; + dist) + _values "dist tool" banner bootstrap clean env install version + ;; + *) + # use files by default + _files + ;; + esac + ;; + esac +} + +compdef __go_tool_complete go + +# aliases: go<~> +alias gob='go build' +alias goc='go clean' +alias god='go doc' +alias gof='go fmt' +alias gofa='go fmt . ./...' +alias gog='go get' +alias goi='go install' +alias gol='go list' +alias gor='go run' +alias got='go test' +alias gov='go vet' From 8a46a3e813d8c22b7fb3d9d798a6057f5b6f3733 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Tue, 23 Aug 2016 15:09:12 +0300 Subject: [PATCH 103/230] git pull alias --- git/aliases.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/git/aliases.zsh b/git/aliases.zsh index c654297..bf91173 100644 --- a/git/aliases.zsh +++ b/git/aliases.zsh @@ -1,4 +1,5 @@ alias tig="tig --show-signature" +alias gl="git pull --rebase" # gitignore.io # gi list to get all supported types From afd2ad5bbb0fa874170a4d146704d3f10aed49ca Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Wed, 24 Aug 2016 11:04:40 +0300 Subject: [PATCH 104/230] brew aliases --- homebrew/aliases.zsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 homebrew/aliases.zsh diff --git a/homebrew/aliases.zsh b/homebrew/aliases.zsh new file mode 100644 index 0000000..b6f1f52 --- /dev/null +++ b/homebrew/aliases.zsh @@ -0,0 +1 @@ +alias bup="brew update && brew upgrade && brew cleanup" From 5f07e945456a6f3313a3a27ce51769645f76a827 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Wed, 24 Aug 2016 11:20:59 +0300 Subject: [PATCH 105/230] changed colors --- zsh/prompt.zsh | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/zsh/prompt.zsh b/zsh/prompt.zsh index 41d1c53..2e3d664 100644 --- a/zsh/prompt.zsh +++ b/zsh/prompt.zsh @@ -29,7 +29,6 @@ git_dirty() { git_prompt_info () { ref=$($git symbolic-ref HEAD 2>/dev/null) || return -# echo "(%{\e[0;33m%}${ref#refs/heads/}%{\e[0m%})" echo "${ref#refs/heads/}" } @@ -61,19 +60,19 @@ ruby_version() { rb_prompt() { if ! [[ -z "$(ruby_version)" ]] then - echo "%{$fg_bold[yellow]%}$(ruby_version)%{$reset_color%} " + echo "%{$fg[yellow]%}$(ruby_version)%{$reset_color%} " else echo "" fi } directory_name() { - echo "%{$fg_bold[cyan]%}%1/%{$reset_color%}" + echo "%{$fg[cyan]%}%1/%{$reset_color%}" } export PROMPT=$'$(rb_prompt)$(directory_name)$(git_dirty)$(need_push)› ' set_prompt () { - export RPROMPT="%{$fg_bold[cyan]%}%{$reset_color%}" + export RPROMPT="%{$fg[cyan]%}%{$reset_color%}" } precmd() { From 725c13648b5f8b23cf8b4c96b375c0e393433fa4 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Wed, 24 Aug 2016 11:55:24 +0300 Subject: [PATCH 106/230] open new terminal tab in the same directory --- zsh/terminal.zsh | 80 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 zsh/terminal.zsh diff --git a/zsh/terminal.zsh b/zsh/terminal.zsh new file mode 100644 index 0000000..c8621e7 --- /dev/null +++ b/zsh/terminal.zsh @@ -0,0 +1,80 @@ +zmodload zsh/langinfo +function omz_urlencode() { + emulate -L zsh + zparseopts -D -E -a opts r m P + + local in_str=$1 + local url_str="" + local spaces_as_plus + if [[ -z $opts[(r)-P] ]]; then spaces_as_plus=1; fi + local str="$in_str" + + # URLs must use UTF-8 encoding; convert str to UTF-8 if required + local encoding=$langinfo[CODESET] + local safe_encodings + safe_encodings=(UTF-8 utf8 US-ASCII) + if [[ -z ${safe_encodings[(r)$encoding]} ]]; then + str=$(echo -E "$str" | iconv -f $encoding -t UTF-8) + if [[ $? != 0 ]]; then + echo "Error converting string from $encoding to UTF-8" >&2 + return 1 + fi + fi + + # Use LC_CTYPE=C to process text byte-by-byte + local i byte ord LC_ALL=C + export LC_ALL + local reserved=';/?:@&=+$,' + local mark='_.!~*''()-' + local dont_escape="[A-Za-z0-9" + if [[ -z $opts[(r)-r] ]]; then + dont_escape+=$reserved + fi + # $mark must be last because of the "-" + if [[ -z $opts[(r)-m] ]]; then + dont_escape+=$mark + fi + dont_escape+="]" + + # Implemented to use a single printf call and avoid subshells in the loop, + # for performance (primarily on Windows). + local url_str="" + for (( i = 1; i <= ${#str}; ++i )); do + byte="$str[i]" + if [[ "$byte" =~ "$dont_escape" ]]; then + url_str+="$byte" + else + if [[ "$byte" == " " && -n $spaces_as_plus ]]; then + url_str+="+" + else + ord=$(( [##16] #byte )) + url_str+="%$ord" + fi + fi + done + echo -E "$url_str" +} + +# Keep Apple Terminal.app's current working directory updated +# Based on this answer: http://superuser.com/a/315029 +# With extra fixes to handle multibyte chars and non-UTF-8 locales +if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then + # Emits the control sequence to notify Terminal.app of the cwd + # Identifies the directory using a file: URI scheme, including + # the host name to disambiguate local vs. remote paths. + function update_terminalapp_cwd() { + emulate -L zsh + + # Percent-encode the pathname. + local URL_PATH="$(omz_urlencode -P $PWD)" + [[ $? != 0 ]] && return 1 + + # Undocumented Terminal.app-specific control sequence + printf '\e]7;%s\a' "file://$HOST$URL_PATH" + } + + # Use a precmd hook instead of a chpwd hook to avoid contaminating output + precmd_functions+=(update_terminalapp_cwd) + # Run once to get initial cwd set + update_terminalapp_cwd +fi From 163c4279a34d7d647405af44c9a17e9ab73daba3 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Wed, 24 Aug 2016 13:42:09 +0300 Subject: [PATCH 107/230] fixed completion --- google/completion.zsh | 5 ----- google/google.zsh | 1 + google/path.zsh | 1 + 3 files changed, 2 insertions(+), 5 deletions(-) delete mode 100644 google/completion.zsh create mode 100644 google/google.zsh create mode 100644 google/path.zsh diff --git a/google/completion.zsh b/google/completion.zsh deleted file mode 100644 index 17e7de2..0000000 --- a/google/completion.zsh +++ /dev/null @@ -1,5 +0,0 @@ -if [[ $(uname) == "Darwin" ]] -then - source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc" - source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc" -fi diff --git a/google/google.zsh b/google/google.zsh new file mode 100644 index 0000000..00fe8d1 --- /dev/null +++ b/google/google.zsh @@ -0,0 +1 @@ +source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc" diff --git a/google/path.zsh b/google/path.zsh new file mode 100644 index 0000000..9778b67 --- /dev/null +++ b/google/path.zsh @@ -0,0 +1 @@ +source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/path.zsh.inc" From 5d0a34926e9ffa5b2a82a018889330aa7467a0ee Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Wed, 24 Aug 2016 13:51:29 +0300 Subject: [PATCH 108/230] moved to history --- zsh/config.zsh | 10 ---------- zsh/history.zsh | 8 ++++++++ 2 files changed, 8 insertions(+), 10 deletions(-) diff --git a/zsh/config.zsh b/zsh/config.zsh index 6f59382..0fa37a1 100644 --- a/zsh/config.zsh +++ b/zsh/config.zsh @@ -7,10 +7,6 @@ fi export LSCOLORS="exfxcxdxbxegedabagacad" export CLICOLOR=true -HISTFILE=~/.zsh_history -HISTSIZE=10000 -SAVEHIST=10000 - setopt NO_BG_NICE # don't nice background tasks setopt NO_HUP setopt NO_LIST_BEEP @@ -22,12 +18,6 @@ setopt EXTENDED_HISTORY # add timestamps to history setopt PROMPT_SUBST setopt CORRECT setopt COMPLETE_IN_WORD -setopt IGNORE_EOF - -setopt APPEND_HISTORY # adds history -setopt INC_APPEND_HISTORY SHARE_HISTORY # adds history incrementally and share it across sessions -setopt HIST_IGNORE_ALL_DUPS # don't record dupes in history -setopt HIST_REDUCE_BLANKS # don't expand aliases _before_ completion has finished # like: git comm-[tab] diff --git a/zsh/history.zsh b/zsh/history.zsh index 8fcfde2..d26c235 100644 --- a/zsh/history.zsh +++ b/zsh/history.zsh @@ -1 +1,9 @@ +HISTFILE=~/.zsh_history +HISTSIZE=10000 +SAVEHIST=10000 + setopt HIST_IGNORE_SPACE +setopt APPEND_HISTORY # adds history +setopt INC_APPEND_HISTORY SHARE_HISTORY # adds history incrementally and share it across sessions +setopt HIST_IGNORE_ALL_DUPS # don't record dupes in history +setopt HIST_REDUCE_BLANKS From c770a4229d371f6525cef891699c54d36a9d69b6 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Wed, 24 Aug 2016 16:40:55 +0300 Subject: [PATCH 109/230] tmux stuff --- kubernetes/completion.zsh | 3 +-- tmux/tmux.conf.symlink | 13 +++++-------- tmux/tmux.zsh | 12 ++++++++++++ zsh/autojump.zsh | 12 +++++++----- zsh/config.zsh | 1 - 5 files changed, 25 insertions(+), 16 deletions(-) create mode 100644 tmux/tmux.zsh diff --git a/kubernetes/completion.zsh b/kubernetes/completion.zsh index 7ab696c..1929dba 100644 --- a/kubernetes/completion.zsh +++ b/kubernetes/completion.zsh @@ -1,5 +1,4 @@ -if $(test $(which kubectl) 2>/dev/null) +if which kubectl > /dev/null 2>&1 then source <(kubectl completion zsh) fi - diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index d7e4997..2a1e7cb 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -1,9 +1,5 @@ -# support for osx, all others don't symlink -# source ~/.tmux-osx.conf - # use zsh - set -g default-command /bin/zsh - set -g default-shell /bin/zsh + set -g default-shell $SHELL # use CTRL-A as modifier set-option -g prefix C-a @@ -28,10 +24,8 @@ set-option -g renumber-windows on set-window-option -g window-status-current-bg red set -g status-bg black set -g status-fg white - set -g status-left '#[fg=green]#H' - # set -g status-right '#[fg=blue]#(uptime | cut -d"," -f 2-)' set -g status-right-length 100 - set -g status-right "#[fg=blue]#(uptime | cut -d"," -f 2-):: #[fg=blue]#S #I:#P #[fg=yellow]:: %d %b %Y #[fg=green]:: %l:%M %p" + set -g status-right "#[fg=yellow]:: %d %b %Y #[fg=green]:: %l:%M %p" # large history set-option -g history-limit 100000 @@ -92,3 +86,6 @@ set-option -s escape-time 10 # bind : to command-prompt like vim this is the default in tmux already bind : command-prompt + +# enable mouse scrolling + set -g mouse on diff --git a/tmux/tmux.zsh b/tmux/tmux.zsh new file mode 100644 index 0000000..398896f --- /dev/null +++ b/tmux/tmux.zsh @@ -0,0 +1,12 @@ +if [[ ! $TERM =~ screen ]] && [ -z $TMUX ] +then + if which tmux > /dev/null 2>&1 + then + if tmux has-session -t $USER 2>/dev/null + then + tmux attach-session -t $USER + else + tmux new-session -s $USER + fi + fi +fi diff --git a/zsh/autojump.zsh b/zsh/autojump.zsh index 525dcfb..ece4d11 100644 --- a/zsh/autojump.zsh +++ b/zsh/autojump.zsh @@ -1,5 +1,7 @@ -# AutoJump -if [[ "$OSTYPE" == darwin* ]] -then - [[ -s `brew --prefix`/etc/autojump.sh ]] && . `brew --prefix`/etc/autojump.sh -fi +function j() { + (( $+commands[brew] )) && { + local pfx=$(brew --prefix) + [[ -f "$pfx/etc/autojump.sh" ]] && . "$pfx/etc/autojump.sh" + j "$@" + } +} diff --git a/zsh/config.zsh b/zsh/config.zsh index 0fa37a1..fc9b2b9 100644 --- a/zsh/config.zsh +++ b/zsh/config.zsh @@ -16,7 +16,6 @@ setopt HIST_VERIFY setopt SHARE_HISTORY # share history between sessions ??? setopt EXTENDED_HISTORY # add timestamps to history setopt PROMPT_SUBST -setopt CORRECT setopt COMPLETE_IN_WORD # don't expand aliases _before_ completion has finished From 392549aa5606781b800a2b60514e56b57c5bc98e Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Wed, 24 Aug 2016 16:42:34 +0300 Subject: [PATCH 110/230] ls aliases --- system/aliases.zsh | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 system/aliases.zsh diff --git a/system/aliases.zsh b/system/aliases.zsh new file mode 100644 index 0000000..8493654 --- /dev/null +++ b/system/aliases.zsh @@ -0,0 +1,2 @@ +alias l='ls -l' +alias la='ls -lah' From 0df3abf7a46d4d3cb6ab3ca441bbed34d32a1e1b Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 25 Aug 2016 11:00:00 +0300 Subject: [PATCH 111/230] status bar --- tmux/tmux.conf.symlink | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 2a1e7cb..d69ffcb 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -21,11 +21,13 @@ set-option -g renumber-windows on # Set status bar - set-window-option -g window-status-current-bg red + set-window-option -g window-status-current-bg yellow set -g status-bg black set -g status-fg white - set -g status-right-length 100 - set -g status-right "#[fg=yellow]:: %d %b %Y #[fg=green]:: %l:%M %p" + set -g status-left-length 70 + set -g status-left "#[fg=green]: #h : " + set -g status-right-length 60 + set -g status-right "#[fg=green]: %d %b %Y #[fg=green]: %l:%M %p :" # large history set-option -g history-limit 100000 From 8ad07f6d432aebe1dc8d401efdbbaf1387d4b3f9 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 25 Aug 2016 15:59:49 +0300 Subject: [PATCH 112/230] enhancing tmux --- tmux/tmux.conf.symlink | 14 ++++++++++---- zsh/{terminal.zsh => cwd.bak} | 0 2 files changed, 10 insertions(+), 4 deletions(-) rename zsh/{terminal.zsh => cwd.bak} (100%) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index d69ffcb..008b40a 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -22,24 +22,26 @@ set-option -g renumber-windows on # Set status bar set-window-option -g window-status-current-bg yellow + set -g status-justify centre set -g status-bg black set -g status-fg white - set -g status-left-length 70 + set -g status-left-length 100 set -g status-left "#[fg=green]: #h : " - set -g status-right-length 60 + set -g status-right-length 100 set -g status-right "#[fg=green]: %d %b %Y #[fg=green]: %l:%M %p :" # large history set-option -g history-limit 100000 # display active pane in diff background - set-option -g pane-active-border-fg green - set-option -g pane-active-border-bg green + set-option -g pane-active-border-fg yellow + set-option -g pane-active-border-bg black # highlight status bar on activity setw -g monitor-activity on set -g visual-activity on set -g visual-bell on + # automatically set window title set -g automatic-rename @@ -69,6 +71,7 @@ set-option -s escape-time 10 bind C-s split-window -v -l 22 -c "#{pane_current_path}" bind v split-window -h -c "#{pane_current_path}" bind C-v split-window -h -l 131 -c "#{pane_current_path}" + bind c new-window -c "#{pane_current_path}" # navigate panes with hjkl bind h select-pane -L @@ -91,3 +94,6 @@ set-option -s escape-time 10 # enable mouse scrolling set -g mouse on + +# launch man page in split screen + bind / command-prompt "split-window 'exec man %%'" diff --git a/zsh/terminal.zsh b/zsh/cwd.bak similarity index 100% rename from zsh/terminal.zsh rename to zsh/cwd.bak From ff296eb9cf5b5cae4dcd00bfc6a9f9ca78d2894c Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 25 Aug 2016 16:02:53 +0300 Subject: [PATCH 113/230] ssh-add function --- functions/ssh.zsh | 2 ++ 1 file changed, 2 insertions(+) create mode 100644 functions/ssh.zsh diff --git a/functions/ssh.zsh b/functions/ssh.zsh new file mode 100644 index 0000000..aa3fbc1 --- /dev/null +++ b/functions/ssh.zsh @@ -0,0 +1,2 @@ +# ssh add my key to ssh-agent +ssh-add ~/.ssh/id_ed25519 From 29362cfc895f5a3e0346f0e69903fd1964b2e756 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 25 Aug 2016 16:03:48 +0300 Subject: [PATCH 114/230] ssh-add function --- functions/ssh.zsh | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/functions/ssh.zsh b/functions/ssh.zsh index aa3fbc1..f1fe7e3 100644 --- a/functions/ssh.zsh +++ b/functions/ssh.zsh @@ -1,2 +1,4 @@ # ssh add my key to ssh-agent -ssh-add ~/.ssh/id_ed25519 +function sshadd() { + ssh-add ~/.ssh/id_ed25519 +} From 63a3d2491e66e8b77ea194311929396965483478 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Fri, 16 Sep 2016 17:56:52 +0300 Subject: [PATCH 115/230] changes --- Brewfile | 6 ++---- system/aliases.zsh | 4 ++++ tmux/tmux.conf.symlink | 11 ++++++----- vim/vim.zsh | 9 ++++----- vim/vimrc.symlink | 1 + weechat.symlink/.gitignore | 1 - weechat.symlink/sec.conf | 2 ++ 7 files changed, 19 insertions(+), 15 deletions(-) diff --git a/Brewfile b/Brewfile index 2aa5569..8f018a7 100644 --- a/Brewfile +++ b/Brewfile @@ -1,5 +1,3 @@ -tap 'neovim/neovim' - # Brews brew 'ansible' brew 'autojump' @@ -13,7 +11,7 @@ brew 'fzf' brew 'jq' brew 'keybase' brew 'mercurial' -brew 'neovim' +brew 'vim' brew 'nmap' brew 'mitmproxy' brew 'node' @@ -21,6 +19,7 @@ brew 'packer' brew 'terraform' brew 'tig' brew 'tmux' +brew 'reattach-to-user-namespace' brew 'tree' brew 'weechat' brew 'ipcalc' @@ -33,7 +32,6 @@ cask 'vlc' cask 'steam' cask 'boxer' cask 'virtualbox' -cask 'netspot' cask 'torbrowser' cask 'whatsapp' cask 'wireshark' diff --git a/system/aliases.zsh b/system/aliases.zsh index 8493654..a03811f 100644 --- a/system/aliases.zsh +++ b/system/aliases.zsh @@ -1,2 +1,6 @@ alias l='ls -l' alias la='ls -lah' + +# fix pasteboards +alias pbcopy='reattach-to-user-namespace pbcopy' +alias pbpaste='reattach-to-user-namespace pbpaste' diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 008b40a..f6abd4c 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -21,13 +21,14 @@ set-option -g renumber-windows on # Set status bar - set-window-option -g window-status-current-bg yellow + set-window-option -g window-status-current-bg blue + set-window-option -g window-status-current-fg white set -g status-justify centre set -g status-bg black - set -g status-fg white - set -g status-left-length 100 - set -g status-left "#[fg=green]: #h : " - set -g status-right-length 100 + set -g status-fg blue + set -g status-left-length 60 + set -g status-left "#[fg=green]: #(ifconfig en0 | grep -w inet | cut -d ' ' -f 2) :" + set -g status-right-length 60 set -g status-right "#[fg=green]: %d %b %Y #[fg=green]: %l:%M %p :" # large history diff --git a/vim/vim.zsh b/vim/vim.zsh index 65433b8..1348d45 100644 --- a/vim/vim.zsh +++ b/vim/vim.zsh @@ -1,6 +1,5 @@ -export EDITOR="vim" +BREW_VIM=/usr/local/bin/vim -# vi alias to neovim -alias vi="nvim" -alias vim="nvim" -alias vimdiff="nvim -d" +export EDITOR="vim" +alias vi=$BREW_VIM +alias vim=$BREW_VIM diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 050d94c..0273bb9 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -51,6 +51,7 @@ set modeline set modelines=5 set laststatus=2 set undofile +set undodir=$HOME/.local/share/nvim/undo set mouse=nv set cursorline diff --git a/weechat.symlink/.gitignore b/weechat.symlink/.gitignore index 6897e29..3c4eee7 100644 --- a/weechat.symlink/.gitignore +++ b/weechat.symlink/.gitignore @@ -1,4 +1,3 @@ logs/ ssl/ *.log -irc.conf diff --git a/weechat.symlink/sec.conf b/weechat.symlink/sec.conf index 3672aa7..1d96ef2 100644 --- a/weechat.symlink/sec.conf +++ b/weechat.symlink/sec.conf @@ -9,3 +9,5 @@ passphrase_file = "" salt = on [data] +__passphrase__ = on +freenode_password = "84F0CCF4062F5779982F29377713E4667279332EA7CD852E7BBF76D511169D25C9B0CDA333E5A1B40E8ACB1876AEF463A0EE239D99B7" From 0739bde6399ce4e86cf925e2d17f57f753a3219a Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Fri, 16 Sep 2016 18:07:55 +0300 Subject: [PATCH 116/230] committed solarized theme --- system/solarized-dark.terminal | 1711 ++++++++++++++++++++++++++++++++ 1 file changed, 1711 insertions(+) create mode 100644 system/solarized-dark.terminal diff --git a/system/solarized-dark.terminal b/system/solarized-dark.terminal new file mode 100644 index 0000000..c79f327 --- /dev/null +++ b/system/solarized-dark.terminal @@ -0,0 +1,1711 @@ + + + + + ANSIBlackColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjAyNzQ1MTAw + NjcgMC4yMTE3NjQ3MjMxIDAuMjU4ODIzNDg0MiAxTxAmMC4wMzkzODA3NTE1NSAwLjE2 + MDExNjQ0OSAwLjE5ODMzMjcyNwAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k + YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU + AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl + c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA + AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM + AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA + DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp + Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA + AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA + A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA + AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu + aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl + IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy + IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl + cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs + UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A + AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA + AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA + LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp + AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB + OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy + AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC + 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT + BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF + hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr + Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ + JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR + C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN + 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb + ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT + xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd + F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa + 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p + HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj + ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN + KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt + QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb + MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 + jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g + PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF + VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq + THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T + qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF + W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj + l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ + bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 + KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i + fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI + aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 + kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed + ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS + qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 + JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 + wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM + tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls + 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn + H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC + 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs + YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS + HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q + D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA + cACFAIwAtwDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g + Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== + + ANSIBlueColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjE0OTAxOTYw + NzggMC41NDUwOTgwMzkyIDAuODIzNTI5NDExOCAxTxAnMC4xMjc1NDg4NTg1IDAuNDYy + NjU5NDc4MiAwLjc4MjMxNDEyMTcAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpXTlMu + ZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG + VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk + ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla + AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD + TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA + AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHly + aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS + c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA + AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA + AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA + AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3 + LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj + ZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91 + ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVm + ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA + LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye + AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo + AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA + qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy + ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB + 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg + AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE + EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 + BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH + Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ + CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL + UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D + Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q + mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk + E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX + HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF + GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e + 6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 + I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo + DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M + LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy + mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ + OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+ + oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS + RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM + KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf + U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb + RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND + Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr + /2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM + dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ + Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE + iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS + epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3 + nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co + UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu + tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ + 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 + zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ + bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW + 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 + wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4fWiRj + bGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2JqZWN0 + 0hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3KiJyFf + EA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAAXQBj + AHAAhQCMALcA4QDjAOUA5wDsAPIA9AD2APsBAw1PDVENVg1hDWoNeA18DYMNjA2RDZ4N + oQ2uDbMNuw2+DdAN0w3YAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADdo= + + ANSIBrightBlackColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECoxLjU0NjM4ODQ0 + ZS0wOCAwLjE2ODYyNzQxMTEgMC4yMTE3NjQ2OTMzIDFPECgwLjAwOTI4NjEyODkxNiAw + LjEyNjUyMDg4NyAwLjE1OTY5NTk4MjkAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpX + TlMuZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3Nw + TVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAA + ADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRn + WFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVk + AAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAE + MAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENv + cHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAA + AAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFla + IAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAA + OPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MA + AAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8v + d3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBz + cGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNv + bG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAs + UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA + AAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsA + A1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAA + AAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4A + IwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCf + AKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUB + KwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHh + AekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC + 1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5 + BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgF + ZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcH + BxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI + +wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsi + CzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4N + qQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBh + EH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MT + gxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbW + FvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGnca + nhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6U + Hr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0j + CiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneier + J9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs + 1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIq + MmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4 + FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4g + PmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpE + zkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0ua + S+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdT + E1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqm + WvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi + 8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tP + a6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0 + cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2h + fgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuH + n4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5Go + khGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByc + iZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adu + p+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKz + OLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/ + v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbL + tsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk + 2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTm + DeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn + 9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4f + WiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2Jq + ZWN00hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3Ki + JyFfEA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAA + XQBjAHAAhQCMALkA5ADmAOgA6gDvAPUA9wD5AP4BBg1SDVQNWQ1kDW0New1/DYYNjw2U + DaENpA2xDbYNvg3BDdMN1g3bAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADd0= + + ANSIBrightBlueColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjUxMzcyNTQ5 + MDIgMC41ODAzOTIxNTY5IDAuNTg4MjM1Mjk0MSAxTxAmMC40NDA1ODAyMTkgMC41MDk2 + MjkzMDkyIDAuNTE2ODU3OTgxNwAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k + YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU + AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl + c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA + AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM + AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA + DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp + Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA + AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA + A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA + AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu + aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl + IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy + IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl + cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs + UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A + AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA + AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA + LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp + AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB + OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy + AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC + 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT + BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF + hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr + Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ + JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR + C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN + 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb + ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT + xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd + F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa + 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p + HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj + ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN + KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt + QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb + MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 + jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g + PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF + VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq + THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T + qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF + W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj + l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ + bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 + KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i + fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI + aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 + kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed + ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS + qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 + JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 + wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM + tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls + 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn + H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC + 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs + YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS + HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q + D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA + cACFAIwAtwDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g + Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== + + ANSIBrightCyanColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECYwLjU3NjQ3MDU4 + ODIgMC42MzEzNzI1NDkgMC42MzEzNzI1NDkgMU8QJzAuNTA1OTkxOTM1NyAwLjU2NDg1 + ODQzNjYgMC41NjM2MzY1NDE0ABABgAKABtIUDRUWVU5TSUNDgAOABdIYDRkaV05TLmRh + dGFPEQxIAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQA + AAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVz + YwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAA + AiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wA + AACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAM + clRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmln + aHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNS + R0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAA + AADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAAD + kFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA + ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p + ZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2Ug + LSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg + c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVy + ZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxS + ZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAA + AAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA + AAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAt + ADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkA + rgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4 + AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB + +gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALr + AvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBME + IAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWG + BZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysH + PQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAkl + CToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1EL + aQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e + DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQ + uRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPF + E+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0X + QRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrs + GxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+Hukf + Ex8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNm + I5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0o + PyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1B + LXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy + 1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiM + OMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+ + 4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVV + RZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpM + cky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1Oq + U/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0Vb + lVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OX + Y+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9s + V2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUo + dYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+ + wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhp + iM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS + 45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951k + ndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKo + xKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl + tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XA + cMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1 + zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ + 8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf + 56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1 + UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//gATSHB0eH1okY2xh + c3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHiAhVk5TRGF0YVhOU09iamVjdNIc + HSMkXE5TQ29sb3JTcGFjZaIlIVxOU0NvbG9yU3BhY2XSHB0nKFdOU0NvbG9yoichXxAP + TlNLZXllZEFyY2hpdmVy0SssVHJvb3SAAQAIABEAGgAjAC0AMgA3AD8ARQBQAF0AYwBw + AIUAjAC1AN8A4QDjAOUA6gDwAPIA9AD5AQENTQ1PDVQNXw1oDXYNeg2BDYoNjw2cDZ8N + rA2xDbkNvA3ODdEN1gAAAAAAAAIBAAAAAAAAAC0AAAAAAAAAAAAAAAAAAA3Y + + ANSIBrightGreenColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjM0NTA5ODA3 + ODMgMC40MzEzNzI1NTMxIDAuNDU4ODIzNTAyMSAxTxAmMC4yNzY3MTk4OTggMC4zNTY2 + NTk1MzE2IDAuMzgyOTg0NzU3NAAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k + YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU + AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl + c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA + AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM + AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA + DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp + Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA + AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA + A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA + AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu + aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl + IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy + IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl + cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs + UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A + AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA + AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA + LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp + AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB + OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy + AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC + 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT + BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF + hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr + Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ + JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR + C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN + 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb + ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT + xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd + F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa + 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p + HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj + ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN + KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt + QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb + MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 + jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g + PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF + VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq + THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T + qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF + W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj + l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ + bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 + KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i + fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI + aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 + kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed + ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS + qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 + JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 + wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM + tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls + 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn + H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC + 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs + YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS + HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q + D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA + cACFAIwAtwDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g + Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== + + ANSIBrightMagentaColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECcwLjQyMzUyOTQx + MTggMC40NDMxMzcyNTQ5IDAuNzY4NjI3NDUxIDFPECcwLjM0NzkyMzgxNTMgMC4zNTEz + NzE2MTYxIDAuNzE3OTE2NjY3NQAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k + YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU + AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl + c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA + AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM + AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA + DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp + Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA + AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA + A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA + AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu + aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl + IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy + IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl + cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs + UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A + AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA + AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA + LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp + AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB + OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy + AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC + 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT + BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF + hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr + Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ + JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR + C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN + 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb + ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT + xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd + F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa + 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p + HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj + ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN + KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt + QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb + MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 + jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g + PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF + VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq + THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T + qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF + W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj + l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ + bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 + KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i + fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI + aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 + kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed + ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS + qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 + JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 + wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM + tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls + 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn + H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC + 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs + YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS + HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q + D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA + cACFAIwAtgDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g + Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== + + ANSIBrightRedColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjc5NjA3ODQz + MTQgMC4yOTQxMTc2NDcxIDAuMDg2Mjc0NTA5OCAxTxAoMC43NDE3NjI1MTg5IDAuMjEz + MjUyOTc2NSAwLjA3MzUzMDQyODExABABgAKABtIUDRUWVU5TSUNDgAOABdIYDRkaV05T + LmRhdGFPEQxIAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1T + RlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAz + ZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZ + WgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAA + A0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAA + AAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5 + cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAA + EnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAA + AAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1 + AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAA + AAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3 + dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3Bh + Y2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xv + dXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJl + ZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAA + ACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANc + ngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAA + AAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMA + KAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCk + AKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsB + MgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHp + AfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC + 4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQG + BBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcF + dwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZ + BysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJ + EAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5 + C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakN + ww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+ + EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MT + pBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6 + Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4a + xRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+ + HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwoj + OCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfc + KA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNct + DC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJj + Mpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4 + UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5g + PqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5F + EkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi + TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNT + X1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1 + W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBj + Q2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2un + a/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0 + zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4B + fmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+I + BIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIR + knqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc + 951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfg + qFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCsziz + rrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796 + v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bM + Ncy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo + 2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3m + lucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q0 + 9ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//gATSHB0eH1ok + Y2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHiAhVk5TRGF0YVhOU09iamVj + dNIcHSMkXE5TQ29sb3JTcGFjZaIlIVxOU0NvbG9yU3BhY2XSHB0nKFdOU0NvbG9yoich + XxAPTlNLZXllZEFyY2hpdmVy0SssVHJvb3SAAQAIABEAGgAjAC0AMgA3AD8ARQBQAF0A + YwBwAIUAjAC3AOIA5ADmAOgA7QDzAPUA9wD8AQQNUA1SDVcNYg1rDXkNfQ2EDY0Nkg2f + DaINrw20DbwNvw3RDdQN2QAAAAAAAAIBAAAAAAAAAC0AAAAAAAAAAAAAAAAAAA3b + + ANSIBrightWhiteColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjk5MjE1Njg2 + MjcgMC45NjQ3MDU4ODI0IDAuODkwMTk2MDc4NCAxTxAmMC45ODk0MzQxMjMgMC45NTc5 + NDM3OTcxIDAuODY0MDU5Njg2NwAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k + YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU + AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl + c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA + AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM + AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA + DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp + Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA + AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA + A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA + AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu + aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl + IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy + IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl + cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs + UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A + AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA + AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA + LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp + AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB + OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy + AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC + 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT + BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF + hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr + Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ + JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR + C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN + 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb + ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT + xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd + F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa + 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p + HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj + ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN + KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt + QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb + MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 + jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g + PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF + VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq + THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T + qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF + W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj + l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ + bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 + KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i + fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI + aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 + kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed + ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS + qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 + JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 + wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM + tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls + 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn + H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC + 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs + YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS + HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q + D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA + cACFAIwAtwDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g + Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== + + ANSIBrightYellowColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjM5NjA3ODQz + MTQgMC40ODIzNTI5NDEyIDAuNTEzNzI1NDkwMiAxTxAnMC4zMjQzNjYxNTIzIDAuNDA3 + MTc2NjczNCAwLjQzODUwNTY0OTYAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpXTlMu + ZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG + VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk + ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla + AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD + TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA + AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHly + aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS + c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA + AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA + AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA + AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3 + LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj + ZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91 + ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVm + ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA + LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye + AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo + AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA + qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy + ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB + 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg + AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE + EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 + BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH + Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ + CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL + UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D + Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q + mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk + E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX + HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF + GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e + 6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 + I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo + DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M + LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy + mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ + OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+ + oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS + RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM + KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf + U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb + RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND + Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr + /2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM + dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ + Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE + iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS + epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3 + nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co + UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu + tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ + 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 + zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ + bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW + 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 + wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4fWiRj + bGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2JqZWN0 + 0hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3KiJyFf + EA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAAXQBj + AHAAhQCMALcA4QDjAOUA5wDsAPIA9AD2APsBAw1PDVENVg1hDWoNeA18DYMNjA2RDZ4N + oQ2uDbMNuw2+DdAN0w3YAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADdo= + + ANSICyanColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECcwLjE2NDcwNTg4 + MjQgMC42MzEzNzI1NDkgMC41OTYwNzg0MzE0IDFPECcwLjE0Njc5NTMzMjQgMC41NzA4 + MjM2Njk0IDAuNTI1MDIyNzQ1MQAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k + YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU + AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl + c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA + AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM + AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA + DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp + Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA + AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA + A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA + AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu + aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl + IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy + IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl + cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs + UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A + AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA + AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA + LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp + AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB + OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy + AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC + 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT + BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF + hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr + Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ + JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR + C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN + 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb + ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT + xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd + F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa + 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p + HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj + ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN + KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt + QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb + MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 + jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g + PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF + VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq + THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T + qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF + W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj + l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ + bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 + KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i + fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI + aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 + kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed + ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS + qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 + JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 + wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM + tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls + 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn + H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC + 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs + YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS + HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q + D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA + cACFAIwAtgDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g + Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== + + ANSIGreenColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPEBwwLjUyMTU2ODY1 + NiAwLjYwMDAwMDAyMzggMCAxTxAoMC40NDk3NzQ1MDM3IDAuNTQxMTU0OTIxMSAwLjAx + NDI1OTA3Mzg4ABABgAKABtIUDRUWVU5TSUNDgAOABdIYDRkaV05TLmRhdGFPEQxIAAAM + SExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNS + R0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABs + d3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZ + WgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAA + A9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwA + AAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5 + OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5 + NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAA + ARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAA + AABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0 + cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAA + AAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAA + AAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBz + UkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3 + aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2Ug + Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAA + AABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNp + ZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAA + RQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADB + AMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIB + WQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAId + AiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYD + IQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARV + BGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF + 1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeG + B5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJ + jwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvI + C+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkO + ZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExEx + EU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkU + ahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfS + F/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4ob + shvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/ + H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8k + TSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkG + KTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYu + TC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4 + M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85 + vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/i + QCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdG + q0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2T + TdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtV + KFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzW + XSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOll + PWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25 + bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2 + +HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBH + gKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6K + ZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSK + lPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2f + i5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqP + qwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2 + ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48Jf + wtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbP + N8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF + 3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp + 0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK + +Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//gATSHB0eH1okY2xhc3NuYW1lWCRj + bGFzc2VzXU5TTXV0YWJsZURhdGGjHiAhVk5TRGF0YVhOU09iamVjdNIcHSMkXE5TQ29s + b3JTcGFjZaIlIVxOU0NvbG9yU3BhY2XSHB0nKFdOU0NvbG9yoichXxAPTlNLZXllZEFy + Y2hpdmVy0SssVHJvb3SAAQAIABEAGgAjAC0AMgA3AD8ARQBQAF0AYwBwAIUAjACrANYA + 2ADaANwA4QDnAOkA6wDwAPgNRA1GDUsNVg1fDW0NcQ14DYENhg2TDZYNow2oDbANsw3F + DcgNzQAAAAAAAAIBAAAAAAAAAC0AAAAAAAAAAAAAAAAAAA3P + + ANSIMagentaColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjgyNzQ1MDk4 + MDQgMC4yMTE3NjQ3MDU5IDAuNTA5ODAzOTIxNiAxTxAnMC43NzczODkyODc5IDAuMTA4 + MDI0NjE5NSAwLjQzNTE2NjM1ODkAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpXTlMu + ZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG + VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk + ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla + AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD + TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA + AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHly + aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS + c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA + AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA + AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA + AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3 + LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj + ZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91 + ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVm + ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA + LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye + AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo + AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA + qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy + ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB + 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg + AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE + EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 + BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH + Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ + CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL + UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D + Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q + mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk + E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX + HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF + GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e + 6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 + I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo + DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M + LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy + mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ + OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+ + oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS + RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM + KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf + U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb + RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND + Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr + /2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM + dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ + Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE + iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS + epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3 + nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co + UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu + tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ + 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 + zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ + bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW + 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 + wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4fWiRj + bGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2JqZWN0 + 0hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3KiJyFf + EA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAAXQBj + AHAAhQCMALcA4QDjAOUA5wDsAPIA9AD2APsBAw1PDVENVg1hDWoNeA18DYMNjA2RDZ4N + oQ2uDbMNuw2+DdAN0w3YAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADdo= + + ANSIRedColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECcwLjg2Mjc0NTA5 + OCAwLjE5NjA3ODQzMTQgMC4xODQzMTM3MjU1IDFPECcwLjgxOTI2OTY1NzEgMC4xMDg0 + MDY2NjI5IDAuMTQxNDU3MTcwMgAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k + YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU + AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl + c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA + AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM + AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA + DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp + Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA + AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA + A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA + AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu + aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl + IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy + IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl + cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs + UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A + AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA + AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA + LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp + AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB + OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy + AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC + 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT + BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF + hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr + Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ + JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR + C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN + 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb + ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT + xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd + F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa + 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p + HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj + ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN + KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt + QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb + MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 + jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g + PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF + VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq + THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T + qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF + W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj + l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ + bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 + KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i + fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI + aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 + kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed + ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS + qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 + JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 + wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM + tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls + 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn + H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC + 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs + YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS + HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q + D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA + cACFAIwAtgDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g + Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== + + ANSIWhiteColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjkzMzMzMzMz + MzMgMC45MDk4MDM5MjE2IDAuODM1Mjk0MTE3NiAxTxAnMC45MTYxMTA1NzUyIDAuODkw + MDEyMzIzOSAwLjc5NzgxMDk3MTcAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpXTlMu + ZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG + VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk + ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla + AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD + TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA + AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHly + aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS + c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA + AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA + AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA + AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3 + LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj + ZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91 + ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVm + ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA + LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye + AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo + AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA + qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy + ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB + 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg + AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE + EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 + BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH + Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ + CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL + UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D + Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q + mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk + E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX + HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF + GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e + 6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 + I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo + DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M + LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy + mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ + OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+ + oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS + RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM + KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf + U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb + RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND + Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr + /2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM + dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ + Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE + iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS + epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3 + nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co + UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu + tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ + 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 + zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ + bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW + 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 + wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4fWiRj + bGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2JqZWN0 + 0hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3KiJyFf + EA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAAXQBj + AHAAhQCMALcA4QDjAOUA5wDsAPIA9AD2APsBAw1PDVENVg1hDWoNeA18DYMNjA2RDZ4N + oQ2uDbMNuw2+DdAN0w3YAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADdo= + + ANSIYellowColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPEBwwLjcwOTgwMzky + MTYgMC41MzcyNTQ5MDIgMCAxTxAoMC42NDc0NjQ3NTIyIDAuNDY3NTE0MjQ2NyAwLjAx + ODY4Njg4MzE1ABABgAKABtIUDRUWVU5TSUNDgAOABdIYDRkaV05TLmRhdGFPEQxIAAAM + SExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNS + R0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABs + d3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZ + WgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAA + A9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwA + AAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5 + OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5 + NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAA + ARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAA + AABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0 + cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAA + AAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAA + AAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBz + UkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3 + aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2Ug + Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAA + AABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNp + ZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAA + RQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADB + AMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIB + WQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAId + AiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYD + IQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARV + BGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF + 1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeG + B5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJ + jwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvI + C+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkO + ZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExEx + EU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkU + ahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfS + F/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4ob + shvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/ + H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8k + TSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkG + KTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYu + TC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4 + M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85 + vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/i + QCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdG + q0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2T + TdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtV + KFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzW + XSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOll + PWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25 + bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2 + +HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBH + gKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6K + ZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSK + lPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2f + i5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqP + qwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2 + ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48Jf + wtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbP + N8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF + 3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp + 0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK + +Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//gATSHB0eH1okY2xhc3NuYW1lWCRj + bGFzc2VzXU5TTXV0YWJsZURhdGGjHiAhVk5TRGF0YVhOU09iamVjdNIcHSMkXE5TQ29s + b3JTcGFjZaIlIVxOU0NvbG9yU3BhY2XSHB0nKFdOU0NvbG9yoichXxAPTlNLZXllZEFy + Y2hpdmVy0SssVHJvb3SAAQAIABEAGgAjAC0AMgA3AD8ARQBQAF0AYwBwAIUAjACrANYA + 2ADaANwA4QDnAOkA6wDwAPgNRA1GDUsNVg1fDW0NcQ14DYENhg2TDZYNow2oDbANsw3F + DcgNzQAAAAAAAAIBAAAAAAAAAC0AAAAAAAAAAAAAAAAAAA3P + + BackgroundBlur + 0.0 + BackgroundColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECowLjAyNzQ1MTAw + NjcgMC4yMTE3NjQ3MjMxIDAuMjU4ODIzNDg0MiAwLjlPECowLjAzOTM4MDc1MTU1IDAu + MTYwMTE2NDQ5IDAuMTk4MzMyNzI3IDAuOQAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0Z + GldOUy5kYXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFj + c3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQ + AAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAA + FGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1 + ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gA + AAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAA + Q29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAA + AAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4x + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY + WVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+i + AAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVz + YwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6 + Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy + IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0Ig + Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAA + ACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQT + CwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAA + AAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkA + HgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCa + AJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8B + JQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZ + AeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsEC + ywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APs + A/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkF + WAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1 + BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII + 5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsL + CyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQN + jg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBD + EGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MT + YxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxay + FtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEa + dxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5q + HpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i + 3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6 + J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4s + oizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHy + MioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w3 + 1zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3g + PiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdE + ikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtT + S5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxS + x1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pW + WqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1Ykli + nGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3 + a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0 + FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1B + faF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteH + O4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/ + kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+c + HJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9 + p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuy + wrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6E + vv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfL + Nsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg + 2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5Pzl + hOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ + 86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwd + Hh9aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNP + YmplY3TSHB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xv + cqInIV8QD05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUA + UABdAGMAcACFAIwAuQDmAOgA6gDsAPEA9wD5APsBAAEIDVQNVg1bDWYNbw19DYENiA2R + DZYNow2mDbMNuA3ADcMN1Q3YDd0AAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN + 3w== + + Bell + + BlinkText + + CommandString + + CursorColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECcwLjM5NjA3ODQ2 + NzQgMC40ODIzNTI5NzIgMC41MTM3MjU0NTk2IDFPECYwLjMyNDM2NjE1MjMgMC40MDcx + NzY3MzMgMC40Mzg1MDU2NDk2ABABgAKABtIUDRUWVU5TSUNDgAOABdIYDRkaV05TLmRh + dGFPEQxIAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQA + AAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVz + YwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAA + AiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wA + AACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAM + clRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmln + aHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNS + R0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAA + AADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAAD + kFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA + ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p + ZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + ZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2Ug + LSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg + c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVy + ZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxS + ZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAA + AAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA + AAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAt + ADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkA + rgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4 + AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB + +gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALr + AvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBME + IAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWG + BZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysH + PQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAkl + CToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1EL + aQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e + DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQ + uRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPF + E+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0X + QRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrs + GxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+Hukf + Ex8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNm + I5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0o + PyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1B + LXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy + 1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiM + OMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+ + 4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVV + RZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpM + cky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1Oq + U/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0Vb + lVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OX + Y+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9s + V2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUo + dYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+ + wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhp + iM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS + 45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951k + ndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKo + xKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl + tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XA + cMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1 + zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ + 8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf + 56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1 + UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//gATSHB0eH1okY2xh + c3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHiAhVk5TRGF0YVhOU09iamVjdNIc + HSMkXE5TQ29sb3JTcGFjZaIlIVxOU0NvbG9yU3BhY2XSHB0nKFdOU0NvbG9yoichXxAP + TlNLZXllZEFyY2hpdmVy0SssVHJvb3SAAQAIABEAGgAjAC0AMgA3AD8ARQBQAF0AYwBw + AIUAjAC2AN8A4QDjAOUA6gDwAPIA9AD5AQENTQ1PDVQNXw1oDXYNeg2BDYoNjw2cDZ8N + rA2xDbkNvA3ODdEN1gAAAAAAAAIBAAAAAAAAAC0AAAAAAAAAAAAAAAAAAA3Y + + Font + + YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5TU2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNs + YXNzI0AuAAAAAAAAEBCAAoADXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRj + bGFzc2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEaG1Ryb290 + gAEIERojLTI3PEJLUltiaXJ0dniGi5afpqmyxMfMAAAAAAAAAQEAAAAAAAAAHAAAAAAA + AAAAAAAAAAAAAM4= + + FontAntialias + + FontWidthSpacing + 1.004032258064516 + Linewrap + + ProfileCurrentVersion + 2.0499999999999998 + RunCommandAsShell + + SelectionColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjkzMzMzMzM5 + NjkgMC45MDk4MDM5MjY5IDAuODM1Mjk0MjQ2NyAxTxAnMC45MTYxMTA1NzUyIDAuODkw + MDEyMzIzOSAwLjc5NzgxMTE1MDYAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpXTlMu + ZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG + VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk + ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla + AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD + TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA + AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHly + aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS + c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA + AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA + AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA + AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3 + LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj + ZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91 + ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVm + ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA + LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye + AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA + AAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo + AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA + qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy + ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB + 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg + AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE + EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 + BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH + Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ + CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL + UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D + Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q + mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk + E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX + HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF + GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e + 6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 + I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo + DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M + LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy + mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ + OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+ + oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS + RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM + KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf + U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb + RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND + Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr + /2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM + dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ + Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE + iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS + epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3 + nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co + UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu + tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ + 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 + zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ + bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW + 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 + wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4fWiRj + bGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2JqZWN0 + 0hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3KiJyFf + EA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAAXQBj + AHAAhQCMALcA4QDjAOUA5wDsAPIA9AD2APsBAw1PDVENVg1hDWoNeA18DYMNjA2RDZ4N + oQ2uDbMNuw2+DdAN0w3YAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADdo= + + ShowCommandKeyInTitle + + ShowDimensionsInTitle + + ShowShellCommandInTitle + + TerminalType + xterm-256color + TextBoldColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECcwLjU3NjQ3MDY3 + MzEgMC42MzEzNzI1MTE0IDAuNjMxMzcyNTcxIDFPECcwLjUwNTk5MjA1NDkgMC41NjQ4 + NTgzMTc0IDAuNTYzNjM2NTQxNAAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k + YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU + AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl + c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA + AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM + AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA + DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp + Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA + AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA + A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA + AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu + aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl + IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy + IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl + cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs + UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A + AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA + AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA + LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp + AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB + OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy + AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC + 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT + BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF + hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr + Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ + JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR + C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN + 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb + ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT + xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd + F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa + 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p + HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj + ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN + KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt + QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb + MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 + jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g + PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF + VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq + THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T + qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF + W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj + l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ + bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 + KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i + fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI + aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 + kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed + ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS + qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 + JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 + wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM + tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls + 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn + H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC + 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs + YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS + HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q + D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA + cACFAIwAtgDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g + Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== + + TextColor + + YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T + Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjUxMzcyNTUx + OTIgMC41ODAzOTIxODE5IDAuNTg4MjM1MzE4NyAxTxAmMC40NDA1ODAyMTkgMC41MDk2 + MjkzMDkyIDAuNTE2ODU3OTgxNwAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k + YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU + AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl + c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA + AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM + AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA + DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp + Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz + UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA + AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA + A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA + AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu + aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl + IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy + IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl + cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs + UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A + AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA + AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA + LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp + AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB + OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy + AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC + 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT + BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF + hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr + Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ + JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR + C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN + 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb + ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT + xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd + F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa + 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p + HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj + ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN + KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt + QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb + MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 + jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g + PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF + VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq + THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T + qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF + W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj + l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ + bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 + KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i + fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI + aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 + kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed + ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS + qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 + JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 + wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM + tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls + 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn + H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC + 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs + YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS + HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q + D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA + cACFAIwAtwDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g + Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== + + UseBoldFonts + + UseBrightBold + + blackColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg7JNIT2DkvUjPoO+F0s+AYY= + + blueColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmgyqcAj6DtOHsPoO+RUg/AYY= + + brightBlackColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg+ZzgjyDs44BPoNahyM+AYY= + + brightBlueColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg7yT4T6DEXcCP4POUAQ/AYY= + + brightCyanColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg7CIAT+Dj5oQP4N8ShA/AYY= + + brightGreenColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmgzyujT6DFZy2PoOYFsQ+AYY= + + brightMagentaColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmgxMjsj6D+uazPoNkyTc/AYY= + + brightRedColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmgyfkPT+D/15aPoMgl5Y9AYY= + + brightWhiteColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg49LfT+D0Dt1P4MGM10/AYY= + + brightYellowColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg1MTpj6DeHnQPoPQg+A+AYY= + + columnCount + 120 + cyanColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg4VRFj6DfyESP4PkZwY/AYY= + + greenColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg9lI5j6DIYkKP4PVjKU8AYY= + + magentaColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg/4CRz+DBTzdPYMgzt4+AYY= + + name + Solarized Dark + redColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg6i7UT+DUATePYMl2hA+AYY= + + rowCount + 37 + shellExitAction + 1 + type + Window Settings + whiteColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmgzqGaj+D2tdjP4NYPUw/AYY= + + yellowColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg0DAJT+DB17vPoM4Y8A8AYY= + + + From a8dbe4f3c26fba566774de4a7240d449299b603a Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 6 Oct 2016 13:38:44 +0300 Subject: [PATCH 117/230] changed path order --- system/proxy.zsh | 6 +++--- vim/vim.zsh | 5 ----- zsh/zshrc.symlink | 2 +- 3 files changed, 4 insertions(+), 9 deletions(-) delete mode 100644 vim/vim.zsh diff --git a/system/proxy.zsh b/system/proxy.zsh index 4420e3a..016c5e5 100644 --- a/system/proxy.zsh +++ b/system/proxy.zsh @@ -15,9 +15,9 @@ function usage() { state turn socks proxy on/off EXAMPLES: - set-proxy setup localhost 9000 user@example.com turn on socks proxy pointing to localhost:9000 with ssh socks to example.com" - set-proxy state on user@example.com turn on proxy and set up ssh socks server" - set-proxy state off turn off proxy" + set-proxy setup localhost 9000 user@example.com turn on socks proxy + set-proxy state on user@example.com turn on proxy and set up ssh socks server + set-proxy state off turn off proxy EOF } diff --git a/vim/vim.zsh b/vim/vim.zsh deleted file mode 100644 index 1348d45..0000000 --- a/vim/vim.zsh +++ /dev/null @@ -1,5 +0,0 @@ -BREW_VIM=/usr/local/bin/vim - -export EDITOR="vim" -alias vi=$BREW_VIM -alias vim=$BREW_VIM diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index 18aa101..12c171b 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -3,7 +3,7 @@ DOTFILES=$HOME/.dotfiles WORKSPACE=$HOME/space # PATH -export PATH="/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/sbin" +export PATH="/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin" # Special dirs zstyle ':completion:*' special-dirs true From 9f68d72689b14f9a8bb056f1ef2c0e91366fb6b4 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 13 Oct 2016 15:09:48 +0300 Subject: [PATCH 118/230] add yarn --- Brewfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Brewfile b/Brewfile index 8f018a7..9b9ff7f 100644 --- a/Brewfile +++ b/Brewfile @@ -15,6 +15,7 @@ brew 'vim' brew 'nmap' brew 'mitmproxy' brew 'node' +brew 'yarn' brew 'packer' brew 'terraform' brew 'tig' From df4ac8ae3d442332f809e97c7e6e21c44530e328 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 20 Oct 2016 23:19:03 +0300 Subject: [PATCH 119/230] webtorrent --- Brewfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Brewfile b/Brewfile index 9b9ff7f..aeeeaf0 100644 --- a/Brewfile +++ b/Brewfile @@ -29,6 +29,7 @@ brew 'wget' # Casks cask 'flux' cask 'transmission' +cask 'webtorrent' cask 'vlc' cask 'steam' cask 'boxer' From 705ad5dd61b8c0b5b1a946d0c51ee9554dba5cd3 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 3 Nov 2016 23:56:49 +0200 Subject: [PATCH 120/230] old vim conf clean; added keybase function --- keybase/keybase.zsh | 3 +++ vim/vimrc.symlink | 15 +++++---------- 2 files changed, 8 insertions(+), 10 deletions(-) create mode 100644 keybase/keybase.zsh diff --git a/keybase/keybase.zsh b/keybase/keybase.zsh new file mode 100644 index 0000000..7dd6583 --- /dev/null +++ b/keybase/keybase.zsh @@ -0,0 +1,3 @@ +function invoice() { + keybase pgp sign --detached --infile $1 --outfile $1.asc +} diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 0273bb9..d77ab4d 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -5,7 +5,6 @@ filetype off call plug#begin('~/.vim/plugged') " Common stuff -Plug 'markcornick/vim-terraform' Plug 'gnupg.vim' Plug 'fugitive.vim' Plug 'vitapluvia/vim-gurl' @@ -22,6 +21,7 @@ Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' " Language specific plugins +Plug 'hashivim/vim-terraform' Plug 'ekalinin/Dockerfile.vim' Plug 'fatih/vim-go', { 'for': 'go' } Plug 'nsf/gocode', { 'for': 'go', 'rtp': 'nvim', 'do': '~/.config/nvim/plugged/gocode/nvim/symlink.sh' } @@ -63,14 +63,7 @@ set smartcase " ignore case if search pattern is all lowercase, case-sensitive set ignorecase nnoremap :let @/="" -" Copy to OSX clipboard -" let os=substitute(system('uname'), '\n', '', '') -" if os == 'Darwin' -" set clipboard^=unnamed -" set clipboard^=unnamedplus" -" endif - -" vim-go settings +" vim-go let g:go_fmt_command = "goimports" au FileType go nmap te (go-test) au FileType go nmap ds (go-def-split) @@ -84,13 +77,15 @@ let g:airline_left_sep=' ' let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#left_sep = ' ' +" terraform +let g:terraform_fmt_on_save = 1 + " FZF nnoremap f :FZF " Language specifics autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent -autocmd FileType java setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType javascript setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent From adcadb4adb1d962aacacbfbb68c1ccb1e5951b7e Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 27 Nov 2016 13:09:36 +0200 Subject: [PATCH 121/230] change status bar --- tmux/tmux.conf.symlink | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index f6abd4c..e655089 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -23,13 +23,11 @@ set-option -g renumber-windows on # Set status bar set-window-option -g window-status-current-bg blue set-window-option -g window-status-current-fg white - set -g status-justify centre set -g status-bg black set -g status-fg blue - set -g status-left-length 60 - set -g status-left "#[fg=green]: #(ifconfig en0 | grep -w inet | cut -d ' ' -f 2) :" + set -g status-left "" set -g status-right-length 60 - set -g status-right "#[fg=green]: %d %b %Y #[fg=green]: %l:%M %p :" + set -g status-right "#[fg=green]#(ifconfig en0 | grep -w inet | cut -d ' ' -f 2) | %a %d %b %Y |%l:%M %p |" # large history set-option -g history-limit 100000 From 5acf9df1e2e31a45bd235e598e11b2333802de65 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 27 Nov 2016 15:53:38 +0200 Subject: [PATCH 122/230] unset nomatch --- zsh/config.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/zsh/config.zsh b/zsh/config.zsh index fc9b2b9..f266d2b 100644 --- a/zsh/config.zsh +++ b/zsh/config.zsh @@ -17,6 +17,7 @@ setopt SHARE_HISTORY # share history between sessions ??? setopt EXTENDED_HISTORY # add timestamps to history setopt PROMPT_SUBST setopt COMPLETE_IN_WORD +setopt NO_NOMATCH # don't expand aliases _before_ completion has finished # like: git comm-[tab] From a9e7b242103e2f34b8422daae98d0c666a3c738c Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 18 Dec 2016 16:03:55 +0200 Subject: [PATCH 123/230] added vault --- Brewfile | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Brewfile b/Brewfile index aeeeaf0..977fa49 100644 --- a/Brewfile +++ b/Brewfile @@ -18,6 +18,7 @@ brew 'node' brew 'yarn' brew 'packer' brew 'terraform' +brew 'vault' brew 'tig' brew 'tmux' brew 'reattach-to-user-namespace' @@ -25,6 +26,8 @@ brew 'tree' brew 'weechat' brew 'ipcalc' brew 'wget' +brew 'pandoc' +brew 'jsonnet' # Casks cask 'flux' From f250f3d0091a46498dce2c270ef7676ecf037010 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 18 Dec 2016 16:04:11 +0200 Subject: [PATCH 124/230] zsh ignore case --- zsh/config.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/zsh/config.zsh b/zsh/config.zsh index f266d2b..9c562ef 100644 --- a/zsh/config.zsh +++ b/zsh/config.zsh @@ -31,3 +31,4 @@ select-word-style bash # bring up menu selection zstyle ':completion:*' menu select +zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' 'r:|=*' 'l:|=* r:|=*' From b064d8ddafbb114d57dc3e4a488043f0fa4967bb Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 18 Dec 2016 16:05:16 +0200 Subject: [PATCH 125/230] changing status line --- tmux/tmux.conf.symlink | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index e655089..6a97021 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -27,7 +27,7 @@ set-option -g renumber-windows on set -g status-fg blue set -g status-left "" set -g status-right-length 60 - set -g status-right "#[fg=green]#(ifconfig en0 | grep -w inet | cut -d ' ' -f 2) | %a %d %b %Y |%l:%M %p |" + set -g status-right "#[fg=green]#(ifconfig en0 | grep -w inet | cut -d ' ' -f 2) | %a %d %b %Y | %l:%M %p |" # large history set-option -g history-limit 100000 From 36ef5b0609a1b25ee2f876a4f66902576db6d712 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 22 Dec 2016 16:30:07 +0200 Subject: [PATCH 126/230] new packages --- Brewfile | 1 + newsbeuter/install.sh | 7 ++++++ newsbeuter/newsbeuter.symlink/.gitignore | 3 +++ newsbeuter/newsbeuter.symlink/config | 32 ++++++++++++++++++++++++ newsbeuter/newsbeuter.symlink/urls | 10 ++++++++ tmux/tmux.conf.symlink | 2 +- vim/install.sh | 4 --- 7 files changed, 54 insertions(+), 5 deletions(-) create mode 100755 newsbeuter/install.sh create mode 100644 newsbeuter/newsbeuter.symlink/.gitignore create mode 100644 newsbeuter/newsbeuter.symlink/config create mode 100644 newsbeuter/newsbeuter.symlink/urls diff --git a/Brewfile b/Brewfile index 977fa49..f364f7e 100644 --- a/Brewfile +++ b/Brewfile @@ -28,6 +28,7 @@ brew 'ipcalc' brew 'wget' brew 'pandoc' brew 'jsonnet' +brew 'newsbeuter' # Casks cask 'flux' diff --git a/newsbeuter/install.sh b/newsbeuter/install.sh new file mode 100755 index 0000000..3c88213 --- /dev/null +++ b/newsbeuter/install.sh @@ -0,0 +1,7 @@ +#!/usr/bin/env sh +if [ ! -e ~/.config/newsbeuter ] +then + mkdir -p $HOME/.local/share/newsbeuter + ln -s $HOME/.newsbeuter $HOME/.config/newsbeuter +fi + diff --git a/newsbeuter/newsbeuter.symlink/.gitignore b/newsbeuter/newsbeuter.symlink/.gitignore new file mode 100644 index 0000000..47ab83b --- /dev/null +++ b/newsbeuter/newsbeuter.symlink/.gitignore @@ -0,0 +1,3 @@ +cache.db +history.cmdline +history.search diff --git a/newsbeuter/newsbeuter.symlink/config b/newsbeuter/newsbeuter.symlink/config new file mode 100644 index 0000000..198a238 --- /dev/null +++ b/newsbeuter/newsbeuter.symlink/config @@ -0,0 +1,32 @@ +auto-reload yes +reload-time 480 +reload-threads 5 + +browser "open %u" + +# vim-like bindings +bind-key j down +bind-key k up +bind-key ^J next-feed +bind-key ^K prev-feed +bind-key SPACE pagedown +bind-key b pageup +bind-key z sort +bind-key Z rev-sort +bind-key g home +bind-key G end +bind-key ^R random-unread +bind-key U reload-urls +bind-key o open-in-browser-and-mark-read +bind-key O open-in-browser +bind-key o open-in-browser article + +# Solarized dark +color background default default +color listnormal default default +color listfocus black yellow +color info default black +color article default default +highlight article "^(Title):.*$" blue default +highlight article "https?://[^ ]+" red default +highlight article "\\[image\\ [0-9]+\\]" green default diff --git a/newsbeuter/newsbeuter.symlink/urls b/newsbeuter/newsbeuter.symlink/urls new file mode 100644 index 0000000..443887f --- /dev/null +++ b/newsbeuter/newsbeuter.symlink/urls @@ -0,0 +1,10 @@ +http://xkcd.com/rss.xml comics +https://www.reddit.com/.rss?feed=82baac1841187471f02e0a1cc014628d547f45fe&user=vic3lord reddit + +https://github.com/kubernetes/kubernetes/releases.atom github +https://github.com/prometheus/prometheus/releases.atom github +https://github.com/prometheus/alertmanager/releases.atom github +https://github.com/hashicorp/nomad/releases.atom github +https://github.com/hashicorp/vault/releases.atom github +https://github.com/hashicorp/consul/releases.atom github +https://github.com/hashicorp/terraform/releases.atom github diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 6a97021..86fb1c9 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -27,7 +27,7 @@ set-option -g renumber-windows on set -g status-fg blue set -g status-left "" set -g status-right-length 60 - set -g status-right "#[fg=green]#(ifconfig en0 | grep -w inet | cut -d ' ' -f 2) | %a %d %b %Y | %l:%M %p |" + set -g status-right "#[fg=green]#(ifconfig en0 | grep -w inet | cut -d ' ' -f 2) | %a %d %b %Y | %H:%M |" # large history set-option -g history-limit 100000 diff --git a/vim/install.sh b/vim/install.sh index 7e92b5f..96798aa 100755 --- a/vim/install.sh +++ b/vim/install.sh @@ -7,9 +7,5 @@ if [ ! -f ~/.vim/autoload/plug.vim ] then curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim vim +PlugInstall +qall - - mkdir $HOME/.config - ln -s $HOME/.vim $HOME/.config/nvim - ln -s $HOME/.vimrc $HOME/.config/nvim/init.vim fi From a4bf1cfde9f5fca3deea327e8f40a9533eada36d Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 26 Dec 2016 11:33:51 +0200 Subject: [PATCH 127/230] weechat --- .gitignore | 3 +++ weechat.symlink/sec.conf | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.gitignore b/.gitignore index 1b67d59..57aa92d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ git/gitconfig.local.symlink + +weechat.symlink/sec.conf +weechat.symlink/irc.conf diff --git a/weechat.symlink/sec.conf b/weechat.symlink/sec.conf index 1d96ef2..94e63d7 100644 --- a/weechat.symlink/sec.conf +++ b/weechat.symlink/sec.conf @@ -10,4 +10,4 @@ salt = on [data] __passphrase__ = on -freenode_password = "84F0CCF4062F5779982F29377713E4667279332EA7CD852E7BBF76D511169D25C9B0CDA333E5A1B40E8ACB1876AEF463A0EE239D99B7" +freenode_password = "9857C3A7B552F06A10C576B0E8D8315760799C0C2D4358489058B8F088E002DD34379A95B79139FB638B7679563D9BFC9F560541DABB" From ae4878d02ce8a86c9499a2fa338e14b5f2020c21 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 23 Jan 2017 14:34:41 +0200 Subject: [PATCH 128/230] newsbeuter --- newsbeuter/aliases.zsh | 2 ++ newsbeuter/newsbeuter.symlink/urls | 3 +-- 2 files changed, 3 insertions(+), 2 deletions(-) create mode 100644 newsbeuter/aliases.zsh diff --git a/newsbeuter/aliases.zsh b/newsbeuter/aliases.zsh new file mode 100644 index 0000000..9b9de24 --- /dev/null +++ b/newsbeuter/aliases.zsh @@ -0,0 +1,2 @@ +alias news="newsbeuter -q" +alias rss="news" diff --git a/newsbeuter/newsbeuter.symlink/urls b/newsbeuter/newsbeuter.symlink/urls index 443887f..eb9929e 100644 --- a/newsbeuter/newsbeuter.symlink/urls +++ b/newsbeuter/newsbeuter.symlink/urls @@ -1,9 +1,8 @@ http://xkcd.com/rss.xml comics -https://www.reddit.com/.rss?feed=82baac1841187471f02e0a1cc014628d547f45fe&user=vic3lord reddit - https://github.com/kubernetes/kubernetes/releases.atom github https://github.com/prometheus/prometheus/releases.atom github https://github.com/prometheus/alertmanager/releases.atom github +https://github.com/grafana/grafana/releases.atom github https://github.com/hashicorp/nomad/releases.atom github https://github.com/hashicorp/vault/releases.atom github https://github.com/hashicorp/consul/releases.atom github From 6000d484c5511e8e6039c7260237fba179d26002 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Wed, 25 Jan 2017 10:48:41 +0200 Subject: [PATCH 129/230] removed Flux, using native night-shift --- Brewfile | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/Brewfile b/Brewfile index f364f7e..2b6f0af 100644 --- a/Brewfile +++ b/Brewfile @@ -31,17 +31,18 @@ brew 'jsonnet' brew 'newsbeuter' # Casks -cask 'flux' cask 'transmission' -cask 'webtorrent' cask 'vlc' +cask 'airflow' cask 'steam' cask 'boxer' cask 'virtualbox' +cask 'firefox' cask 'torbrowser' cask 'whatsapp' cask 'wireshark' cask 'openzfs' +cask 'sequel-pro' cask 'google-chrome' cask 'google-drive' cask 'google-cloud-sdk' From ecd8f96eaaf3cd1fcfdf06fa274a9f1742c61f0d Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 23 Feb 2017 01:34:45 +0200 Subject: [PATCH 130/230] tmux is cleaner --- Brewfile | 3 +- fzf/fzf.zsh | 4 - newsbeuter/newsbeuter.symlink/urls | 7 ++ system/solarized-dark-256.terminal | 158 +++++++++++++++++++++++++ tmux/tmux.conf.symlink | 183 +++++++++++++++-------------- vim/vimrc.symlink | 1 + 6 files changed, 262 insertions(+), 94 deletions(-) create mode 100644 system/solarized-dark-256.terminal diff --git a/Brewfile b/Brewfile index 2b6f0af..4521df2 100644 --- a/Brewfile +++ b/Brewfile @@ -9,7 +9,6 @@ brew 'glide' brew 'iperf' brew 'fzf' brew 'jq' -brew 'keybase' brew 'mercurial' brew 'vim' brew 'nmap' @@ -29,6 +28,7 @@ brew 'wget' brew 'pandoc' brew 'jsonnet' brew 'newsbeuter' +brew 'teleconsole' # Casks cask 'transmission' @@ -39,6 +39,7 @@ cask 'boxer' cask 'virtualbox' cask 'firefox' cask 'torbrowser' +cask 'keybase' cask 'whatsapp' cask 'wireshark' cask 'openzfs' diff --git a/fzf/fzf.zsh b/fzf/fzf.zsh index bed53aa..13db3cb 100644 --- a/fzf/fzf.zsh +++ b/fzf/fzf.zsh @@ -1,5 +1 @@ -export FZF_DEFAULT_OPTS=' - --color dark,hl:33,hl+:37,fg+:235,bg+:136,fg+:254 - --color info:254,prompt:37,spinner:108,pointer:235,marker:235 -' source "/usr/local/opt/fzf/shell/key-bindings.zsh" diff --git a/newsbeuter/newsbeuter.symlink/urls b/newsbeuter/newsbeuter.symlink/urls index eb9929e..c62a00b 100644 --- a/newsbeuter/newsbeuter.symlink/urls +++ b/newsbeuter/newsbeuter.symlink/urls @@ -1,4 +1,11 @@ +# Comics http://xkcd.com/rss.xml comics + +# Blogs +https://blog.filippo.io/rss/ blog +https://jvns.ca/atom.xml blog + +# Github releases https://github.com/kubernetes/kubernetes/releases.atom github https://github.com/prometheus/prometheus/releases.atom github https://github.com/prometheus/alertmanager/releases.atom github diff --git a/system/solarized-dark-256.terminal b/system/solarized-dark-256.terminal new file mode 100644 index 0000000..85e9b19 --- /dev/null +++ b/system/solarized-dark-256.terminal @@ -0,0 +1,158 @@ + + + + + BackgroundColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB + TxAtMC4wMTU5MjQ0MDUzMSAwLjEyNjUyMDkxNjggMC4xNTk2OTYwMTI3IDAuOTYA0hAR + EhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXll + ZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhPXGJkZpabpq+3usPV2N0AAAAAAAAB + AQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA3w== + + BlinkText + + CursorColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB + TxAnMC40NDA1ODAyNDg4IDAuNTA5NjI5MzA5MiAwLjUxNjg1Nzk4MTcA0hAREhNaJGNs + YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp + dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhPXGJkZpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA + AAAZAAAAAAAAAAAAAAAAAAAA2Q== + + Font + + YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKQHCBESVSRudWxs1AkKCwwNDg8QViRjbGFzc1ZOU05hbWVWTlNTaXplWE5TZkZs + YWdzgAOAAiNAJgAAAAAAABAQXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRj + bGFzc2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEaG1Ryb290 + gAEIERojLTI3PEJLUllgaWttdniGi5afpqmyxMfMAAAAAAAAAQEAAAAAAAAAHAAAAAAA + AAAAAAAAAAAAAM4= + + FontAntialias + + FontWidthSpacing + 1.004032258064516 + ProfileCurrentVersion + 2.0099999999999998 + SelectionColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB + TxAoMC4wMzkzODA3MzY2NSAwLjE2MDExNjQ2MzkgMC4xOTgzMzI3NTY4ANIQERITWiRj + bGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRBcmNo + aXZlctEXGFRyb290gAEIERojLTI3O0FIT1xiZGaRlqGqsrW+0NPYAAAAAAAAAQEAAAAA + AAAAGQAAAAAAAAAAAAAAAAAAANo= + + ShowWindowSettingsNameInTitle + + TerminalType + xterm-256color + TextBoldColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB + TxAmMC41MDU5OTE5MzU3IDAuNTY0ODU4Mzc3IDAuNTYzNjM2NTQxNADSEBESE1okY2xh + c3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVkQXJjaGl2 + ZXLRFxhUcm9vdIABCBEaIy0yNztBSE9cYmRmj5SfqLCzvM7R1gAAAAAAAAEBAAAAAAAA + ABkAAAAAAAAAAAAAAAAAAADY + + TextColor + + YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS + AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB + TxAnMC40NDA1ODAyNDg4IDAuNTA5NjI5MzA5MiAwLjUxNjg1Nzk4MTcA0hAREhNaJGNs + YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp + dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhPXGJkZpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA + AAAZAAAAAAAAAAAAAAAAAAAA2Q== + + UseBrightBold + + blackColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg7JNIT2DkvUjPoO+F0s+AYY= + + blueColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmgyqcAj6DtOHsPoO+RUg/AYY= + + brightBlackColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg+ZzgjyDs44BPoNahyM+AYY= + + brightBlueColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg7yT4T6DEXcCP4POUAQ/AYY= + + brightCyanColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg7CIAT+Dj5oQP4N8ShA/AYY= + + brightGreenColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmgzyujT6DFZy2PoOYFsQ+AYY= + + brightMagentaColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmgxMjsj6D+uazPoNkyTc/AYY= + + brightRedColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmgyfkPT+D/15aPoMgl5Y9AYY= + + brightWhiteColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg49LfT+D0Dt1P4MGM10/AYY= + + brightYellowColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg1MTpj6DeHnQPoPQg+A+AYY= + + cyanColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg4VRFj6DfyESP4PkZwY/AYY= + + greenColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg9lI5j6DIYkKP4PVjKU8AYY= + + magentaColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg/4CRz+DBTzdPYMgzt4+AYY= + + name + Solarized Dark xterm-256color + redColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg6i7UT+DUATePYMl2hA+AYY= + + type + Window Settings + whiteColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmgzqGaj+D2tdjP4NYPUw/AYY= + + yellowColour + + BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm + ZmZmg0DAJT+DB17vPoM4Y8A8AYY= + + + diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 86fb1c9..21be1cc 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -1,98 +1,103 @@ -# use zsh - set -g default-shell $SHELL - -# use CTRL-A as modifier - set-option -g prefix C-a - unbind C-b - -# Support for 256 colors - set -g default-terminal "screen-256color" - -# bind vi key-mapping - set -g status-keys vi - -# Window index base 1 - set -g base-index 1 - -# Pane index base 1 - set-window-option -g pane-base-index 1 - -# Auto renumber when tab is deleted -set-option -g renumber-windows on - -# Set status bar - set-window-option -g window-status-current-bg blue - set-window-option -g window-status-current-fg white - set -g status-bg black - set -g status-fg blue - set -g status-left "" - set -g status-right-length 60 - set -g status-right "#[fg=green]#(ifconfig en0 | grep -w inet | cut -d ' ' -f 2) | %a %d %b %Y | %H:%M |" - -# large history - set-option -g history-limit 100000 - -# display active pane in diff background - set-option -g pane-active-border-fg yellow - set-option -g pane-active-border-bg black - -# highlight status bar on activity - setw -g monitor-activity on - set -g visual-activity on - set -g visual-bell on - -# automatically set window title - set -g automatic-rename - -# speed up -set-option -s escape-time 10 - -# vi-style controls for copy mode - set-window-option -g mode-keys vi - -# Setup 'v' to begin selection as in Vim - bind-key -t vi-copy v begin-selection - bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" - -# Update default binding of `Enter` to use copy-pipe - unbind -t vi-copy Enter - bind-key -t vi-copy Enter copy-pipe "reattach-to-user-namespace pbcopy" - -# bind C-a to the previously active window - bind-key C-a last-window +## global config + +set -g default-shell $SHELL # zsh +set -g mouse on # enable mouse +set -g terminal-overrides ',xterm-256color:Tc' # true colors +set-option -s escape-time 10 # speed up +set -g base-index 1 # start window index at 1 +set-window-option -g pane-base-index 1 # pane index at 1 +set-option -g renumber-windows on # auto renumber when tab is deleted +set-option -g history-limit 100000 # large history +setw -g monitor-activity on # monitor window activity +set -g visual-activity on # enable visual activity +set -g visual-bell on # enable visual bell +set-window-option -g automatic-rename off # auto rename off +set-option -g allow-rename off # disable renaming + + +## key bindings +set-option -g prefix C-a # bind CTRL-a +unbind C-b # unbind CTRL-b +bind-key C-a last-window # bind C-a to the previously active window + +set -g status-keys vi # bind vi key-mapping +set-window-option -g mode-keys vi # vi-style controls for copy mode +bind-key -t vi-copy v begin-selection # setup 'v' to begin selection as in Vim + +# macOS clipboard +bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" # force a reload of the config file - bind C-r source-file ~/.tmux.conf \; run-shell "echo 'Configuration Reloaded'" +bind C-r source-file ~/.tmux.conf \; display "reloaded configuration" -# split windows like vim. - Note: vim's definition of a horizontal/vertical split is reversed from tmux's - unbind s - bind s split-window -v -c "#{pane_current_path}" - bind C-s split-window -v -l 22 -c "#{pane_current_path}" - bind v split-window -h -c "#{pane_current_path}" - bind C-v split-window -h -l 131 -c "#{pane_current_path}" - bind c new-window -c "#{pane_current_path}" +# split windows like vim +unbind s +bind s split-window -v -c "#{pane_current_path}" +bind C-s split-window -v -l 22 -c "#{pane_current_path}" +bind v split-window -h -c "#{pane_current_path}" +bind C-v split-window -h -l 131 -c "#{pane_current_path}" +bind c new-window -c "#{pane_current_path}" # navigate panes with hjkl - bind h select-pane -L - bind j select-pane -D - bind k select-pane -U - bind l select-pane -R +bind h select-pane -L +bind j select-pane -D +bind k select-pane -U +bind l select-pane -R # resize panes like vim - bind < resize-pane -L 10 - bind L resize-pane -L 100 - bind > resize-pane -R 10 - bind R resize-pane -R 100 - bind - resize-pane -D 5 - bind D resize-pane -D 36 - bind + resize-pane -U 5 - bind U resize-pane -U 35 - -# bind : to command-prompt like vim this is the default in tmux already - bind : command-prompt - -# enable mouse scrolling - set -g mouse on +bind -r < resize-pane -L 10 +bind -r L resize-pane -L 100 +bind -r > resize-pane -R 10 +bind -r R resize-pane -R 100 +bind -r - resize-pane -D 5 +bind -r D resize-pane -D 36 +bind -r + resize-pane -U 5 +bind -r U resize-pane -U 35 # launch man page in split screen - bind / command-prompt "split-window 'exec man %%'" +bind / command-prompt "split-window 'exec man %%'" + +## colors and status bar +set -g status-bg black +set -g status-fg cyan + +# window status +set -g window-status-format " #I:#W#F " +set -g window-status-current-format " #I:#W#F " +set -g window-status-separator "" +set -g window-status-current-bg yellow +set -g window-status-current-fg black +set -g window-status-activity-bg red +set -g window-status-activity-fg black + +# panes +set -g pane-border-bg default +set -g pane-border-fg default +set -g pane-active-border-bg default +set -g pane-active-border-fg green +set -g display-panes-colour default +set -g display-panes-active-colour default + +# left +set -g status-left-bg black +set -g status-left-fg green +set -g status-left-length 40 +set -g status-left "#[fg=yellow]#I #[fg=cyan]#P #[fg=white]» " + +# right +set -g status-right-bg black +set -g status-right-fg cyan +set -g status-right-length 40 +set -g status-right "#(ifconfig en0 | grep -w inet | cut -d ' ' -f 2) | %a %d %b %Y | %H:%M " + +# clock mode +set -g clock-mode-colour red +set -g clock-mode-style 24 + +# message +set -g message-bg default +set -g message-fg default + +# command message +set -g message-command-bg default +set -g message-command-fg default diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index d77ab4d..586056f 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -54,6 +54,7 @@ set undofile set undodir=$HOME/.local/share/nvim/undo set mouse=nv set cursorline +set cursorcolumn " Search settings set incsearch " show search matches as you type From ae5d3be6752b990ecf7a2874d5fdf9d55993e3fe Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 23 Feb 2017 01:36:51 +0200 Subject: [PATCH 131/230] fix blank line --- tmux/tmux.conf.symlink | 1 - 1 file changed, 1 deletion(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 21be1cc..d710d46 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -1,5 +1,4 @@ ## global config - set -g default-shell $SHELL # zsh set -g mouse on # enable mouse set -g terminal-overrides ',xterm-256color:Tc' # true colors From fc6bdbcd4096356a95c7ca865fdc3e6d7f6ef61f Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 23 Feb 2017 01:37:32 +0200 Subject: [PATCH 132/230] Update tmux.conf.symlink --- tmux/tmux.conf.symlink | 1 + 1 file changed, 1 insertion(+) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index d710d46..e4303e1 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -56,6 +56,7 @@ bind -r U resize-pane -U 35 # launch man page in split screen bind / command-prompt "split-window 'exec man %%'" + ## colors and status bar set -g status-bg black set -g status-fg cyan From 0aca8e6b5c38b61c4f1687d8ae5e5b5a216c6148 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 23 Feb 2017 01:41:13 +0200 Subject: [PATCH 133/230] changed colors and disabled visual-activity --- tmux/tmux.conf.symlink | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index e4303e1..f84d8f2 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -8,7 +8,6 @@ set-window-option -g pane-base-index 1 # pane index at 1 set-option -g renumber-windows on # auto renumber when tab is deleted set-option -g history-limit 100000 # large history setw -g monitor-activity on # monitor window activity -set -g visual-activity on # enable visual activity set -g visual-bell on # enable visual bell set-window-option -g automatic-rename off # auto rename off set-option -g allow-rename off # disable renaming @@ -62,10 +61,10 @@ set -g status-bg black set -g status-fg cyan # window status -set -g window-status-format " #I:#W#F " -set -g window-status-current-format " #I:#W#F " +set -g window-status-format " #I:#W:#F " +set -g window-status-current-format " #I:#W:#F " set -g window-status-separator "" -set -g window-status-current-bg yellow +set -g window-status-current-bg cyan set -g window-status-current-fg black set -g window-status-activity-bg red set -g window-status-activity-fg black From 62dd56a9bc0666d03994c09a4d1d5922674435e7 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 23 Feb 2017 09:55:56 +0200 Subject: [PATCH 134/230] tmux color display panes red --- git/gitconfig.symlink | 2 +- tmux/tmux.conf.symlink | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index bf8f648..ff3f970 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -7,7 +7,7 @@ co = checkout br = branch st = status -s - edit = "!nvim `git ls-files -m` -p" + edit = "!vim `git ls-files -m` -p" [push] default = simple [color] diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index f84d8f2..de9586b 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -74,8 +74,8 @@ set -g pane-border-bg default set -g pane-border-fg default set -g pane-active-border-bg default set -g pane-active-border-fg green -set -g display-panes-colour default -set -g display-panes-active-colour default +set -g display-panes-colour red +set -g display-panes-active-colour red # left set -g status-left-bg black From e242cee6c7515105294b81f4a4773424983ca33e Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 23 Feb 2017 09:56:40 +0200 Subject: [PATCH 135/230] vim export EDITOR --- vim/vim.zsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 vim/vim.zsh diff --git a/vim/vim.zsh b/vim/vim.zsh new file mode 100644 index 0000000..c4620b4 --- /dev/null +++ b/vim/vim.zsh @@ -0,0 +1 @@ +export EDITOR='vim' From 4f0fdc29a7904963fc465d35130068dcf21689ed Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 26 Feb 2017 13:37:14 +0200 Subject: [PATCH 136/230] fzf: let it know it runs under tmux --- fzf/fzf.zsh | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fzf/fzf.zsh b/fzf/fzf.zsh index 13db3cb..27e2b03 100644 --- a/fzf/fzf.zsh +++ b/fzf/fzf.zsh @@ -1 +1,4 @@ source "/usr/local/opt/fzf/shell/key-bindings.zsh" + +# Open as tmux pane +export FZF_TMUX=1 From 68927fbe6ac3914fa4bd520ce9ab063d75ba73d0 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 26 Feb 2017 13:37:42 +0200 Subject: [PATCH 137/230] tmux: remove auto rename --- tmux/tmux.conf.symlink | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index de9586b..daa821f 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -9,8 +9,7 @@ set-option -g renumber-windows on # auto renumber when tab is deleted set-option -g history-limit 100000 # large history setw -g monitor-activity on # monitor window activity set -g visual-bell on # enable visual bell -set-window-option -g automatic-rename off # auto rename off -set-option -g allow-rename off # disable renaming +set-option -g allow-rename off # disable window renaming ## key bindings From 8d6142b3752acfbbfda47d7fce288e3d4371f540 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 26 Feb 2017 13:38:10 +0200 Subject: [PATCH 138/230] airline sep --- vim/vimrc.symlink | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 586056f..27aa8b3 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -36,6 +36,7 @@ filetype plugin indent on " Silent errors if colorscheme not exist silent! colorscheme solarized +set t_Co=256 " true colors " Global syntax on @@ -73,10 +74,10 @@ au FileType go nmap dt (go-def-tab) au FileType go nmap gd (go-doc) " airline -let g:airline_right_sep=' ' -let g:airline_left_sep=' ' +let g:airline_right_sep='' +let g:airline_left_sep='' let g:airline#extensions#tabline#enabled = 1 -let g:airline#extensions#tabline#left_sep = ' ' +let g:airline#extensions#tabline#left_sep = '' " terraform let g:terraform_fmt_on_save = 1 From aed286b9721b736ad43d35c29f0634ca2e6348c5 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 26 Feb 2017 13:38:29 +0200 Subject: [PATCH 139/230] weechat --- weechat.symlink/alias.conf | 7 +++++++ weechat.symlink/charset.conf | 7 +++++++ weechat.symlink/exec.conf | 7 +++++++ weechat.symlink/fifo.conf | 14 ++++++++++++++ weechat.symlink/logger.conf | 7 +++++++ weechat.symlink/plugins.conf | 7 +++++++ weechat.symlink/relay.conf | 8 ++++++++ weechat.symlink/script.conf | 7 +++++++ weechat.symlink/sec.conf | 9 ++++++++- weechat.symlink/trigger.conf | 12 ++++++++++++ weechat.symlink/weechat.conf | 8 ++++++++ weechat.symlink/xfer.conf | 7 +++++++ 12 files changed, 99 insertions(+), 1 deletion(-) create mode 100644 weechat.symlink/fifo.conf diff --git a/weechat.symlink/alias.conf b/weechat.symlink/alias.conf index 069fc02..d993aa0 100644 --- a/weechat.symlink/alias.conf +++ b/weechat.symlink/alias.conf @@ -1,6 +1,13 @@ # # weechat -- alias.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [cmd] AAWAY = "allserv /away" diff --git a/weechat.symlink/charset.conf b/weechat.symlink/charset.conf index c3ce725..80ec6e9 100644 --- a/weechat.symlink/charset.conf +++ b/weechat.symlink/charset.conf @@ -1,6 +1,13 @@ # # weechat -- charset.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [default] decode = "US-ASCII" diff --git a/weechat.symlink/exec.conf b/weechat.symlink/exec.conf index 39f1929..519ccc1 100644 --- a/weechat.symlink/exec.conf +++ b/weechat.symlink/exec.conf @@ -1,6 +1,13 @@ # # weechat -- exec.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [command] default_options = "" diff --git a/weechat.symlink/fifo.conf b/weechat.symlink/fifo.conf new file mode 100644 index 0000000..904985d --- /dev/null +++ b/weechat.symlink/fifo.conf @@ -0,0 +1,14 @@ +# +# weechat -- fifo.conf +# +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# + +[file] +enabled = on +path = "%h/weechat_fifo" diff --git a/weechat.symlink/logger.conf b/weechat.symlink/logger.conf index 89fed53..09b543e 100644 --- a/weechat.symlink/logger.conf +++ b/weechat.symlink/logger.conf @@ -1,6 +1,13 @@ # # weechat -- logger.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [look] backlog = 20 diff --git a/weechat.symlink/plugins.conf b/weechat.symlink/plugins.conf index c0b3234..e084ea2 100644 --- a/weechat.symlink/plugins.conf +++ b/weechat.symlink/plugins.conf @@ -1,6 +1,13 @@ # # weechat -- plugins.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [var] fifo.fifo = "on" diff --git a/weechat.symlink/relay.conf b/weechat.symlink/relay.conf index 2795023..565dd14 100644 --- a/weechat.symlink/relay.conf +++ b/weechat.symlink/relay.conf @@ -1,6 +1,13 @@ # # weechat -- relay.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [look] auto_open_buffer = on @@ -18,6 +25,7 @@ text_bg = default text_selected = white [network] +allow_empty_password = off allowed_ips = "" bind_address = "" clients_purge_delay = 0 diff --git a/weechat.symlink/script.conf b/weechat.symlink/script.conf index e1577d4..2cfb4e4 100644 --- a/weechat.symlink/script.conf +++ b/weechat.symlink/script.conf @@ -1,6 +1,13 @@ # # weechat -- script.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [look] columns = "%s %n %V %v %u | %d | %t" diff --git a/weechat.symlink/sec.conf b/weechat.symlink/sec.conf index 94e63d7..dd8eef7 100644 --- a/weechat.symlink/sec.conf +++ b/weechat.symlink/sec.conf @@ -1,6 +1,13 @@ # # weechat -- sec.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [crypt] cipher = aes256 @@ -10,4 +17,4 @@ salt = on [data] __passphrase__ = on -freenode_password = "9857C3A7B552F06A10C576B0E8D8315760799C0C2D4358489058B8F088E002DD34379A95B79139FB638B7679563D9BFC9F560541DABB" +freenode_password = "35D2E77ADDF69E3A04127612DBBEE3EDB8852A1D7900A9E584FC315B23AA9B6D5C27C34099138C3901D3F078A2D96F814E8C" diff --git a/weechat.symlink/trigger.conf b/weechat.symlink/trigger.conf index 6de8bf5..8f6789b 100644 --- a/weechat.symlink/trigger.conf +++ b/weechat.symlink/trigger.conf @@ -1,6 +1,13 @@ # # weechat -- trigger.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [look] enabled = on @@ -9,6 +16,7 @@ monitor_strip_colors = off [color] flag_command = lightgreen flag_conditions = yellow +flag_post_action = lightblue flag_regex = lightcyan flag_return_code = lightmagenta regex = white @@ -22,6 +30,7 @@ beep.command = "/print -beep" beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})" beep.enabled = on beep.hook = print +beep.post_action = none beep.regex = "" beep.return_code = ok cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth" @@ -29,6 +38,7 @@ cmd_pass.command = "" cmd_pass.conditions = "" cmd_pass.enabled = on cmd_pass.hook = modifier +cmd_pass.post_action = none cmd_pass.regex = "==^((/(msg|m|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" cmd_pass.return_code = ok msg_auth.arguments = "5000|irc_message_auth" @@ -36,6 +46,7 @@ msg_auth.command = "" msg_auth.conditions = "" msg_auth.enabled = on msg_auth.hook = modifier +msg_auth.post_action = none msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" msg_auth.return_code = ok server_pass.arguments = "5000|input_text_display;5000|history_add" @@ -43,5 +54,6 @@ server_pass.command = "" server_pass.conditions = "" server_pass.enabled = on server_pass.hook = modifier +server_pass.post_action = none server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}" server_pass.return_code = ok diff --git a/weechat.symlink/weechat.conf b/weechat.symlink/weechat.conf index 472ef4e..cf23aa8 100644 --- a/weechat.symlink/weechat.conf +++ b/weechat.symlink/weechat.conf @@ -1,6 +1,13 @@ # # weechat -- weechat.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [debug] @@ -13,6 +20,7 @@ sys_rlimit = "" [look] align_end_of_lines = message +align_multiline_words = on bar_more_down = "++" bar_more_left = "<<" bar_more_right = ">>" diff --git a/weechat.symlink/xfer.conf b/weechat.symlink/xfer.conf index 39ac5bd..c7ef602 100644 --- a/weechat.symlink/xfer.conf +++ b/weechat.symlink/xfer.conf @@ -1,6 +1,13 @@ # # weechat -- xfer.conf # +# WARNING: It is NOT recommended to edit this file by hand, +# especially if WeeChat is running. +# +# Use /set or similar command to change settings in WeeChat. +# +# For more info, see: https://weechat.org/doc/quickstart +# [look] auto_open_buffer = on From b8ad8bf4ad621c0c59b0c344511012eb78c9efe9 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 27 Feb 2017 23:56:05 +0200 Subject: [PATCH 140/230] new feeds and changed colors --- newsbeuter/newsbeuter.symlink/config | 11 ++++++----- newsbeuter/newsbeuter.symlink/urls | 4 +++- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/newsbeuter/newsbeuter.symlink/config b/newsbeuter/newsbeuter.symlink/config index 198a238..d354af5 100644 --- a/newsbeuter/newsbeuter.symlink/config +++ b/newsbeuter/newsbeuter.symlink/config @@ -22,11 +22,12 @@ bind-key O open-in-browser bind-key o open-in-browser article # Solarized dark -color background default default -color listnormal default default -color listfocus black yellow -color info default black -color article default default +color background default default +color listnormal default default +color listfocus white black +color listfocus_unread black white +color info cyan black +color article default default highlight article "^(Title):.*$" blue default highlight article "https?://[^ ]+" red default highlight article "\\[image\\ [0-9]+\\]" green default diff --git a/newsbeuter/newsbeuter.symlink/urls b/newsbeuter/newsbeuter.symlink/urls index c62a00b..363c007 100644 --- a/newsbeuter/newsbeuter.symlink/urls +++ b/newsbeuter/newsbeuter.symlink/urls @@ -2,8 +2,9 @@ http://xkcd.com/rss.xml comics # Blogs -https://blog.filippo.io/rss/ blog +https://blog.filippo.io/rss/ blog security https://jvns.ca/atom.xml blog +http://www.geektime.co.il/feed blog news # Github releases https://github.com/kubernetes/kubernetes/releases.atom github @@ -14,3 +15,4 @@ https://github.com/hashicorp/nomad/releases.atom github https://github.com/hashicorp/vault/releases.atom github https://github.com/hashicorp/consul/releases.atom github https://github.com/hashicorp/terraform/releases.atom github +https://github.com/bitly/oauth2_proxy/releases.atom github From 09053b2c685ff8547967f8fc050ea797d2bd1c79 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 26 Mar 2017 14:58:23 +0300 Subject: [PATCH 141/230] news --- newsbeuter/newsbeuter.symlink/urls | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/newsbeuter/newsbeuter.symlink/urls b/newsbeuter/newsbeuter.symlink/urls index 363c007..5c0093b 100644 --- a/newsbeuter/newsbeuter.symlink/urls +++ b/newsbeuter/newsbeuter.symlink/urls @@ -2,9 +2,11 @@ http://xkcd.com/rss.xml comics # Blogs -https://blog.filippo.io/rss/ blog security +https://blog.filippo.io/rss/ blog https://jvns.ca/atom.xml blog -http://www.geektime.co.il/feed blog news +http://www.geektime.co.il/feed blog +http://googlecloudplatform.blogspot.com/atom.xml blog +https://blog.google/products/g-suite/rss blog # Github releases https://github.com/kubernetes/kubernetes/releases.atom github From 6f7fb0ca0794d1df5305d06c6a4724ea1dd6a5bb Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sun, 2 Apr 2017 22:35:00 +0300 Subject: [PATCH 142/230] kubernetes cluster tmux --- Brewfile | 1 + newsbeuter/newsbeuter.symlink/urls | 1 + tmux/tmux.conf.symlink | 4 ++-- 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Brewfile b/Brewfile index 4521df2..74be685 100644 --- a/Brewfile +++ b/Brewfile @@ -25,6 +25,7 @@ brew 'tree' brew 'weechat' brew 'ipcalc' brew 'wget' +brew 'watch' brew 'pandoc' brew 'jsonnet' brew 'newsbeuter' diff --git a/newsbeuter/newsbeuter.symlink/urls b/newsbeuter/newsbeuter.symlink/urls index 5c0093b..39fb909 100644 --- a/newsbeuter/newsbeuter.symlink/urls +++ b/newsbeuter/newsbeuter.symlink/urls @@ -7,6 +7,7 @@ https://jvns.ca/atom.xml blog http://www.geektime.co.il/feed blog http://googlecloudplatform.blogspot.com/atom.xml blog https://blog.google/products/g-suite/rss blog +http://google-opensource.blogspot.com/atom.xml blog # Github releases https://github.com/kubernetes/kubernetes/releases.atom github diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index daa821f..78db395 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -85,8 +85,8 @@ set -g status-left "#[fg=yellow]#I #[fg=cyan]#P #[fg=white]» " # right set -g status-right-bg black set -g status-right-fg cyan -set -g status-right-length 40 -set -g status-right "#(ifconfig en0 | grep -w inet | cut -d ' ' -f 2) | %a %d %b %Y | %H:%M " +set -g status-right-length 200 +set -g status-right "(kubernetes/#(kubectl config current-context | cut -d'_' -f4)) | %a %d %b %Y | %H:%M " # clock mode set -g clock-mode-colour red From 27b364cc6c773de8984735758891b68d7ca2e321 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sat, 15 Apr 2017 16:16:22 +0300 Subject: [PATCH 143/230] gitconfig --- git/gitconfig.local.symlink | 5 ----- git/gitconfig.local.symlink.example | 5 ----- git/gitconfig.symlink | 7 +++++-- 3 files changed, 5 insertions(+), 12 deletions(-) delete mode 100644 git/gitconfig.local.symlink delete mode 100644 git/gitconfig.local.symlink.example diff --git a/git/gitconfig.local.symlink b/git/gitconfig.local.symlink deleted file mode 100644 index 5afd167..0000000 --- a/git/gitconfig.local.symlink +++ /dev/null @@ -1,5 +0,0 @@ -[user] - name = Or Elimelech - email = or.elimelech@blazemeter.com -[credential] - helper = osxkeychain diff --git a/git/gitconfig.local.symlink.example b/git/gitconfig.local.symlink.example deleted file mode 100644 index 3fdc363..0000000 --- a/git/gitconfig.local.symlink.example +++ /dev/null @@ -1,5 +0,0 @@ -[user] - name = AUTHORNAME - email = AUTHOREMAIL -[credential] - helper = GIT_CREDENTIAL_HELPER diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index ff3f970..2e10e17 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -1,5 +1,8 @@ -[include] - path = ~/.gitconfig.local +[user] + name = Or Elimelech + email = 0r3limelech@gmail.com +[github] + user = vic3lord [alias] compare = log --oneline master.. author = shortlog -s -e From f62bd692c5a3b8b60157166092f5e9816ae2f18f Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sat, 15 Apr 2017 16:17:59 +0300 Subject: [PATCH 144/230] replace custom scripts with Makefile --- Makefile | 15 +++++ bin/dot | 18 ------ script/bootstrap | 156 ----------------------------------------------- script/install | 14 ----- 4 files changed, 15 insertions(+), 188 deletions(-) create mode 100644 Makefile delete mode 100755 bin/dot delete mode 100755 script/bootstrap delete mode 100755 script/install diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..c247ed3 --- /dev/null +++ b/Makefile @@ -0,0 +1,15 @@ +DOTFILES=$(shell find -H $(CURDIR) -maxdepth 2 -name '*.symlink' -not -path "*.git*") + +.PHONY: all dotfiles install + +all: dotfiles install + +dotfiles: + @echo "installing dotfiles" + $(foreach src,$(DOTFILES),$(shell ln -sfn $(src) $(HOME)/.$(shell basename $(subst .symlink,,$(src))))) + +install: + @echo "› brew bundle" + brew bundle + @echo "find the installers and run them iteratively" + find . -name install.sh | xargs -I '{}' sh -c "{}" diff --git a/bin/dot b/bin/dot deleted file mode 100755 index d69727c..0000000 --- a/bin/dot +++ /dev/null @@ -1,18 +0,0 @@ -#!/bin/sh -# -# dot -# -# `dot` handles installation, updates, things like that. Run it periodically -# to make sure you're on the latest and greatest. -export ZSH=$HOME/.dotfiles - -# Install homebrew -$ZSH/homebrew/install.sh 2>&1 - -# Upgrade homebrew -echo "› brew update" -brew update - -# Install software -echo "› $ZSH/script/install" -$ZSH/script/install diff --git a/script/bootstrap b/script/bootstrap deleted file mode 100755 index 192e165..0000000 --- a/script/bootstrap +++ /dev/null @@ -1,156 +0,0 @@ -#!/usr/bin/env bash -# -# bootstrap installs things. - -cd "$(dirname "$0")/.." -DOTFILES_ROOT=$(pwd -P) - -set -e - -echo '' - -info () { - printf "\r [ \033[00;34m..\033[0m ] $1\n" -} - -user () { - printf "\r [ \033[0;33m??\033[0m ] $1\n" -} - -success () { - printf "\r\033[2K [ \033[00;32mOK\033[0m ] $1\n" -} - -fail () { - printf "\r\033[2K [\033[0;31mFAIL\033[0m] $1\n" - echo '' - exit -} - -setup_gitconfig () { - if ! [ -f git/gitconfig.local.symlink ] - then - info 'setup gitconfig' - - git_credential='cache' - if [ "$(uname -s)" == "Darwin" ] - then - git_credential='osxkeychain' - fi - - user ' - What is your github author name?' - read -e git_authorname - user ' - What is your github author email?' - read -e git_authoremail - - sed -e "s/AUTHORNAME/$git_authorname/g" -e "s/AUTHOREMAIL/$git_authoremail/g" -e "s/GIT_CREDENTIAL_HELPER/$git_credential/g" git/gitconfig.local.symlink.example > git/gitconfig.local.symlink - - success 'gitconfig' - fi -} - - -link_file () { - local src=$1 dst=$2 - - local overwrite= backup= skip= - local action= - - if [ -f "$dst" -o -d "$dst" -o -L "$dst" ] - then - - if [ "$overwrite_all" == "false" ] && [ "$backup_all" == "false" ] && [ "$skip_all" == "false" ] - then - - local currentSrc="$(readlink $dst)" - - if [ "$currentSrc" == "$src" ] - then - - skip=true; - - else - - user "File already exists: $dst ($(basename "$src")), what do you want to do?\n\ - [s]kip, [S]kip all, [o]verwrite, [O]verwrite all, [b]ackup, [B]ackup all?" - read -n 1 action - - case "$action" in - o ) - overwrite=true;; - O ) - overwrite_all=true;; - b ) - backup=true;; - B ) - backup_all=true;; - s ) - skip=true;; - S ) - skip_all=true;; - * ) - ;; - esac - - fi - - fi - - overwrite=${overwrite:-$overwrite_all} - backup=${backup:-$backup_all} - skip=${skip:-$skip_all} - - if [ "$overwrite" == "true" ] - then - rm -rf "$dst" - success "removed $dst" - fi - - if [ "$backup" == "true" ] - then - mv "$dst" "${dst}.backup" - success "moved $dst to ${dst}.backup" - fi - - if [ "$skip" == "true" ] - then - success "skipped $src" - fi - fi - - if [ "$skip" != "true" ] # "false" or empty - then - ln -s "$1" "$2" - success "linked $1 to $2" - fi -} - -install_dotfiles () { - info 'installing dotfiles' - - local overwrite_all=false backup_all=false skip_all=false - - for src in $(find -H "$DOTFILES_ROOT" -maxdepth 2 -name '*.symlink' -not -path '*.git*') - do - dst="$HOME/.$(basename "${src%.*}")" - link_file "$src" "$dst" - done -} - -setup_gitconfig -install_dotfiles - -# If we're on a Mac, let's install and setup homebrew. -if [ "$(uname -s)" == "Darwin" ] -then - info "installing dependencies" - if source bin/dot > /tmp/dotfiles-dot 2>&1 - then - success "dependencies installed" - else - fail "error installing dependencies" - fi -fi - -echo '' -echo ' All installed!' diff --git a/script/install b/script/install deleted file mode 100755 index 8d516b2..0000000 --- a/script/install +++ /dev/null @@ -1,14 +0,0 @@ -#!/usr/bin/env bash -# -# Run all dotfiles installers. - -set -e - -cd "$(dirname $0)"/.. - -# Run Homebrew through the Brewfile -echo "› brew bundle" -brew bundle - -# find the installers and run them iteratively -find . -name install.sh | while read installer ; do sh -c "${installer}" ; done From bdb99313f5d305a252aff7da685f46c583e4b803 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sat, 15 Apr 2017 16:18:15 +0300 Subject: [PATCH 145/230] add CDPATH --- go/path.zsh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/path.zsh b/go/path.zsh index e27cb19..e31bea4 100644 --- a/go/path.zsh +++ b/go/path.zsh @@ -1,2 +1,2 @@ -export GOPATH="$WORKSPACE/go" -export PATH="$GOPATH/bin:$PATH" +export PATH="$HOME/go/bin:$PATH" +export CDPATH=".:$HOME/go/src" From b2e9e24bb7ea7ee8e87703cde07e775e54a71b7f Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sat, 15 Apr 2017 16:18:59 +0300 Subject: [PATCH 146/230] vim-go --- vim/vimrc.symlink | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 27aa8b3..7176ff3 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -23,7 +23,7 @@ Plug 'vim-airline/vim-airline-themes' " Language specific plugins Plug 'hashivim/vim-terraform' Plug 'ekalinin/Dockerfile.vim' -Plug 'fatih/vim-go', { 'for': 'go' } +Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries','for': 'go' } Plug 'nsf/gocode', { 'for': 'go', 'rtp': 'nvim', 'do': '~/.config/nvim/plugged/gocode/nvim/symlink.sh' } Plug 'rust-lang/rust.vim', { 'for': 'rust' } Plug 'vim-coffee-script', { 'for': 'coffee' } @@ -52,10 +52,11 @@ set modeline set modelines=5 set laststatus=2 set undofile -set undodir=$HOME/.local/share/nvim/undo +set undodir=$HOME/.vim/undo set mouse=nv set cursorline set cursorcolumn +set autowrite " Search settings set incsearch " show search matches as you type @@ -65,13 +66,23 @@ set smartcase " ignore case if search pattern is all lowercase, case-sensitive set ignorecase nnoremap :let @/="" +" custom mappings +map :cnext +map :cprevious +nnoremap a :cclose + " vim-go let g:go_fmt_command = "goimports" -au FileType go nmap te (go-test) -au FileType go nmap ds (go-def-split) -au FileType go nmap dv (go-def-vertical) -au FileType go nmap dt (go-def-tab) -au FileType go nmap gd (go-doc) +augroup golang + au! + au FileType go nmap b (go-build) + au FileType go nmap r (go-run) + au FileType go nmap te (go-test) + au FileType go nmap ds (go-def-split) + au FileType go nmap dv (go-def-vertical) + au FileType go nmap dt (go-def-tab) + au FileType go nmap gd (go-doc) +augroup END " airline let g:airline_right_sep='' From a7d72b1fefb1e7fa66d841335a1f7fe74f3a25f5 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 19 Apr 2017 21:11:24 +0300 Subject: [PATCH 147/230] change install method --- README.md | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/README.md b/README.md index 7244e75..fd97082 100644 --- a/README.md +++ b/README.md @@ -7,9 +7,5 @@ Helps me automate my environment on new systems. ``` git clone https://github.com/vic3lord/dotfiles ~/.dotfiles -~/.dotfiles/script/bootstrap +cd ~/.dotfiles && make ``` - -## Credits - -[holman/dotfiles](https://github.com/holman/dotfiles) From cb280fc2d114cfba58d4c3410118699d5a517283 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 20 Apr 2017 22:04:24 +0300 Subject: [PATCH 148/230] fix: tmux 2.4 copy-pipe in vi mode --- tmux/tmux.conf.symlink | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 78db395..50e780a 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -1,28 +1,26 @@ ## global config set -g default-shell $SHELL # zsh +set -g prefix C-a # change prefix to CTRL-a set -g mouse on # enable mouse set -g terminal-overrides ',xterm-256color:Tc' # true colors -set-option -s escape-time 10 # speed up +set -s escape-time 10 # speed up set -g base-index 1 # start window index at 1 -set-window-option -g pane-base-index 1 # pane index at 1 -set-option -g renumber-windows on # auto renumber when tab is deleted -set-option -g history-limit 100000 # large history -setw -g monitor-activity on # monitor window activity +set -g renumber-windows on # auto renumber when tab is deleted +set -g history-limit 100000 # large history set -g visual-bell on # enable visual bell -set-option -g allow-rename off # disable window renaming +set -g allow-rename off # disable window renaming +setw -g monitor-activity on # monitor window activity +setw -g pane-base-index 1 # pane index at 1 ## key bindings -set-option -g prefix C-a # bind CTRL-a unbind C-b # unbind CTRL-b -bind-key C-a last-window # bind C-a to the previously active window - +bind C-a last-window # bind C-a to the previously active window set -g status-keys vi # bind vi key-mapping -set-window-option -g mode-keys vi # vi-style controls for copy mode -bind-key -t vi-copy v begin-selection # setup 'v' to begin selection as in Vim +setw -g mode-keys vi # vi-style controls for copy mode -# macOS clipboard -bind-key -t vi-copy y copy-pipe "reattach-to-user-namespace pbcopy" +# vi yank to macOS clipboard +bind -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" # force a reload of the config file bind C-r source-file ~/.tmux.conf \; display "reloaded configuration" From a21138e736214120acdbbbde3e0d7e2557549502 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 30 Apr 2017 11:24:59 +0300 Subject: [PATCH 149/230] google/searchindex --- vim/vimrc.symlink | 1 + 1 file changed, 1 insertion(+) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 7176ff3..c84f5e9 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -14,6 +14,7 @@ Plug 'commentary.vim' Plug 'junegunn/fzf' Plug 'junegunn/fzf.vim' Plug 'editorconfig/editorconfig-vim' +Plug 'google/vim-searchindex' " Themes Plug 'altercation/vim-colors-solarized' From b3f4b1fcace2f2b80ec3473003611021e963150e Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 30 Apr 2017 11:34:44 +0300 Subject: [PATCH 150/230] whats included --- README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/README.md b/README.md index fd97082..d0265f6 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,20 @@ Helps me automate my environment on new systems. git clone https://github.com/vic3lord/dotfiles ~/.dotfiles cd ~/.dotfiles && make ``` + +## What's included? + +- tmux +- homebrew +- vim plug + - solarized dark + - airline + - editorconfig + - vim-surround + - fugitive + - google/searchindex + - quick-scope + - fzf + - commentary +- pure zsh configs (no heavy oh-my-zsh etc.) +- newsbeuter From c876af32fea2f6cdb44f93b648b62e1c0c544cdf Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 3 May 2017 14:13:36 +0300 Subject: [PATCH 151/230] docker cask --- Brewfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Brewfile b/Brewfile index 74be685..8472428 100644 --- a/Brewfile +++ b/Brewfile @@ -48,3 +48,4 @@ cask 'sequel-pro' cask 'google-chrome' cask 'google-drive' cask 'google-cloud-sdk' +cask 'docker' From 3328756594279e588e31e7d4cdc4f1935161c0f7 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 3 May 2017 14:13:58 +0300 Subject: [PATCH 152/230] metabase and ingress --- newsbeuter/newsbeuter.symlink/urls | 2 ++ 1 file changed, 2 insertions(+) diff --git a/newsbeuter/newsbeuter.symlink/urls b/newsbeuter/newsbeuter.symlink/urls index 39fb909..e102270 100644 --- a/newsbeuter/newsbeuter.symlink/urls +++ b/newsbeuter/newsbeuter.symlink/urls @@ -11,6 +11,7 @@ http://google-opensource.blogspot.com/atom.xml blog # Github releases https://github.com/kubernetes/kubernetes/releases.atom github +https://github.com/kubernetes/ingress/releases.atom github https://github.com/prometheus/prometheus/releases.atom github https://github.com/prometheus/alertmanager/releases.atom github https://github.com/grafana/grafana/releases.atom github @@ -19,3 +20,4 @@ https://github.com/hashicorp/vault/releases.atom github https://github.com/hashicorp/consul/releases.atom github https://github.com/hashicorp/terraform/releases.atom github https://github.com/bitly/oauth2_proxy/releases.atom github +https://github.com/metabase/metabase/releases.atom github From beb406742ebaa6b6ba505e6cd3f90b682b77432d Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 3 May 2017 14:16:05 +0300 Subject: [PATCH 153/230] sec --- weechat.symlink/sec.conf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weechat.symlink/sec.conf b/weechat.symlink/sec.conf index dd8eef7..30abaf5 100644 --- a/weechat.symlink/sec.conf +++ b/weechat.symlink/sec.conf @@ -17,4 +17,4 @@ salt = on [data] __passphrase__ = on -freenode_password = "35D2E77ADDF69E3A04127612DBBEE3EDB8852A1D7900A9E584FC315B23AA9B6D5C27C34099138C3901D3F078A2D96F814E8C" +freenode_password = "0B01B4826E49EE92071C90380A8D8997A77F92086CBF495FA278BAE4626B72669253C170FDB78C4A528C125E39ED2D0ABC8D" From 2c08ebbf76d462d8d175daef598f498f9d304278 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Fri, 12 May 2017 18:44:06 +0300 Subject: [PATCH 154/230] obsolete packages --- Brewfile | 50 +++++++++++++++++++++++------------------------ vim/vimrc.symlink | 4 +++- 2 files changed, 28 insertions(+), 26 deletions(-) diff --git a/Brewfile b/Brewfile index 8472428..ad4bc74 100644 --- a/Brewfile +++ b/Brewfile @@ -1,51 +1,51 @@ # Brews brew 'ansible' brew 'autojump' +brew 'docker-machine-driver-xhyve' +brew 'fzf' brew 'gnupg2' -brew 'reop' brew 'go' brew 'hugo' -brew 'glide' +brew 'ipcalc' brew 'iperf' -brew 'fzf' brew 'jq' +brew 'jsonnet' brew 'mercurial' -brew 'vim' +brew 'newsbeuter' brew 'nmap' -brew 'mitmproxy' brew 'node' -brew 'yarn' brew 'packer' +brew 'pandoc' +brew 'protobuf' +brew 'reattach-to-user-namespace' +brew 'teleconsole' brew 'terraform' -brew 'vault' brew 'tig' brew 'tmux' -brew 'reattach-to-user-namespace' brew 'tree' +brew 'vault' +brew 'vim' +brew 'watch' brew 'weechat' -brew 'ipcalc' brew 'wget' -brew 'watch' -brew 'pandoc' -brew 'jsonnet' -brew 'newsbeuter' -brew 'teleconsole' +brew 'xhyve' +brew 'yarn' # Casks -cask 'transmission' -cask 'vlc' cask 'airflow' -cask 'steam' cask 'boxer' -cask 'virtualbox' +cask 'docker' cask 'firefox' -cask 'torbrowser' +cask 'google-chrome' +cask 'google-cloud-sdk' +cask 'google-drive' cask 'keybase' +cask 'minikube' +cask 'openzfs' +cask 'steam' +cask 'torbrowser' +cask 'transmission' +cask 'virtualbox' +cask 'vlc' cask 'whatsapp' cask 'wireshark' -cask 'openzfs' -cask 'sequel-pro' -cask 'google-chrome' -cask 'google-drive' -cask 'google-cloud-sdk' -cask 'docker' diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index c84f5e9..c3909ae 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -15,6 +15,7 @@ Plug 'junegunn/fzf' Plug 'junegunn/fzf.vim' Plug 'editorconfig/editorconfig-vim' Plug 'google/vim-searchindex' +Plug 'KeyboardFire/vim-minisnip' " Themes Plug 'altercation/vim-colors-solarized' @@ -25,10 +26,11 @@ Plug 'vim-airline/vim-airline-themes' Plug 'hashivim/vim-terraform' Plug 'ekalinin/Dockerfile.vim' Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries','for': 'go' } -Plug 'nsf/gocode', { 'for': 'go', 'rtp': 'nvim', 'do': '~/.config/nvim/plugged/gocode/nvim/symlink.sh' } +Plug 'nsf/gocode', { 'for': 'go', 'rtp': 'vim', 'do': '~/.vim/plugged/gocode/vim/symlink.sh' } Plug 'rust-lang/rust.vim', { 'for': 'rust' } Plug 'vim-coffee-script', { 'for': 'coffee' } Plug 'elzr/vim-json', { 'for': 'json' } +Plug 'uarun/vim-protobuf', { 'for': 'proto' } " Add plugins to runtime call plug#end() From 82a7f399161298e61ab8a8f6850bbe4d612f9a7a Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Fri, 19 May 2017 09:07:34 +0300 Subject: [PATCH 155/230] brew hub --- Brewfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Brewfile b/Brewfile index ad4bc74..4e67d64 100644 --- a/Brewfile +++ b/Brewfile @@ -5,6 +5,7 @@ brew 'docker-machine-driver-xhyve' brew 'fzf' brew 'gnupg2' brew 'go' +brew 'hub' brew 'hugo' brew 'ipcalc' brew 'iperf' From 17ced76f034abd652693c7f2905463144e66084b Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 25 Jul 2017 14:00:32 +0300 Subject: [PATCH 156/230] hub alias to git --- git/aliases.zsh | 1 + 1 file changed, 1 insertion(+) diff --git a/git/aliases.zsh b/git/aliases.zsh index bf91173..68530fa 100644 --- a/git/aliases.zsh +++ b/git/aliases.zsh @@ -1,3 +1,4 @@ +alias git="hub" alias tig="tig --show-signature" alias gl="git pull --rebase" From 506ba54f02955b5f0043aca9be2327a20d86a2c6 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 25 Jul 2017 14:01:06 +0300 Subject: [PATCH 157/230] remove vlc use iina instead --- Brewfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Brewfile b/Brewfile index 4e67d64..f3fec96 100644 --- a/Brewfile +++ b/Brewfile @@ -40,6 +40,7 @@ cask 'firefox' cask 'google-chrome' cask 'google-cloud-sdk' cask 'google-drive' +cask 'iina' cask 'keybase' cask 'minikube' cask 'openzfs' @@ -47,6 +48,5 @@ cask 'steam' cask 'torbrowser' cask 'transmission' cask 'virtualbox' -cask 'vlc' cask 'whatsapp' cask 'wireshark' From 347d8eb3b3f694b8863c7aec90298654f8e5ef01 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 25 Jul 2017 14:01:43 +0300 Subject: [PATCH 158/230] add openbsd, istio and spinnaker --- newsbeuter/newsbeuter.symlink/urls | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/newsbeuter/newsbeuter.symlink/urls b/newsbeuter/newsbeuter.symlink/urls index e102270..991ba8f 100644 --- a/newsbeuter/newsbeuter.symlink/urls +++ b/newsbeuter/newsbeuter.symlink/urls @@ -4,14 +4,15 @@ http://xkcd.com/rss.xml comics # Blogs https://blog.filippo.io/rss/ blog https://jvns.ca/atom.xml blog -http://www.geektime.co.il/feed blog http://googlecloudplatform.blogspot.com/atom.xml blog https://blog.google/products/g-suite/rss blog http://google-opensource.blogspot.com/atom.xml blog +http://undeadly.org/cgi?action=rss blog openbsd # Github releases https://github.com/kubernetes/kubernetes/releases.atom github https://github.com/kubernetes/ingress/releases.atom github +https://github.com/istio/istio/releases.atom github https://github.com/prometheus/prometheus/releases.atom github https://github.com/prometheus/alertmanager/releases.atom github https://github.com/grafana/grafana/releases.atom github @@ -21,3 +22,4 @@ https://github.com/hashicorp/consul/releases.atom github https://github.com/hashicorp/terraform/releases.atom github https://github.com/bitly/oauth2_proxy/releases.atom github https://github.com/metabase/metabase/releases.atom github +https://github.com/spinnaker/spinnaker/releases.atom github From 15d73e58464d7fd59fc38f476fb0691bec27ca92 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 25 Jul 2017 14:02:12 +0300 Subject: [PATCH 159/230] tmux colors and clipboard --- tmux/tmux.conf.symlink | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 50e780a..5b055ab 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -22,6 +22,9 @@ setw -g mode-keys vi # vi-style controls for copy mode # vi yank to macOS clipboard bind -T copy-mode-vi y send -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" +# mouse drag and copy selection to clipboard +bind -T copy-mode-vi MouseDragEnd1Pane send-keys -X copy-pipe-and-cancel "reattach-to-user-namespace pbcopy" + # force a reload of the config file bind C-r source-file ~/.tmux.conf \; display "reloaded configuration" @@ -69,8 +72,8 @@ set -g window-status-activity-fg black # panes set -g pane-border-bg default set -g pane-border-fg default -set -g pane-active-border-bg default -set -g pane-active-border-fg green +set -g pane-active-border-bg default +set -g pane-active-border-fg cyan set -g display-panes-colour red set -g display-panes-active-colour red @@ -84,7 +87,7 @@ set -g status-left "#[fg=yellow]#I #[fg=cyan]#P #[fg=white]» " set -g status-right-bg black set -g status-right-fg cyan set -g status-right-length 200 -set -g status-right "(kubernetes/#(kubectl config current-context | cut -d'_' -f4)) | %a %d %b %Y | %H:%M " +set -g status-right "(kubernetes/#(kubectl config current-context | cut -d'_' -f4)) [%a %d/%m/%Y][%H:%M]" # clock mode set -g clock-mode-colour red From 1fbbd0461fd4fd4d02253a6570e1090011ed3c59 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 25 Jul 2017 14:02:31 +0300 Subject: [PATCH 160/230] syntastic --- vim/vimrc.symlink | 23 ++++++++++++++++++----- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index c3909ae..41f4c16 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -5,17 +5,19 @@ filetype off call plug#begin('~/.vim/plugged') " Common stuff -Plug 'gnupg.vim' -Plug 'fugitive.vim' +Plug 'jamessan/vim-gnupg' +Plug 'tpope/vim-fugitive' Plug 'vitapluvia/vim-gurl' Plug 'unblevable/quick-scope' Plug 'tpope/vim-surround' -Plug 'commentary.vim' +Plug 'tpope/vim-commentary' +Plug 'tpope/vim-repeat' Plug 'junegunn/fzf' Plug 'junegunn/fzf.vim' Plug 'editorconfig/editorconfig-vim' Plug 'google/vim-searchindex' Plug 'KeyboardFire/vim-minisnip' +Plug 'vim-syntastic/syntastic' " Themes Plug 'altercation/vim-colors-solarized' @@ -28,7 +30,7 @@ Plug 'ekalinin/Dockerfile.vim' Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries','for': 'go' } Plug 'nsf/gocode', { 'for': 'go', 'rtp': 'vim', 'do': '~/.vim/plugged/gocode/vim/symlink.sh' } Plug 'rust-lang/rust.vim', { 'for': 'rust' } -Plug 'vim-coffee-script', { 'for': 'coffee' } +Plug 'kchmck/vim-coffee-script', { 'for': 'coffee' } Plug 'elzr/vim-json', { 'for': 'json' } Plug 'uarun/vim-protobuf', { 'for': 'proto' } @@ -74,6 +76,17 @@ map :cnext map :cprevious nnoremap a :cclose +" syntastic +set statusline+=%#warningmsg# +set statusline+=%{SyntasticStatuslineFlag()} +set statusline+=%* + +let g:syntastic_always_populate_loc_list = 1 +let g:syntastic_auto_loc_list = 1 +let g:syntastic_check_on_open = 1 +let g:syntastic_check_on_wq = 0 +let g:syntastic_go_checkers = ['golint', 'govet'] + " vim-go let g:go_fmt_command = "goimports" augroup golang @@ -103,6 +116,6 @@ nnoremap f :FZF autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent -autocmd FileType javascript setlocal shiftwidth=4 sts=4 expandtab smartindent +autocmd FileType javascript setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab From 5d7a01fd78176ad17a68604f2027ec72838e90b5 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 7 Aug 2017 21:40:43 +0300 Subject: [PATCH 161/230] removed weechat and related configs --- weechat.symlink/.gitignore | 3 - weechat.symlink/alias.conf | 48 --- weechat.symlink/charset.conf | 18 -- weechat.symlink/exec.conf | 18 -- weechat.symlink/fifo.conf | 14 - weechat.symlink/logger.conf | 33 -- weechat.symlink/plugins.conf | 16 - weechat.symlink/relay.conf | 48 --- weechat.symlink/script.conf | 57 ---- weechat.symlink/sec.conf | 20 -- weechat.symlink/trigger.conf | 59 ---- weechat.symlink/weechat.conf | 603 ----------------------------------- weechat.symlink/xfer.conf | 46 --- 13 files changed, 983 deletions(-) delete mode 100644 weechat.symlink/.gitignore delete mode 100644 weechat.symlink/alias.conf delete mode 100644 weechat.symlink/charset.conf delete mode 100644 weechat.symlink/exec.conf delete mode 100644 weechat.symlink/fifo.conf delete mode 100644 weechat.symlink/logger.conf delete mode 100644 weechat.symlink/plugins.conf delete mode 100644 weechat.symlink/relay.conf delete mode 100644 weechat.symlink/script.conf delete mode 100644 weechat.symlink/sec.conf delete mode 100644 weechat.symlink/trigger.conf delete mode 100644 weechat.symlink/weechat.conf delete mode 100644 weechat.symlink/xfer.conf diff --git a/weechat.symlink/.gitignore b/weechat.symlink/.gitignore deleted file mode 100644 index 3c4eee7..0000000 --- a/weechat.symlink/.gitignore +++ /dev/null @@ -1,3 +0,0 @@ -logs/ -ssl/ -*.log diff --git a/weechat.symlink/alias.conf b/weechat.symlink/alias.conf deleted file mode 100644 index d993aa0..0000000 --- a/weechat.symlink/alias.conf +++ /dev/null @@ -1,48 +0,0 @@ -# -# weechat -- alias.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[cmd] -AAWAY = "allserv /away" -AME = "allchan /me" -AMSG = "allchan /msg *" -ANICK = "allserv /nick" -BEEP = "print -beep" -BYE = "quit" -C = "buffer clear" -CHAT = "dcc chat" -CL = "buffer clear" -CLOSE = "buffer close" -EXIT = "quit" -IG = "ignore" -J = "join" -K = "kick" -KB = "kickban" -LEAVE = "part" -M = "msg" -MSGBUF = "command -buffer $1 * /input send $2-" -MUB = "unban *" -N = "names" -Q = "query" -REDRAW = "window refresh" -SAY = "msg *" -SIGNOFF = "quit" -T = "topic" -UB = "unban" -UMODE = "mode $nick" -V = "command core version" -W = "who" -WC = "window merge" -WI = "whois" -WII = "whois $1 $1" -WW = "whowas" - -[completion] -MSGBUF = "%(buffers_plugins_names)" diff --git a/weechat.symlink/charset.conf b/weechat.symlink/charset.conf deleted file mode 100644 index 80ec6e9..0000000 --- a/weechat.symlink/charset.conf +++ /dev/null @@ -1,18 +0,0 @@ -# -# weechat -- charset.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[default] -decode = "US-ASCII" -encode = "" - -[decode] - -[encode] diff --git a/weechat.symlink/exec.conf b/weechat.symlink/exec.conf deleted file mode 100644 index 519ccc1..0000000 --- a/weechat.symlink/exec.conf +++ /dev/null @@ -1,18 +0,0 @@ -# -# weechat -- exec.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[command] -default_options = "" -purge_delay = 0 - -[color] -flag_finished = lightred -flag_running = lightgreen diff --git a/weechat.symlink/fifo.conf b/weechat.symlink/fifo.conf deleted file mode 100644 index 904985d..0000000 --- a/weechat.symlink/fifo.conf +++ /dev/null @@ -1,14 +0,0 @@ -# -# weechat -- fifo.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[file] -enabled = on -path = "%h/weechat_fifo" diff --git a/weechat.symlink/logger.conf b/weechat.symlink/logger.conf deleted file mode 100644 index 09b543e..0000000 --- a/weechat.symlink/logger.conf +++ /dev/null @@ -1,33 +0,0 @@ -# -# weechat -- logger.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[look] -backlog = 20 - -[color] -backlog_end = default -backlog_line = default - -[file] -auto_log = on -flush_delay = 120 -info_lines = off -mask = "$plugin.$name.weechatlog" -name_lower_case = on -nick_prefix = "" -nick_suffix = "" -path = "%h/logs/" -replacement_char = "_" -time_format = "%Y-%m-%d %H:%M:%S" - -[level] - -[mask] diff --git a/weechat.symlink/plugins.conf b/weechat.symlink/plugins.conf deleted file mode 100644 index e084ea2..0000000 --- a/weechat.symlink/plugins.conf +++ /dev/null @@ -1,16 +0,0 @@ -# -# weechat -- plugins.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[var] -fifo.fifo = "on" -tcl.check_license = "off" - -[desc] diff --git a/weechat.symlink/relay.conf b/weechat.symlink/relay.conf deleted file mode 100644 index 565dd14..0000000 --- a/weechat.symlink/relay.conf +++ /dev/null @@ -1,48 +0,0 @@ -# -# weechat -- relay.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[look] -auto_open_buffer = on -raw_messages = 256 - -[color] -client = cyan -status_active = lightblue -status_auth_failed = lightred -status_connecting = yellow -status_disconnected = lightred -status_waiting_auth = brown -text = default -text_bg = default -text_selected = white - -[network] -allow_empty_password = off -allowed_ips = "" -bind_address = "" -clients_purge_delay = 0 -compression_level = 6 -ipv6 = on -max_clients = 5 -password = "" -ssl_cert_key = "%h/ssl/relay.pem" -ssl_priorities = "NORMAL:-VERS-SSL3.0" -websocket_allowed_origins = "" - -[irc] -backlog_max_minutes = 1440 -backlog_max_number = 256 -backlog_since_last_disconnect = on -backlog_since_last_message = off -backlog_tags = "irc_privmsg" -backlog_time_format = "[%H:%M] " - -[port] diff --git a/weechat.symlink/script.conf b/weechat.symlink/script.conf deleted file mode 100644 index 2cfb4e4..0000000 --- a/weechat.symlink/script.conf +++ /dev/null @@ -1,57 +0,0 @@ -# -# weechat -- script.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[look] -columns = "%s %n %V %v %u | %d | %t" -diff_color = on -diff_command = "auto" -display_source = on -quiet_actions = on -sort = "p,n" -translate_description = on -use_keys = on - -[color] -status_autoloaded = cyan -status_held = white -status_installed = lightcyan -status_obsolete = lightmagenta -status_popular = yellow -status_running = lightgreen -status_unknown = lightred -text = default -text_bg = default -text_bg_selected = red -text_date = default -text_date_selected = white -text_delimiters = default -text_description = default -text_description_selected = white -text_extension = default -text_extension_selected = white -text_name = cyan -text_name_selected = lightcyan -text_selected = white -text_tags = brown -text_tags_selected = yellow -text_version = magenta -text_version_loaded = default -text_version_loaded_selected = white -text_version_selected = lightmagenta - -[scripts] -autoload = on -cache_expire = 1440 -download_timeout = 30 -hold = "" -path = "%h/script" -url = "http://weechat.org/files/plugins.xml.gz" -url_force_https = on diff --git a/weechat.symlink/sec.conf b/weechat.symlink/sec.conf deleted file mode 100644 index 30abaf5..0000000 --- a/weechat.symlink/sec.conf +++ /dev/null @@ -1,20 +0,0 @@ -# -# weechat -- sec.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[crypt] -cipher = aes256 -hash_algo = sha256 -passphrase_file = "" -salt = on - -[data] -__passphrase__ = on -freenode_password = "0B01B4826E49EE92071C90380A8D8997A77F92086CBF495FA278BAE4626B72669253C170FDB78C4A528C125E39ED2D0ABC8D" diff --git a/weechat.symlink/trigger.conf b/weechat.symlink/trigger.conf deleted file mode 100644 index 8f6789b..0000000 --- a/weechat.symlink/trigger.conf +++ /dev/null @@ -1,59 +0,0 @@ -# -# weechat -- trigger.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[look] -enabled = on -monitor_strip_colors = off - -[color] -flag_command = lightgreen -flag_conditions = yellow -flag_post_action = lightblue -flag_regex = lightcyan -flag_return_code = lightmagenta -regex = white -replace = cyan -trigger = green -trigger_disabled = red - -[trigger] -beep.arguments = "" -beep.command = "/print -beep" -beep.conditions = "${tg_displayed} && (${tg_highlight} || ${tg_msg_pv})" -beep.enabled = on -beep.hook = print -beep.post_action = none -beep.regex = "" -beep.return_code = ok -cmd_pass.arguments = "5000|input_text_display;5000|history_add;5000|irc_command_auth" -cmd_pass.command = "" -cmd_pass.conditions = "" -cmd_pass.enabled = on -cmd_pass.hook = modifier -cmd_pass.post_action = none -cmd_pass.regex = "==^((/(msg|m|quote) +nickserv +(id|identify|register|ghost +[^ ]+|release +[^ ]+|regain +[^ ]+) +)|/oper +[^ ]+ +|/quote +pass +|/set +[^ ]*password[^ ]* +|/secure +(passphrase|decrypt|set +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" -cmd_pass.return_code = ok -msg_auth.arguments = "5000|irc_message_auth" -msg_auth.command = "" -msg_auth.conditions = "" -msg_auth.enabled = on -msg_auth.hook = modifier -msg_auth.post_action = none -msg_auth.regex = "==^(.*(id|identify|register|ghost +[^ ]+|release +[^ ]+) +)(.*)==${re:1}${hide:*,${re:+}}" -msg_auth.return_code = ok -server_pass.arguments = "5000|input_text_display;5000|history_add" -server_pass.command = "" -server_pass.conditions = "" -server_pass.enabled = on -server_pass.hook = modifier -server_pass.post_action = none -server_pass.regex = "==^(/(server|connect) .*-(sasl_)?password=)([^ ]+)(.*)==${re:1}${hide:*,${re:4}}${re:5}" -server_pass.return_code = ok diff --git a/weechat.symlink/weechat.conf b/weechat.symlink/weechat.conf deleted file mode 100644 index cf23aa8..0000000 --- a/weechat.symlink/weechat.conf +++ /dev/null @@ -1,603 +0,0 @@ -# -# weechat -- weechat.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[debug] - -[startup] -command_after_plugins = "" -command_before_plugins = "" -display_logo = on -display_version = on -sys_rlimit = "" - -[look] -align_end_of_lines = message -align_multiline_words = on -bar_more_down = "++" -bar_more_left = "<<" -bar_more_right = ">>" -bar_more_up = "--" -bare_display_exit_on_input = on -bare_display_time_format = "%H:%M" -buffer_auto_renumber = on -buffer_notify_default = all -buffer_position = end -buffer_search_case_sensitive = off -buffer_search_force_default = off -buffer_search_regex = off -buffer_search_where = prefix_message -buffer_time_format = "%H:%M:%S" -color_basic_force_bold = off -color_inactive_buffer = on -color_inactive_message = on -color_inactive_prefix = on -color_inactive_prefix_buffer = on -color_inactive_time = off -color_inactive_window = on -color_nick_offline = off -color_pairs_auto_reset = 5 -color_real_white = off -command_chars = "" -command_incomplete = off -confirm_quit = off -confirm_upgrade = off -day_change = on -day_change_message_1date = "-- %a, %d %b %Y --" -day_change_message_2dates = "-- %%a, %%d %%b %%Y (%a, %d %b %Y) --" -eat_newline_glitch = off -emphasized_attributes = "" -highlight = "" -highlight_regex = "" -highlight_tags = "" -hotlist_add_conditions = "${away} || ${buffer.num_displayed} == 0" -hotlist_buffer_separator = ", " -hotlist_count_max = 2 -hotlist_count_min_msg = 2 -hotlist_names_count = 3 -hotlist_names_length = 0 -hotlist_names_level = 12 -hotlist_names_merged_buffers = off -hotlist_prefix = "H: " -hotlist_remove = merged -hotlist_short_names = on -hotlist_sort = group_time_asc -hotlist_suffix = "" -hotlist_unique_numbers = on -input_cursor_scroll = 20 -input_share = none -input_share_overwrite = off -input_undo_max = 32 -item_away_message = on -item_buffer_filter = "*" -item_buffer_zoom = "!" -item_mouse_status = "M" -item_time_format = "%H:%M" -jump_current_to_previous_buffer = on -jump_previous_buffer_when_closing = on -jump_smart_back_to_buffer = on -key_bind_safe = on -key_grab_delay = 800 -mouse = off -mouse_timer_delay = 100 -nick_color_force = "" -nick_color_hash = djb2 -nick_color_stop_chars = "_|[" -nick_prefix = "" -nick_suffix = "" -paste_auto_add_newline = on -paste_bracketed = on -paste_bracketed_timer_delay = 10 -paste_max_lines = 1 -prefix_action = " *" -prefix_align = right -prefix_align_max = 0 -prefix_align_min = 0 -prefix_align_more = "+" -prefix_align_more_after = on -prefix_buffer_align = right -prefix_buffer_align_max = 0 -prefix_buffer_align_more = "+" -prefix_buffer_align_more_after = on -prefix_error = "=!=" -prefix_join = "-->" -prefix_network = "--" -prefix_quit = "<--" -prefix_same_nick = "" -prefix_suffix = "|" -quote_nick_prefix = "<" -quote_nick_suffix = ">" -quote_time_format = "%H:%M:%S" -read_marker = line -read_marker_always_show = off -read_marker_string = "- " -save_config_on_exit = on -save_layout_on_exit = none -scroll_amount = 3 -scroll_bottom_after_switch = off -scroll_page_percent = 100 -search_text_not_found_alert = on -separator_horizontal = "-" -separator_vertical = "" -tab_width = 1 -time_format = "%a, %d %b %Y %T" -window_auto_zoom = off -window_separator_horizontal = on -window_separator_vertical = on -window_title = "WeeChat ${info:version}" -word_chars_highlight = "!\u00A0,-,_,|,alnum" -word_chars_input = "!\u00A0,-,_,|,alnum" - -[palette] - -[color] -bar_more = lightmagenta -chat = default -chat_bg = default -chat_buffer = white -chat_channel = white -chat_day_change = cyan -chat_delimiters = green -chat_highlight = yellow -chat_highlight_bg = magenta -chat_host = cyan -chat_inactive_buffer = default -chat_inactive_window = default -chat_nick = lightcyan -chat_nick_colors = "cyan,magenta,green,brown,lightblue,default,lightcyan,lightmagenta,lightgreen,blue" -chat_nick_offline = default -chat_nick_offline_highlight = default -chat_nick_offline_highlight_bg = blue -chat_nick_other = cyan -chat_nick_prefix = green -chat_nick_self = white -chat_nick_suffix = green -chat_prefix_action = white -chat_prefix_buffer = brown -chat_prefix_buffer_inactive_buffer = default -chat_prefix_error = yellow -chat_prefix_join = lightgreen -chat_prefix_more = lightmagenta -chat_prefix_network = magenta -chat_prefix_quit = lightred -chat_prefix_suffix = green -chat_read_marker = magenta -chat_read_marker_bg = default -chat_server = brown -chat_tags = red -chat_text_found = yellow -chat_text_found_bg = lightmagenta -chat_time = default -chat_time_delimiters = brown -chat_value = cyan -chat_value_null = blue -emphasized = yellow -emphasized_bg = magenta -input_actions = lightgreen -input_text_not_found = red -item_away = yellow -nicklist_away = cyan -nicklist_group = green -separator = blue -status_count_highlight = magenta -status_count_msg = brown -status_count_other = default -status_count_private = green -status_data_highlight = lightmagenta -status_data_msg = yellow -status_data_other = default -status_data_private = lightgreen -status_filter = green -status_more = yellow -status_mouse = green -status_name = white -status_name_ssl = lightgreen -status_nicklist_count = default -status_number = yellow -status_time = default - -[completion] -base_word_until_cursor = on -command_inline = on -default_template = "%(nicks)|%(irc_channels)" -nick_add_space = on -nick_completer = ":" -nick_first_only = off -nick_ignore_chars = "[]`_-^" -partial_completion_alert = on -partial_completion_command = off -partial_completion_command_arg = off -partial_completion_count = on -partial_completion_other = off - -[history] -display_default = 5 -max_buffer_lines_minutes = 0 -max_buffer_lines_number = 4096 -max_commands = 100 -max_visited_buffers = 50 - -[proxy] - -[network] -connection_timeout = 60 -gnutls_ca_file = "/usr/local/etc/openssl/cert.pem" -gnutls_handshake_timeout = 30 -proxy_curl = "" - -[plugin] -autoload = "*" -debug = off -extension = ".so,.dll" -path = "%h/plugins" -save_config_on_unload = on - -[bar] -input.color_bg = default -input.color_delim = cyan -input.color_fg = default -input.conditions = "" -input.filling_left_right = vertical -input.filling_top_bottom = horizontal -input.hidden = off -input.items = "[input_prompt]+(away),[input_search],[input_paste],input_text" -input.position = bottom -input.priority = 1000 -input.separator = off -input.size = 1 -input.size_max = 0 -input.type = window -nicklist.color_bg = default -nicklist.color_delim = cyan -nicklist.color_fg = default -nicklist.conditions = "${nicklist}" -nicklist.filling_left_right = vertical -nicklist.filling_top_bottom = columns_vertical -nicklist.hidden = off -nicklist.items = "buffer_nicklist" -nicklist.position = right -nicklist.priority = 200 -nicklist.separator = on -nicklist.size = 0 -nicklist.size_max = 0 -nicklist.type = window -status.color_bg = blue -status.color_delim = cyan -status.color_fg = default -status.conditions = "" -status.filling_left_right = vertical -status.filling_top_bottom = horizontal -status.hidden = off -status.items = "[time],[buffer_last_number],[buffer_plugin],buffer_number+:+buffer_name+(buffer_modes)+{buffer_nicklist_count}+buffer_zoom+buffer_filter,scroll,[lag],[hotlist],completion" -status.position = bottom -status.priority = 500 -status.separator = off -status.size = 1 -status.size_max = 0 -status.type = window -title.color_bg = blue -title.color_delim = cyan -title.color_fg = default -title.conditions = "" -title.filling_left_right = vertical -title.filling_top_bottom = horizontal -title.hidden = off -title.items = "buffer_title" -title.position = top -title.priority = 500 -title.separator = off -title.size = 1 -title.size_max = 0 -title.type = window - -[layout] - -[notify] - -[filter] - -[key] -ctrl-? = "/input delete_previous_char" -ctrl-A = "/input move_beginning_of_line" -ctrl-B = "/input move_previous_char" -ctrl-C_ = "/input insert \x1F" -ctrl-Cb = "/input insert \x02" -ctrl-Cc = "/input insert \x03" -ctrl-Ci = "/input insert \x1D" -ctrl-Co = "/input insert \x0F" -ctrl-Cv = "/input insert \x16" -ctrl-D = "/input delete_next_char" -ctrl-E = "/input move_end_of_line" -ctrl-F = "/input move_next_char" -ctrl-H = "/input delete_previous_char" -ctrl-I = "/input complete_next" -ctrl-J = "/input return" -ctrl-K = "/input delete_end_of_line" -ctrl-L = "/window refresh" -ctrl-M = "/input return" -ctrl-N = "/buffer +1" -ctrl-P = "/buffer -1" -ctrl-R = "/input search_text_here" -ctrl-Sctrl-U = "/input set_unread" -ctrl-T = "/input transpose_chars" -ctrl-U = "/input delete_beginning_of_line" -ctrl-W = "/input delete_previous_word" -ctrl-X = "/input switch_active_buffer" -ctrl-Y = "/input clipboard_paste" -meta-meta2-1~ = "/window scroll_top" -meta-meta2-23~ = "/bar scroll nicklist * b" -meta-meta2-24~ = "/bar scroll nicklist * e" -meta-meta2-4~ = "/window scroll_bottom" -meta-meta2-5~ = "/window scroll_up" -meta-meta2-6~ = "/window scroll_down" -meta-meta2-7~ = "/window scroll_top" -meta-meta2-8~ = "/window scroll_bottom" -meta-meta2-A = "/buffer -1" -meta-meta2-B = "/buffer +1" -meta-meta2-C = "/buffer +1" -meta-meta2-D = "/buffer -1" -meta-- = "/filter toggle @" -meta-/ = "/input jump_last_buffer_displayed" -meta-0 = "/buffer *10" -meta-1 = "/buffer *1" -meta-2 = "/buffer *2" -meta-3 = "/buffer *3" -meta-4 = "/buffer *4" -meta-5 = "/buffer *5" -meta-6 = "/buffer *6" -meta-7 = "/buffer *7" -meta-8 = "/buffer *8" -meta-9 = "/buffer *9" -meta-< = "/input jump_previously_visited_buffer" -meta-= = "/filter toggle" -meta-> = "/input jump_next_visited_buffer" -meta-OA = "/input history_global_previous" -meta-OB = "/input history_global_next" -meta-OC = "/input move_next_word" -meta-OD = "/input move_previous_word" -meta-OF = "/input move_end_of_line" -meta-OH = "/input move_beginning_of_line" -meta-Oa = "/input history_global_previous" -meta-Ob = "/input history_global_next" -meta-Oc = "/input move_next_word" -meta-Od = "/input move_previous_word" -meta2-15~ = "/buffer -1" -meta2-17~ = "/buffer +1" -meta2-18~ = "/window -1" -meta2-19~ = "/window +1" -meta2-1;3A = "/buffer -1" -meta2-1;3B = "/buffer +1" -meta2-1;3C = "/buffer +1" -meta2-1;3D = "/buffer -1" -meta2-1;3F = "/window scroll_bottom" -meta2-1;3H = "/window scroll_top" -meta2-1;5A = "/input history_global_previous" -meta2-1;5B = "/input history_global_next" -meta2-1;5C = "/input move_next_word" -meta2-1;5D = "/input move_previous_word" -meta2-1~ = "/input move_beginning_of_line" -meta2-200~ = "/input paste_start" -meta2-201~ = "/input paste_stop" -meta2-20~ = "/bar scroll title * -30%" -meta2-21~ = "/bar scroll title * +30%" -meta2-23;3~ = "/bar scroll nicklist * b" -meta2-23~ = "/bar scroll nicklist * -100%" -meta2-24;3~ = "/bar scroll nicklist * e" -meta2-24~ = "/bar scroll nicklist * +100%" -meta2-3~ = "/input delete_next_char" -meta2-4~ = "/input move_end_of_line" -meta2-5;3~ = "/window scroll_up" -meta2-5~ = "/window page_up" -meta2-6;3~ = "/window scroll_down" -meta2-6~ = "/window page_down" -meta2-7~ = "/input move_beginning_of_line" -meta2-8~ = "/input move_end_of_line" -meta2-A = "/input history_previous" -meta2-B = "/input history_next" -meta2-C = "/input move_next_char" -meta2-D = "/input move_previous_char" -meta2-F = "/input move_end_of_line" -meta2-G = "/window page_down" -meta2-H = "/input move_beginning_of_line" -meta2-I = "/window page_up" -meta2-Z = "/input complete_previous" -meta2-[E = "/buffer -1" -meta-_ = "/input redo" -meta-a = "/input jump_smart" -meta-b = "/input move_previous_word" -meta-d = "/input delete_next_word" -meta-f = "/input move_next_word" -meta-h = "/input hotlist_clear" -meta-jmeta-f = "/buffer -" -meta-jmeta-l = "/buffer +" -meta-jmeta-r = "/server raw" -meta-jmeta-s = "/server jump" -meta-j01 = "/buffer *1" -meta-j02 = "/buffer *2" -meta-j03 = "/buffer *3" -meta-j04 = "/buffer *4" -meta-j05 = "/buffer *5" -meta-j06 = "/buffer *6" -meta-j07 = "/buffer *7" -meta-j08 = "/buffer *8" -meta-j09 = "/buffer *9" -meta-j10 = "/buffer *10" -meta-j11 = "/buffer *11" -meta-j12 = "/buffer *12" -meta-j13 = "/buffer *13" -meta-j14 = "/buffer *14" -meta-j15 = "/buffer *15" -meta-j16 = "/buffer *16" -meta-j17 = "/buffer *17" -meta-j18 = "/buffer *18" -meta-j19 = "/buffer *19" -meta-j20 = "/buffer *20" -meta-j21 = "/buffer *21" -meta-j22 = "/buffer *22" -meta-j23 = "/buffer *23" -meta-j24 = "/buffer *24" -meta-j25 = "/buffer *25" -meta-j26 = "/buffer *26" -meta-j27 = "/buffer *27" -meta-j28 = "/buffer *28" -meta-j29 = "/buffer *29" -meta-j30 = "/buffer *30" -meta-j31 = "/buffer *31" -meta-j32 = "/buffer *32" -meta-j33 = "/buffer *33" -meta-j34 = "/buffer *34" -meta-j35 = "/buffer *35" -meta-j36 = "/buffer *36" -meta-j37 = "/buffer *37" -meta-j38 = "/buffer *38" -meta-j39 = "/buffer *39" -meta-j40 = "/buffer *40" -meta-j41 = "/buffer *41" -meta-j42 = "/buffer *42" -meta-j43 = "/buffer *43" -meta-j44 = "/buffer *44" -meta-j45 = "/buffer *45" -meta-j46 = "/buffer *46" -meta-j47 = "/buffer *47" -meta-j48 = "/buffer *48" -meta-j49 = "/buffer *49" -meta-j50 = "/buffer *50" -meta-j51 = "/buffer *51" -meta-j52 = "/buffer *52" -meta-j53 = "/buffer *53" -meta-j54 = "/buffer *54" -meta-j55 = "/buffer *55" -meta-j56 = "/buffer *56" -meta-j57 = "/buffer *57" -meta-j58 = "/buffer *58" -meta-j59 = "/buffer *59" -meta-j60 = "/buffer *60" -meta-j61 = "/buffer *61" -meta-j62 = "/buffer *62" -meta-j63 = "/buffer *63" -meta-j64 = "/buffer *64" -meta-j65 = "/buffer *65" -meta-j66 = "/buffer *66" -meta-j67 = "/buffer *67" -meta-j68 = "/buffer *68" -meta-j69 = "/buffer *69" -meta-j70 = "/buffer *70" -meta-j71 = "/buffer *71" -meta-j72 = "/buffer *72" -meta-j73 = "/buffer *73" -meta-j74 = "/buffer *74" -meta-j75 = "/buffer *75" -meta-j76 = "/buffer *76" -meta-j77 = "/buffer *77" -meta-j78 = "/buffer *78" -meta-j79 = "/buffer *79" -meta-j80 = "/buffer *80" -meta-j81 = "/buffer *81" -meta-j82 = "/buffer *82" -meta-j83 = "/buffer *83" -meta-j84 = "/buffer *84" -meta-j85 = "/buffer *85" -meta-j86 = "/buffer *86" -meta-j87 = "/buffer *87" -meta-j88 = "/buffer *88" -meta-j89 = "/buffer *89" -meta-j90 = "/buffer *90" -meta-j91 = "/buffer *91" -meta-j92 = "/buffer *92" -meta-j93 = "/buffer *93" -meta-j94 = "/buffer *94" -meta-j95 = "/buffer *95" -meta-j96 = "/buffer *96" -meta-j97 = "/buffer *97" -meta-j98 = "/buffer *98" -meta-j99 = "/buffer *99" -meta-k = "/input grab_key_command" -meta-l = "/window bare" -meta-m = "/mute mouse toggle" -meta-n = "/window scroll_next_highlight" -meta-p = "/window scroll_previous_highlight" -meta-r = "/input delete_line" -meta-s = "/mute aspell toggle" -meta-u = "/window scroll_unread" -meta-wmeta-meta2-A = "/window up" -meta-wmeta-meta2-B = "/window down" -meta-wmeta-meta2-C = "/window right" -meta-wmeta-meta2-D = "/window left" -meta-wmeta2-1;3A = "/window up" -meta-wmeta2-1;3B = "/window down" -meta-wmeta2-1;3C = "/window right" -meta-wmeta2-1;3D = "/window left" -meta-wmeta-b = "/window balance" -meta-wmeta-s = "/window swap" -meta-x = "/input zoom_merged_buffer" -meta-z = "/window zoom" -ctrl-_ = "/input undo" - -[key_search] -ctrl-I = "/input search_switch_where" -ctrl-J = "/input search_stop_here" -ctrl-M = "/input search_stop_here" -ctrl-Q = "/input search_stop" -ctrl-R = "/input search_switch_regex" -meta2-A = "/input search_previous" -meta2-B = "/input search_next" -meta-c = "/input search_switch_case" - -[key_cursor] -ctrl-J = "/cursor stop" -ctrl-M = "/cursor stop" -meta-meta2-A = "/cursor move area_up" -meta-meta2-B = "/cursor move area_down" -meta-meta2-C = "/cursor move area_right" -meta-meta2-D = "/cursor move area_left" -meta2-1;3A = "/cursor move area_up" -meta2-1;3B = "/cursor move area_down" -meta2-1;3C = "/cursor move area_right" -meta2-1;3D = "/cursor move area_left" -meta2-A = "/cursor move up" -meta2-B = "/cursor move down" -meta2-C = "/cursor move right" -meta2-D = "/cursor move left" -@item(buffer_nicklist):K = "/window ${_window_number};/kickban ${nick}" -@item(buffer_nicklist):b = "/window ${_window_number};/ban ${nick}" -@item(buffer_nicklist):k = "/window ${_window_number};/kick ${nick}" -@item(buffer_nicklist):q = "/window ${_window_number};/query ${nick};/cursor stop" -@item(buffer_nicklist):w = "/window ${_window_number};/whois ${nick}" -@chat:Q = "hsignal:chat_quote_time_prefix_message;/cursor stop" -@chat:m = "hsignal:chat_quote_message;/cursor stop" -@chat:q = "hsignal:chat_quote_prefix_message;/cursor stop" - -[key_mouse] -@bar(input):button2 = "/input grab_mouse_area" -@bar(nicklist):button1-gesture-down = "/bar scroll nicklist ${_window_number} +100%" -@bar(nicklist):button1-gesture-down-long = "/bar scroll nicklist ${_window_number} e" -@bar(nicklist):button1-gesture-up = "/bar scroll nicklist ${_window_number} -100%" -@bar(nicklist):button1-gesture-up-long = "/bar scroll nicklist ${_window_number} b" -@chat(script.scripts):button1 = "/window ${_window_number};/script go ${_chat_line_y}" -@chat(script.scripts):button2 = "/window ${_window_number};/script go ${_chat_line_y};/script installremove -q ${script_name_with_extension}" -@chat(script.scripts):wheeldown = "/script down 5" -@chat(script.scripts):wheelup = "/script up 5" -@item(buffer_nicklist):button1 = "/window ${_window_number};/query ${nick}" -@item(buffer_nicklist):button1-gesture-left = "/window ${_window_number};/kick ${nick}" -@item(buffer_nicklist):button1-gesture-left-long = "/window ${_window_number};/kickban ${nick}" -@item(buffer_nicklist):button2 = "/window ${_window_number};/whois ${nick}" -@item(buffer_nicklist):button2-gesture-left = "/window ${_window_number};/ban ${nick}" -@bar:wheeldown = "/bar scroll ${_bar_name} ${_window_number} +20%" -@bar:wheelup = "/bar scroll ${_bar_name} ${_window_number} -20%" -@chat:button1 = "/window ${_window_number}" -@chat:button1-gesture-left = "/window ${_window_number};/buffer -1" -@chat:button1-gesture-left-long = "/window ${_window_number};/buffer 1" -@chat:button1-gesture-right = "/window ${_window_number};/buffer +1" -@chat:button1-gesture-right-long = "/window ${_window_number};/input jump_last_buffer" -@chat:ctrl-wheeldown = "/window scroll_horiz -window ${_window_number} +10%" -@chat:ctrl-wheelup = "/window scroll_horiz -window ${_window_number} -10%" -@chat:wheeldown = "/window scroll_down -window ${_window_number}" -@chat:wheelup = "/window scroll_up -window ${_window_number}" -@*:button3 = "/cursor go ${_x},${_y}" diff --git a/weechat.symlink/xfer.conf b/weechat.symlink/xfer.conf deleted file mode 100644 index c7ef602..0000000 --- a/weechat.symlink/xfer.conf +++ /dev/null @@ -1,46 +0,0 @@ -# -# weechat -- xfer.conf -# -# WARNING: It is NOT recommended to edit this file by hand, -# especially if WeeChat is running. -# -# Use /set or similar command to change settings in WeeChat. -# -# For more info, see: https://weechat.org/doc/quickstart -# - -[look] -auto_open_buffer = on -progress_bar_size = 20 -pv_tags = "notify_private" - -[color] -status_aborted = lightred -status_active = lightblue -status_connecting = yellow -status_done = lightgreen -status_failed = lightred -status_waiting = lightcyan -text = default -text_bg = default -text_selected = white - -[network] -blocksize = 65536 -fast_send = on -own_ip = "" -port_range = "" -speed_limit = 0 -timeout = 300 - -[file] -auto_accept_chats = off -auto_accept_files = off -auto_accept_nicks = "" -auto_check_crc32 = off -auto_rename = on -auto_resume = on -convert_spaces = on -download_path = "%h/xfer" -upload_path = "~" -use_nick_in_filename = on From ee948dc6ea6e97ea2e825087d8e8e3e803268a3a Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 7 Aug 2017 21:41:16 +0300 Subject: [PATCH 162/230] +dep, +google-backup-and-sync, -weechat --- Brewfile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Brewfile b/Brewfile index f3fec96..20ffbbd 100644 --- a/Brewfile +++ b/Brewfile @@ -2,6 +2,7 @@ brew 'ansible' brew 'autojump' brew 'docker-machine-driver-xhyve' +brew 'dep' brew 'fzf' brew 'gnupg2' brew 'go' @@ -27,7 +28,6 @@ brew 'tree' brew 'vault' brew 'vim' brew 'watch' -brew 'weechat' brew 'wget' brew 'xhyve' brew 'yarn' @@ -39,7 +39,7 @@ cask 'docker' cask 'firefox' cask 'google-chrome' cask 'google-cloud-sdk' -cask 'google-drive' +cask 'google-backup-and-sync' cask 'iina' cask 'keybase' cask 'minikube' From eb5d30c6bbc68e3c893162d0ad11affb991faec5 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 14 Aug 2017 16:14:57 +0300 Subject: [PATCH 163/230] rotate ssh keys on a normal basis --- system/aliases.zsh | 1 + system/keys.zsh | 2 -- system/rotate.zsh | 18 ++++++++++++++++++ 3 files changed, 19 insertions(+), 2 deletions(-) delete mode 100644 system/keys.zsh create mode 100644 system/rotate.zsh diff --git a/system/aliases.zsh b/system/aliases.zsh index a03811f..e2248db 100644 --- a/system/aliases.zsh +++ b/system/aliases.zsh @@ -4,3 +4,4 @@ alias la='ls -lah' # fix pasteboards alias pbcopy='reattach-to-user-namespace pbcopy' alias pbpaste='reattach-to-user-namespace pbpaste' +alias pubkey="cat ~/.ssh/id_ed25519.pub | pbcopy | echo '=> Public key copied to pasteboard.'" diff --git a/system/keys.zsh b/system/keys.zsh deleted file mode 100644 index 67ee652..0000000 --- a/system/keys.zsh +++ /dev/null @@ -1,2 +0,0 @@ -# Copy ssh public key to clipboard -alias pubkey="cat ~/.ssh/id_ed25519.pub | pbcopy | echo '=> Public key copied to pasteboard.'" diff --git a/system/rotate.zsh b/system/rotate.zsh new file mode 100644 index 0000000..cadbc15 --- /dev/null +++ b/system/rotate.zsh @@ -0,0 +1,18 @@ +function rotate() { + local location="${HOME}/.ssh" + local key="id_ed25519" + + echo "=> please enter passphrase to lock the key" + read -s passphrase + + if [ -z $passphrase ] + then + echo "=> passphrase must be provided" + else + echo "=> backing up ssh keys to ${location}/old" + mv $location/$key{,.pub} $location/old + echo "=> generating new set of keys" + ssh-keygen -q -t ed25519 -f $location/$key -N $passphrase + echo "=> done" + fi +} From f719bd1722c6dc3079b83df5069fd7c72fe48461 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 14 Aug 2017 16:36:36 +0300 Subject: [PATCH 164/230] clean some stuff --- google/aliases.zsh | 1 + kubernetes/aliases.zsh | 1 + newsbeuter/newsbeuter.symlink/urls | 2 ++ tmux/tmux.conf.symlink | 2 +- zsh/zshrc.symlink | 1 - 5 files changed, 5 insertions(+), 2 deletions(-) diff --git a/google/aliases.zsh b/google/aliases.zsh index 5d2803e..a786c69 100644 --- a/google/aliases.zsh +++ b/google/aliases.zsh @@ -1 +1,2 @@ +alias g='gcloud config configurations activate' alias gssh='gcloud compute ssh --ssh-key-file ~/.ssh/id_ed25519' diff --git a/kubernetes/aliases.zsh b/kubernetes/aliases.zsh index 0d0f309..ae44802 100644 --- a/kubernetes/aliases.zsh +++ b/kubernetes/aliases.zsh @@ -1 +1,2 @@ +alias k='kubectl config use-context' alias kca='kubectl get --all-namespaces' diff --git a/newsbeuter/newsbeuter.symlink/urls b/newsbeuter/newsbeuter.symlink/urls index 991ba8f..ec6c03f 100644 --- a/newsbeuter/newsbeuter.symlink/urls +++ b/newsbeuter/newsbeuter.symlink/urls @@ -23,3 +23,5 @@ https://github.com/hashicorp/terraform/releases.atom github https://github.com/bitly/oauth2_proxy/releases.atom github https://github.com/metabase/metabase/releases.atom github https://github.com/spinnaker/spinnaker/releases.atom github +https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom github +https://github.com/terraform-providers/terraform-provider-google/releases.atom github diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 5b055ab..69ffb0c 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -87,7 +87,7 @@ set -g status-left "#[fg=yellow]#I #[fg=cyan]#P #[fg=white]» " set -g status-right-bg black set -g status-right-fg cyan set -g status-right-length 200 -set -g status-right "(kubernetes/#(kubectl config current-context | cut -d'_' -f4)) [%a %d/%m/%Y][%H:%M]" +set -g status-right "(kubernetes/#(kubectl config current-context)) [%a %d/%m/%Y][%H:%M]" # clock mode set -g clock-mode-colour red diff --git a/zsh/zshrc.symlink b/zsh/zshrc.symlink index 12c171b..f777fac 100644 --- a/zsh/zshrc.symlink +++ b/zsh/zshrc.symlink @@ -31,7 +31,6 @@ autoload -U edit-command-line zle -N edit-command-line bindkey -M vicmd v edit-command-line -# store sensitive stuff here if [[ -a ~/.localrc ]] then source ~/.localrc From cf98a07b7ae80d14a4430c451edf8ddb25cdc143 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Fri, 25 Aug 2017 17:08:10 +0300 Subject: [PATCH 165/230] Update LICENSE --- LICENSE | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/LICENSE b/LICENSE index 96956b6..14da818 100644 --- a/LICENSE +++ b/LICENSE @@ -1,4 +1,4 @@ -Copyright (c) 2016 Or Elimelech <0r3limelech@gmail.com> +Copyright (c) 2016 Or Elimelech Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted, provided that the above From 4d906f54b9f248d0b6b0495ab08fddd06880b1f0 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 27 Aug 2017 20:56:47 +0300 Subject: [PATCH 166/230] remove old stuff --- packages/GoPackages | 3 -- zsh/autojump.zsh | 7 ---- zsh/cwd.bak | 80 --------------------------------------------- zsh/history.zsh | 6 ++-- zsh/prompt.zsh | 51 ++++------------------------- zsh/window.zsh | 18 ---------- 6 files changed, 10 insertions(+), 155 deletions(-) delete mode 100755 packages/GoPackages delete mode 100644 zsh/autojump.zsh delete mode 100644 zsh/cwd.bak delete mode 100644 zsh/window.zsh diff --git a/packages/GoPackages b/packages/GoPackages deleted file mode 100755 index da24af2..0000000 --- a/packages/GoPackages +++ /dev/null @@ -1,3 +0,0 @@ -github.com/rakyll/boom -github.com/kardianos/govendor -github.com/nsf/gocode diff --git a/zsh/autojump.zsh b/zsh/autojump.zsh deleted file mode 100644 index ece4d11..0000000 --- a/zsh/autojump.zsh +++ /dev/null @@ -1,7 +0,0 @@ -function j() { - (( $+commands[brew] )) && { - local pfx=$(brew --prefix) - [[ -f "$pfx/etc/autojump.sh" ]] && . "$pfx/etc/autojump.sh" - j "$@" - } -} diff --git a/zsh/cwd.bak b/zsh/cwd.bak deleted file mode 100644 index c8621e7..0000000 --- a/zsh/cwd.bak +++ /dev/null @@ -1,80 +0,0 @@ -zmodload zsh/langinfo -function omz_urlencode() { - emulate -L zsh - zparseopts -D -E -a opts r m P - - local in_str=$1 - local url_str="" - local spaces_as_plus - if [[ -z $opts[(r)-P] ]]; then spaces_as_plus=1; fi - local str="$in_str" - - # URLs must use UTF-8 encoding; convert str to UTF-8 if required - local encoding=$langinfo[CODESET] - local safe_encodings - safe_encodings=(UTF-8 utf8 US-ASCII) - if [[ -z ${safe_encodings[(r)$encoding]} ]]; then - str=$(echo -E "$str" | iconv -f $encoding -t UTF-8) - if [[ $? != 0 ]]; then - echo "Error converting string from $encoding to UTF-8" >&2 - return 1 - fi - fi - - # Use LC_CTYPE=C to process text byte-by-byte - local i byte ord LC_ALL=C - export LC_ALL - local reserved=';/?:@&=+$,' - local mark='_.!~*''()-' - local dont_escape="[A-Za-z0-9" - if [[ -z $opts[(r)-r] ]]; then - dont_escape+=$reserved - fi - # $mark must be last because of the "-" - if [[ -z $opts[(r)-m] ]]; then - dont_escape+=$mark - fi - dont_escape+="]" - - # Implemented to use a single printf call and avoid subshells in the loop, - # for performance (primarily on Windows). - local url_str="" - for (( i = 1; i <= ${#str}; ++i )); do - byte="$str[i]" - if [[ "$byte" =~ "$dont_escape" ]]; then - url_str+="$byte" - else - if [[ "$byte" == " " && -n $spaces_as_plus ]]; then - url_str+="+" - else - ord=$(( [##16] #byte )) - url_str+="%$ord" - fi - fi - done - echo -E "$url_str" -} - -# Keep Apple Terminal.app's current working directory updated -# Based on this answer: http://superuser.com/a/315029 -# With extra fixes to handle multibyte chars and non-UTF-8 locales -if [[ "$TERM_PROGRAM" == "Apple_Terminal" ]] && [[ -z "$INSIDE_EMACS" ]]; then - # Emits the control sequence to notify Terminal.app of the cwd - # Identifies the directory using a file: URI scheme, including - # the host name to disambiguate local vs. remote paths. - function update_terminalapp_cwd() { - emulate -L zsh - - # Percent-encode the pathname. - local URL_PATH="$(omz_urlencode -P $PWD)" - [[ $? != 0 ]] && return 1 - - # Undocumented Terminal.app-specific control sequence - printf '\e]7;%s\a' "file://$HOST$URL_PATH" - } - - # Use a precmd hook instead of a chpwd hook to avoid contaminating output - precmd_functions+=(update_terminalapp_cwd) - # Run once to get initial cwd set - update_terminalapp_cwd -fi diff --git a/zsh/history.zsh b/zsh/history.zsh index d26c235..9971ea5 100644 --- a/zsh/history.zsh +++ b/zsh/history.zsh @@ -3,7 +3,7 @@ HISTSIZE=10000 SAVEHIST=10000 setopt HIST_IGNORE_SPACE -setopt APPEND_HISTORY # adds history -setopt INC_APPEND_HISTORY SHARE_HISTORY # adds history incrementally and share it across sessions -setopt HIST_IGNORE_ALL_DUPS # don't record dupes in history +setopt APPEND_HISTORY +setopt INC_APPEND_HISTORY SHARE_HISTORY +setopt HIST_IGNORE_ALL_DUPS setopt HIST_REDUCE_BLANKS diff --git a/zsh/prompt.zsh b/zsh/prompt.zsh index 2e3d664..242df0f 100644 --- a/zsh/prompt.zsh +++ b/zsh/prompt.zsh @@ -1,24 +1,15 @@ autoload colors && colors -# cheers, @ehrenmurdick -# http://github.com/ehrenmurdick/config/blob/master/zsh/prompt.zsh - -if (( $+commands[git] )) -then - git="$commands[git]" -else - git="/usr/bin/git" -fi git_branch() { - echo $($git symbolic-ref HEAD 2>/dev/null | awk -F/ {'print $NF'}) + echo $(git symbolic-ref HEAD 2>/dev/null | awk -F/ {'print $NF'}) } git_dirty() { - if $(! $git status -s &> /dev/null) + if $(! git status -s &> /dev/null) then echo "" else - if [[ $($git status --porcelain) == "" ]] + if [[ $(git status --porcelain) == "" ]] then echo ":%{$fg_bold[green]%}$(git_prompt_info)%{$reset_color%}" else @@ -28,12 +19,12 @@ git_dirty() { } git_prompt_info () { - ref=$($git symbolic-ref HEAD 2>/dev/null) || return + ref=$(git symbolic-ref HEAD 2>/dev/null) || return echo "${ref#refs/heads/}" } unpushed () { - $git cherry -v @{upstream} 2>/dev/null + git cherry -v @{upstream} 2>/dev/null } need_push () { @@ -45,37 +36,9 @@ need_push () { fi } -ruby_version() { - if (( $+commands[rbenv] )) - then - echo "$(rbenv version | awk '{print $1}')" - fi - - if (( $+commands[rvm-prompt] )) - then - echo "$(rvm-prompt | awk '{print $1}')" - fi -} - -rb_prompt() { - if ! [[ -z "$(ruby_version)" ]] - then - echo "%{$fg[yellow]%}$(ruby_version)%{$reset_color%} " - else - echo "" - fi -} - directory_name() { echo "%{$fg[cyan]%}%1/%{$reset_color%}" } -export PROMPT=$'$(rb_prompt)$(directory_name)$(git_dirty)$(need_push)› ' -set_prompt () { - export RPROMPT="%{$fg[cyan]%}%{$reset_color%}" -} - -precmd() { - title "zsh" "%m" "%55<...<%~" - set_prompt -} +# set propmpt +export PROMPT=$'$(directory_name)$(git_dirty)$(need_push)› ' diff --git a/zsh/window.zsh b/zsh/window.zsh deleted file mode 100644 index f07e67d..0000000 --- a/zsh/window.zsh +++ /dev/null @@ -1,18 +0,0 @@ -# From http://dotfiles.org/~_why/.zshrc -# Sets the window title nicely no matter where you are -function title() { - # escape '%' chars in $1, make nonprintables visible - a=${(V)1//\%/\%\%} - - # Truncate command, and join lines. - a=$(print -Pn "%40>...>$a" | tr -d "\n") - - case $TERM in - screen) - print -Pn "\ek$a:$3\e\\" # screen title (in ^A") - ;; - xterm*|rxvt) - print -Pn "\e]2;$2\a" # plain xterm title ($3 for pwd) - ;; - esac -} From 08e509982036321038b7e2d14a67e7e12e664f58 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 27 Aug 2017 20:59:11 +0300 Subject: [PATCH 167/230] fix paths --- fzf/path.zsh | 9 ++------- go/path.zsh | 1 - system/autojump.zsh | 1 + 3 files changed, 3 insertions(+), 8 deletions(-) create mode 100644 system/autojump.zsh diff --git a/fzf/path.zsh b/fzf/path.zsh index a40afd7..e4666d8 100644 --- a/fzf/path.zsh +++ b/fzf/path.zsh @@ -1,7 +1,2 @@ -if [[ ! "$PATH" == */usr/local/opt/fzf/bin* ]]; then - export PATH="$PATH:/usr/local/opt/fzf/bin" -fi - -if [[ ! "$MANPATH" == */usr/local/opt/fzf/man* && -d "/usr/local/opt/fzf/man" ]]; then - export MANPATH="$MANPATH:/usr/local/opt/fzf/man" -fi +export PATH="$PATH:/usr/local/opt/fzf/bin" +export MANPATH="$MANPATH:/usr/local/opt/fzf/man" diff --git a/go/path.zsh b/go/path.zsh index e31bea4..fa8540a 100644 --- a/go/path.zsh +++ b/go/path.zsh @@ -1,2 +1 @@ export PATH="$HOME/go/bin:$PATH" -export CDPATH=".:$HOME/go/src" diff --git a/system/autojump.zsh b/system/autojump.zsh new file mode 100644 index 0000000..5157708 --- /dev/null +++ b/system/autojump.zsh @@ -0,0 +1 @@ +[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh From 113a8df0f4112efef056eebbc161dc4dea749467 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 27 Aug 2017 20:59:34 +0300 Subject: [PATCH 168/230] add neocomplete --- vim/aliases.zsh | 1 + vim/vimrc.symlink | 25 ++++++++++++++++++++----- 2 files changed, 21 insertions(+), 5 deletions(-) create mode 100644 vim/aliases.zsh diff --git a/vim/aliases.zsh b/vim/aliases.zsh new file mode 100644 index 0000000..924a904 --- /dev/null +++ b/vim/aliases.zsh @@ -0,0 +1 @@ +alias vi='vim' diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 41f4c16..3963c19 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -4,6 +4,11 @@ filetype off " vim-plug call plug#begin('~/.vim/plugged') +" Themes +Plug 'altercation/vim-colors-solarized' +Plug 'vim-airline/vim-airline' +Plug 'vim-airline/vim-airline-themes' + " Common stuff Plug 'jamessan/vim-gnupg' Plug 'tpope/vim-fugitive' @@ -16,13 +21,13 @@ Plug 'junegunn/fzf' Plug 'junegunn/fzf.vim' Plug 'editorconfig/editorconfig-vim' Plug 'google/vim-searchindex' -Plug 'KeyboardFire/vim-minisnip' Plug 'vim-syntastic/syntastic' -" Themes -Plug 'altercation/vim-colors-solarized' -Plug 'vim-airline/vim-airline' -Plug 'vim-airline/vim-airline-themes' +" completion +Plug 'Shougo/neocomplete.vim' +Plug 'Shougo/neosnippet.vim' +Plug 'Shougo/neosnippet-snippets' +Plug 'jiangmiao/auto-pairs' " Language specific plugins Plug 'hashivim/vim-terraform' @@ -62,6 +67,7 @@ set mouse=nv set cursorline set cursorcolumn set autowrite +set backspace=2 " Search settings set incsearch " show search matches as you type @@ -76,6 +82,14 @@ map :cnext map :cprevious nnoremap a :cclose +" neocomplete +let g:neocomplete#enable_at_startup = 1 + +" neosnippet +imap (neosnippet_expand_or_jump) +smap (neosnippet_expand_or_jump) +xmap (neosnippet_expand_target) + " syntastic set statusline+=%#warningmsg# set statusline+=%{SyntasticStatuslineFlag()} @@ -89,6 +103,7 @@ let g:syntastic_go_checkers = ['golint', 'govet'] " vim-go let g:go_fmt_command = "goimports" +let g:go_snippet_engine = "neosnippet" augroup golang au! au FileType go nmap b (go-build) From 1227c6cbffa1b1993075e44f774da6aa8ad89215 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Fri, 1 Sep 2017 11:58:07 +0300 Subject: [PATCH 169/230] graphviz --- Brewfile | 1 + system/solarized-dark-256.terminal | 158 ----------------------------- 2 files changed, 1 insertion(+), 158 deletions(-) delete mode 100644 system/solarized-dark-256.terminal diff --git a/Brewfile b/Brewfile index 20ffbbd..8fbb0b7 100644 --- a/Brewfile +++ b/Brewfile @@ -31,6 +31,7 @@ brew 'watch' brew 'wget' brew 'xhyve' brew 'yarn' +brew 'graphviz' # Casks cask 'airflow' diff --git a/system/solarized-dark-256.terminal b/system/solarized-dark-256.terminal deleted file mode 100644 index 85e9b19..0000000 --- a/system/solarized-dark-256.terminal +++ /dev/null @@ -1,158 +0,0 @@ - - - - - BackgroundColor - - YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB - TxAtMC4wMTU5MjQ0MDUzMSAwLjEyNjUyMDkxNjggMC4xNTk2OTYwMTI3IDAuOTYA0hAR - EhNaJGNsYXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXll - ZEFyY2hpdmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhPXGJkZpabpq+3usPV2N0AAAAAAAAB - AQAAAAAAAAAZAAAAAAAAAAAAAAAAAAAA3w== - - BlinkText - - CursorColor - - YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB - TxAnMC40NDA1ODAyNDg4IDAuNTA5NjI5MzA5MiAwLjUxNjg1Nzk4MTcA0hAREhNaJGNs - YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp - dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhPXGJkZpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA - AAAZAAAAAAAAAAAAAAAAAAAA2Q== - - Font - - YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKQHCBESVSRudWxs1AkKCwwNDg8QViRjbGFzc1ZOU05hbWVWTlNTaXplWE5TZkZs - YWdzgAOAAiNAJgAAAAAAABAQXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRj - bGFzc2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEaG1Ryb290 - gAEIERojLTI3PEJLUllgaWttdniGi5afpqmyxMfMAAAAAAAAAQEAAAAAAAAAHAAAAAAA - AAAAAAAAAAAAAM4= - - FontAntialias - - FontWidthSpacing - 1.004032258064516 - ProfileCurrentVersion - 2.0099999999999998 - SelectionColor - - YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB - TxAoMC4wMzkzODA3MzY2NSAwLjE2MDExNjQ2MzkgMC4xOTgzMzI3NTY4ANIQERITWiRj - bGFzc25hbWVYJGNsYXNzZXNXTlNDb2xvcqISFFhOU09iamVjdF8QD05TS2V5ZWRBcmNo - aXZlctEXGFRyb290gAEIERojLTI3O0FIT1xiZGaRlqGqsrW+0NPYAAAAAAAAAQEAAAAA - AAAAGQAAAAAAAAAAAAAAAAAAANo= - - ShowWindowSettingsNameInTitle - - TerminalType - xterm-256color - TextBoldColor - - YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB - TxAmMC41MDU5OTE5MzU3IDAuNTY0ODU4Mzc3IDAuNTYzNjM2NTQxNADSEBESE1okY2xh - c3NuYW1lWCRjbGFzc2VzV05TQ29sb3KiEhRYTlNPYmplY3RfEA9OU0tleWVkQXJjaGl2 - ZXLRFxhUcm9vdIABCBEaIy0yNztBSE9cYmRmj5SfqLCzvM7R1gAAAAAAAAEBAAAAAAAA - ABkAAAAAAAAAAAAAAAAAAADY - - TextColor - - YnBsaXN0MDDUAQIDBAUGFRZYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKMHCA9VJG51bGzTCQoLDA0OViRjbGFzc1xOU0NvbG9yU3BhY2VVTlNSR0KAAhAB - TxAnMC40NDA1ODAyNDg4IDAuNTA5NjI5MzA5MiAwLjUxNjg1Nzk4MTcA0hAREhNaJGNs - YXNzbmFtZVgkY2xhc3Nlc1dOU0NvbG9yohIUWE5TT2JqZWN0XxAPTlNLZXllZEFyY2hp - dmVy0RcYVHJvb3SAAQgRGiMtMjc7QUhPXGJkZpCVoKmxtL3P0tcAAAAAAAABAQAAAAAA - AAAZAAAAAAAAAAAAAAAAAAAA2Q== - - UseBrightBold - - blackColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg7JNIT2DkvUjPoO+F0s+AYY= - - blueColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmgyqcAj6DtOHsPoO+RUg/AYY= - - brightBlackColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg+ZzgjyDs44BPoNahyM+AYY= - - brightBlueColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg7yT4T6DEXcCP4POUAQ/AYY= - - brightCyanColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg7CIAT+Dj5oQP4N8ShA/AYY= - - brightGreenColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmgzyujT6DFZy2PoOYFsQ+AYY= - - brightMagentaColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmgxMjsj6D+uazPoNkyTc/AYY= - - brightRedColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmgyfkPT+D/15aPoMgl5Y9AYY= - - brightWhiteColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg49LfT+D0Dt1P4MGM10/AYY= - - brightYellowColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg1MTpj6DeHnQPoPQg+A+AYY= - - cyanColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg4VRFj6DfyESP4PkZwY/AYY= - - greenColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg9lI5j6DIYkKP4PVjKU8AYY= - - magentaColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg/4CRz+DBTzdPYMgzt4+AYY= - - name - Solarized Dark xterm-256color - redColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg6i7UT+DUATePYMl2hA+AYY= - - type - Window Settings - whiteColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmgzqGaj+D2tdjP4NYPUw/AYY= - - yellowColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg0DAJT+DB17vPoM4Y8A8AYY= - - - From 88fa66e4e80573b5607531e4a99c3746dee7e8e6 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 1 Oct 2017 11:34:07 +0300 Subject: [PATCH 170/230] remove sshadd func --- functions/ssh.zsh | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 functions/ssh.zsh diff --git a/functions/ssh.zsh b/functions/ssh.zsh deleted file mode 100644 index f1fe7e3..0000000 --- a/functions/ssh.zsh +++ /dev/null @@ -1,4 +0,0 @@ -# ssh add my key to ssh-agent -function sshadd() { - ssh-add ~/.ssh/id_ed25519 -} From 7552377c065c1a28ce1a006573c4392e480ec4c3 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 1 Oct 2017 11:34:32 +0300 Subject: [PATCH 171/230] match brewfile to whats on the system --- Brewfile | 29 ++++++++++++++++++++++------- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/Brewfile b/Brewfile index 8fbb0b7..a60de11 100644 --- a/Brewfile +++ b/Brewfile @@ -1,24 +1,36 @@ +# Taps +tap 'caskroom/cask' +tap 'homebrew/bundle' +tap 'homebrew/core' +tap 'homebrew/services' +tap 'homebrew/versions' + # Brews brew 'ansible' brew 'autojump' -brew 'docker-machine-driver-xhyve' +brew 'awscli' brew 'dep' +brew 'ffmpeg' brew 'fzf' +brew 'git' brew 'gnupg2' brew 'go' +brew 'graphviz' +brew 'htop' +brew 'httpie' brew 'hub' brew 'hugo' brew 'ipcalc' brew 'iperf' brew 'jq' -brew 'jsonnet' +brew 'kubernetes-helm' brew 'mercurial' brew 'newsbeuter' brew 'nmap' brew 'node' brew 'packer' -brew 'pandoc' brew 'protobuf' +brew 'qpdf' brew 'reattach-to-user-namespace' brew 'teleconsole' brew 'terraform' @@ -26,25 +38,28 @@ brew 'tig' brew 'tmux' brew 'tree' brew 'vault' -brew 'vim' +brew 'vim', args: ['with-lua'] brew 'watch' brew 'wget' -brew 'xhyve' brew 'yarn' -brew 'graphviz' +brew 'youtube-dl' # Casks cask 'airflow' cask 'boxer' cask 'docker' +cask 'elm-platform' cask 'firefox' +cask 'google-backup-and-sync' cask 'google-chrome' cask 'google-cloud-sdk' -cask 'google-backup-and-sync' cask 'iina' cask 'keybase' cask 'minikube' cask 'openzfs' +cask 'robo-3t' +cask 'sequel-pro' +cask 'softu2f' cask 'steam' cask 'torbrowser' cask 'transmission' From c77540c5623dab5862d87276da3a58dc167f6856 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 2 Nov 2017 09:36:07 +0200 Subject: [PATCH 172/230] grpc includes protobuf --- Brewfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Brewfile b/Brewfile index a60de11..56ecf4e 100644 --- a/Brewfile +++ b/Brewfile @@ -29,7 +29,7 @@ brew 'newsbeuter' brew 'nmap' brew 'node' brew 'packer' -brew 'protobuf' +brew 'grpc' brew 'qpdf' brew 'reattach-to-user-namespace' brew 'teleconsole' @@ -45,7 +45,6 @@ brew 'yarn' brew 'youtube-dl' # Casks -cask 'airflow' cask 'boxer' cask 'docker' cask 'elm-platform' From cb044adf7c36311e9d900500b55c473b543d94e3 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 2 Nov 2017 09:36:58 +0200 Subject: [PATCH 173/230] git prompt --- vim/vimrc.symlink | 46 ++++++++++++++++++++++++++-------------------- zsh/prompt.zsh | 2 +- 2 files changed, 27 insertions(+), 21 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 3963c19..ff625d0 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -17,13 +17,14 @@ Plug 'unblevable/quick-scope' Plug 'tpope/vim-surround' Plug 'tpope/vim-commentary' Plug 'tpope/vim-repeat' -Plug 'junegunn/fzf' -Plug 'junegunn/fzf.vim' +Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' Plug 'editorconfig/editorconfig-vim' Plug 'google/vim-searchindex' -Plug 'vim-syntastic/syntastic' -" completion +" Linting & fixing +Plug 'w0rp/ale' + +" Completion Plug 'Shougo/neocomplete.vim' Plug 'Shougo/neosnippet.vim' Plug 'Shougo/neosnippet-snippets' @@ -32,12 +33,16 @@ Plug 'jiangmiao/auto-pairs' " Language specific plugins Plug 'hashivim/vim-terraform' Plug 'ekalinin/Dockerfile.vim' -Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries','for': 'go' } -Plug 'nsf/gocode', { 'for': 'go', 'rtp': 'vim', 'do': '~/.vim/plugged/gocode/vim/symlink.sh' } -Plug 'rust-lang/rust.vim', { 'for': 'rust' } -Plug 'kchmck/vim-coffee-script', { 'for': 'coffee' } -Plug 'elzr/vim-json', { 'for': 'json' } -Plug 'uarun/vim-protobuf', { 'for': 'proto' } +Plug 'fatih/vim-go', {'do': ':GoInstallBinaries','for': 'go'} +Plug 'nsf/gocode', {'for': 'go', 'rtp': 'vim', 'do': '~/.vim/plugged/gocode/vim/symlink.sh'} +Plug 'rust-lang/rust.vim', {'for': 'rust'} +Plug 'kchmck/vim-coffee-script', {'for': 'coffee'} +Plug 'elzr/vim-json', {'for': 'json'} +Plug 'uarun/vim-protobuf', {'for': 'proto'} +Plug 'elmcast/elm-vim', {'for': 'elm'} + +" Games :) +Plug 'johngrib/vim-game-code-break' " Add plugins to runtime call plug#end() @@ -63,7 +68,7 @@ set modelines=5 set laststatus=2 set undofile set undodir=$HOME/.vim/undo -set mouse=nv +" set mouse=nv set cursorline set cursorcolumn set autowrite @@ -90,16 +95,16 @@ imap (neosnippet_expand_or_jump) smap (neosnippet_expand_or_jump) xmap (neosnippet_expand_target) -" syntastic -set statusline+=%#warningmsg# -set statusline+=%{SyntasticStatuslineFlag()} -set statusline+=%* +" " syntastic +" set statusline+=%#warningmsg# +" set statusline+=%{SyntasticStatuslineFlag()} +" set statusline+=%* -let g:syntastic_always_populate_loc_list = 1 -let g:syntastic_auto_loc_list = 1 -let g:syntastic_check_on_open = 1 -let g:syntastic_check_on_wq = 0 -let g:syntastic_go_checkers = ['golint', 'govet'] +" let g:syntastic_always_populate_loc_list = 1 +" let g:syntastic_auto_loc_list = 1 +" let g:syntastic_check_on_open = 1 +" let g:syntastic_check_on_wq = 0 +" let g:syntastic_go_checkers = ['golint', 'govet'] " vim-go let g:go_fmt_command = "goimports" @@ -120,6 +125,7 @@ let g:airline_right_sep='' let g:airline_left_sep='' let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#left_sep = '' +let g:airline_powerline_fonts = 1 " terraform let g:terraform_fmt_on_save = 1 diff --git a/zsh/prompt.zsh b/zsh/prompt.zsh index 242df0f..b59f80b 100644 --- a/zsh/prompt.zsh +++ b/zsh/prompt.zsh @@ -9,7 +9,7 @@ git_dirty() { then echo "" else - if [[ $(git status --porcelain) == "" ]] + if [[ $(git status --porcelain --untracked-files=no) == "" ]] then echo ":%{$fg_bold[green]%}$(git_prompt_info)%{$reset_color%}" else From 454b85552300502bdf638c38f5dc292725e3c5b9 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 26 Nov 2017 21:58:01 +0200 Subject: [PATCH 174/230] newsbeuter is not maintained, moved to newsboat --- newsbeuter/aliases.zsh | 2 -- newsboat/aliases.zsh | 2 ++ {newsbeuter => newsboat}/install.sh | 0 .../newsboat.symlink}/.gitignore | 0 .../newsbeuter.symlink => newsboat/newsboat.symlink}/config | 0 .../newsbeuter.symlink => newsboat/newsboat.symlink}/urls | 5 ++--- 6 files changed, 4 insertions(+), 5 deletions(-) delete mode 100644 newsbeuter/aliases.zsh create mode 100644 newsboat/aliases.zsh rename {newsbeuter => newsboat}/install.sh (100%) rename {newsbeuter/newsbeuter.symlink => newsboat/newsboat.symlink}/.gitignore (100%) rename {newsbeuter/newsbeuter.symlink => newsboat/newsboat.symlink}/config (100%) rename {newsbeuter/newsbeuter.symlink => newsboat/newsboat.symlink}/urls (90%) diff --git a/newsbeuter/aliases.zsh b/newsbeuter/aliases.zsh deleted file mode 100644 index 9b9de24..0000000 --- a/newsbeuter/aliases.zsh +++ /dev/null @@ -1,2 +0,0 @@ -alias news="newsbeuter -q" -alias rss="news" diff --git a/newsboat/aliases.zsh b/newsboat/aliases.zsh new file mode 100644 index 0000000..895e1c0 --- /dev/null +++ b/newsboat/aliases.zsh @@ -0,0 +1,2 @@ +alias news="newsboat -q" +alias rss="news" diff --git a/newsbeuter/install.sh b/newsboat/install.sh similarity index 100% rename from newsbeuter/install.sh rename to newsboat/install.sh diff --git a/newsbeuter/newsbeuter.symlink/.gitignore b/newsboat/newsboat.symlink/.gitignore similarity index 100% rename from newsbeuter/newsbeuter.symlink/.gitignore rename to newsboat/newsboat.symlink/.gitignore diff --git a/newsbeuter/newsbeuter.symlink/config b/newsboat/newsboat.symlink/config similarity index 100% rename from newsbeuter/newsbeuter.symlink/config rename to newsboat/newsboat.symlink/config diff --git a/newsbeuter/newsbeuter.symlink/urls b/newsboat/newsboat.symlink/urls similarity index 90% rename from newsbeuter/newsbeuter.symlink/urls rename to newsboat/newsboat.symlink/urls index ec6c03f..c36f305 100644 --- a/newsbeuter/newsbeuter.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -1,6 +1,3 @@ -# Comics -http://xkcd.com/rss.xml comics - # Blogs https://blog.filippo.io/rss/ blog https://jvns.ca/atom.xml blog @@ -8,10 +5,12 @@ http://googlecloudplatform.blogspot.com/atom.xml blog https://blog.google/products/g-suite/rss blog http://google-opensource.blogspot.com/atom.xml blog http://undeadly.org/cgi?action=rss blog openbsd +https://cloud.google.com/feeds/container-engine-release-notes.xml # Github releases https://github.com/kubernetes/kubernetes/releases.atom github https://github.com/kubernetes/ingress/releases.atom github +https://github.com/kubernetes/kube-state-metrics/releases.atom github https://github.com/istio/istio/releases.atom github https://github.com/prometheus/prometheus/releases.atom github https://github.com/prometheus/alertmanager/releases.atom github From 5e4047b92f8ecdced503a2cf179c579869d0bdb9 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 26 Nov 2017 21:58:19 +0200 Subject: [PATCH 175/230] elixir and rust --- Brewfile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Brewfile b/Brewfile index 56ecf4e..ba935f2 100644 --- a/Brewfile +++ b/Brewfile @@ -10,12 +10,14 @@ brew 'ansible' brew 'autojump' brew 'awscli' brew 'dep' +brew 'elixir' brew 'ffmpeg' brew 'fzf' brew 'git' brew 'gnupg2' brew 'go' brew 'graphviz' +brew 'grpc' brew 'htop' brew 'httpie' brew 'hub' @@ -25,13 +27,13 @@ brew 'iperf' brew 'jq' brew 'kubernetes-helm' brew 'mercurial' -brew 'newsbeuter' +brew 'newsboat' brew 'nmap' brew 'node' brew 'packer' -brew 'grpc' brew 'qpdf' brew 'reattach-to-user-namespace' +brew 'rust' brew 'teleconsole' brew 'terraform' brew 'tig' From 31f6e3c3a81d341ec79d96f5f2d997fd03d6a7e9 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 26 Nov 2017 21:58:53 +0200 Subject: [PATCH 176/230] 256 color --- tmux/tmux.conf.symlink | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 69ffb0c..25f58f6 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -1,8 +1,8 @@ ## global config set -g default-shell $SHELL # zsh +set -g default-terminal screen-256color # true colors set -g prefix C-a # change prefix to CTRL-a set -g mouse on # enable mouse -set -g terminal-overrides ',xterm-256color:Tc' # true colors set -s escape-time 10 # speed up set -g base-index 1 # start window index at 1 set -g renumber-windows on # auto renumber when tab is deleted From 4f99bd9727979b78012e6e149f2143ef28184c21 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 26 Nov 2017 21:59:08 +0200 Subject: [PATCH 177/230] vimdiff as mergetool --- git/gitconfig.symlink | 2 ++ 1 file changed, 2 insertions(+) diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index 2e10e17..9e81953 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -23,3 +23,5 @@ clean = git-lfs clean %f smudge = git-lfs smudge %f required = true +[merge] + tool = vimdiff From 69ed59eac3698bc6682b4ac2af7e187965279427 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 26 Nov 2017 21:59:19 +0200 Subject: [PATCH 178/230] elixir --- vim/vimrc.symlink | 1 + 1 file changed, 1 insertion(+) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index ff625d0..0804276 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -40,6 +40,7 @@ Plug 'kchmck/vim-coffee-script', {'for': 'coffee'} Plug 'elzr/vim-json', {'for': 'json'} Plug 'uarun/vim-protobuf', {'for': 'proto'} Plug 'elmcast/elm-vim', {'for': 'elm'} +Plug 'elixir-lang/vim-elixir', {'for': 'elixir'} " Games :) Plug 'johngrib/vim-game-code-break' From 7f3ab18c2df77fafa77ae5f4b7f3e8a42bbd7376 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 24 Dec 2017 16:34:07 +0200 Subject: [PATCH 179/230] creates themes directory --- .gitmodules | 3 +++ themes/dracula | 1 + {system => themes}/solarized-dark.terminal | 0 vim/vimrc.symlink | 3 ++- 4 files changed, 6 insertions(+), 1 deletion(-) create mode 100644 .gitmodules create mode 160000 themes/dracula rename {system => themes}/solarized-dark.terminal (100%) diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..5d0fe04 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "themes/dracula"] + path = themes/dracula + url = https://github.com/dracula/terminal.app.git diff --git a/themes/dracula b/themes/dracula new file mode 160000 index 0000000..258d9a3 --- /dev/null +++ b/themes/dracula @@ -0,0 +1 @@ +Subproject commit 258d9a3698773d0ef282428e5e5b6a25af65b1a1 diff --git a/system/solarized-dark.terminal b/themes/solarized-dark.terminal similarity index 100% rename from system/solarized-dark.terminal rename to themes/solarized-dark.terminal diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 0804276..07843f7 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -6,6 +6,7 @@ call plug#begin('~/.vim/plugged') " Themes Plug 'altercation/vim-colors-solarized' +Plug 'dracula/vim' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' @@ -51,7 +52,7 @@ call plug#end() filetype plugin indent on " Silent errors if colorscheme not exist -silent! colorscheme solarized +silent! colorscheme dracula set t_Co=256 " true colors " Global From 93a70506ed4152291be9b2673102a98641c56eef Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 24 Dec 2017 16:34:41 +0200 Subject: [PATCH 180/230] ksonnet --- Brewfile | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Brewfile b/Brewfile index ba935f2..54bcd79 100644 --- a/Brewfile +++ b/Brewfile @@ -4,6 +4,7 @@ tap 'homebrew/bundle' tap 'homebrew/core' tap 'homebrew/services' tap 'homebrew/versions' +tap 'ksonnet/tap' # Brews brew 'ansible' @@ -25,11 +26,13 @@ brew 'hugo' brew 'ipcalc' brew 'iperf' brew 'jq' +brew 'ks' brew 'kubernetes-helm' brew 'mercurial' brew 'newsboat' brew 'nmap' brew 'node' +brew 'osquery' brew 'packer' brew 'qpdf' brew 'reattach-to-user-namespace' @@ -57,7 +60,6 @@ cask 'google-cloud-sdk' cask 'iina' cask 'keybase' cask 'minikube' -cask 'openzfs' cask 'robo-3t' cask 'sequel-pro' cask 'softu2f' From 721b1243a371222a164c9589764721e3716d38ba Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 24 Dec 2017 16:34:56 +0200 Subject: [PATCH 181/230] remove weechat related ignores --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index 57aa92d..1b67d59 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1 @@ git/gitconfig.local.symlink - -weechat.symlink/sec.conf -weechat.symlink/irc.conf From 90435290eac94ff4b7f644f993666d111b5c3570 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 24 Dec 2017 16:35:15 +0200 Subject: [PATCH 182/230] fix open under tmux --- macos/aliases.zsh | 1 + 1 file changed, 1 insertion(+) create mode 100644 macos/aliases.zsh diff --git a/macos/aliases.zsh b/macos/aliases.zsh new file mode 100644 index 0000000..2dce695 --- /dev/null +++ b/macos/aliases.zsh @@ -0,0 +1 @@ +alias open='reattach-to-user-namespace open' From 043c0457397713f4a545c9bc6f2478657cec84ec Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 7 Jan 2018 19:43:23 +0200 Subject: [PATCH 183/230] rustfmt; tmux line --- Brewfile | 1 - newsboat/newsboat.symlink/urls | 1 + tmux/tmux.conf.symlink | 2 +- vim/vimrc.symlink | 14 +++----------- 4 files changed, 5 insertions(+), 13 deletions(-) diff --git a/Brewfile b/Brewfile index 54bcd79..49b04b6 100644 --- a/Brewfile +++ b/Brewfile @@ -59,7 +59,6 @@ cask 'google-chrome' cask 'google-cloud-sdk' cask 'iina' cask 'keybase' -cask 'minikube' cask 'robo-3t' cask 'sequel-pro' cask 'softu2f' diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index c36f305..a45d3d9 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -24,3 +24,4 @@ https://github.com/metabase/metabase/releases.atom github https://github.com/spinnaker/spinnaker/releases.atom github https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom github https://github.com/terraform-providers/terraform-provider-google/releases.atom github +https://github.com/kolide/fleet/releases.atom github diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 25f58f6..3c43cbd 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -87,7 +87,7 @@ set -g status-left "#[fg=yellow]#I #[fg=cyan]#P #[fg=white]» " set -g status-right-bg black set -g status-right-fg cyan set -g status-right-length 200 -set -g status-right "(kubernetes/#(kubectl config current-context)) [%a %d/%m/%Y][%H:%M]" +set -g status-right "[k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|grep True|awk '{print $1}')] [%H:%M]" # clock mode set -g clock-mode-colour red diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 07843f7..cc45755 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -97,17 +97,6 @@ imap (neosnippet_expand_or_jump) smap (neosnippet_expand_or_jump) xmap (neosnippet_expand_target) -" " syntastic -" set statusline+=%#warningmsg# -" set statusline+=%{SyntasticStatuslineFlag()} -" set statusline+=%* - -" let g:syntastic_always_populate_loc_list = 1 -" let g:syntastic_auto_loc_list = 1 -" let g:syntastic_check_on_open = 1 -" let g:syntastic_check_on_wq = 0 -" let g:syntastic_go_checkers = ['golint', 'govet'] - " vim-go let g:go_fmt_command = "goimports" let g:go_snippet_engine = "neosnippet" @@ -122,6 +111,9 @@ augroup golang au FileType go nmap gd (go-doc) augroup END +" rust.vim +let g:rustfmt_autosave = 1 + " airline let g:airline_right_sep='' let g:airline_left_sep='' From e87ec27007f5e595a3845639329362371ad3ced6 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 18 Feb 2018 23:06:04 +0200 Subject: [PATCH 184/230] bkp --- Brewfile | 7 ++----- homebrew/aliases.zsh | 2 +- newsboat/newsboat.symlink/config | 2 +- newsboat/newsboat.symlink/urls | 1 + system/aliases.zsh | 1 + tmux/tmux.conf.symlink | 2 +- vim/install.sh | 1 - vim/vimrc.symlink | 1 + 8 files changed, 8 insertions(+), 9 deletions(-) diff --git a/Brewfile b/Brewfile index 49b04b6..8bc51c9 100644 --- a/Brewfile +++ b/Brewfile @@ -4,12 +4,10 @@ tap 'homebrew/bundle' tap 'homebrew/core' tap 'homebrew/services' tap 'homebrew/versions' -tap 'ksonnet/tap' # Brews brew 'ansible' brew 'autojump' -brew 'awscli' brew 'dep' brew 'elixir' brew 'ffmpeg' @@ -26,7 +24,6 @@ brew 'hugo' brew 'ipcalc' brew 'iperf' brew 'jq' -brew 'ks' brew 'kubernetes-helm' brew 'mercurial' brew 'newsboat' @@ -51,7 +48,7 @@ brew 'youtube-dl' # Casks cask 'boxer' -cask 'docker' +cask 'docker-edge' cask 'elm-platform' cask 'firefox' cask 'google-backup-and-sync' @@ -60,9 +57,9 @@ cask 'google-cloud-sdk' cask 'iina' cask 'keybase' cask 'robo-3t' -cask 'sequel-pro' cask 'softu2f' cask 'steam' +cask 'tableplus' cask 'torbrowser' cask 'transmission' cask 'virtualbox' diff --git a/homebrew/aliases.zsh b/homebrew/aliases.zsh index b6f1f52..87bdcf6 100644 --- a/homebrew/aliases.zsh +++ b/homebrew/aliases.zsh @@ -1 +1 @@ -alias bup="brew update && brew upgrade && brew cleanup" +alias b="brew update && brew upgrade && brew cleanup" diff --git a/newsboat/newsboat.symlink/config b/newsboat/newsboat.symlink/config index d354af5..7fdf1f7 100644 --- a/newsboat/newsboat.symlink/config +++ b/newsboat/newsboat.symlink/config @@ -1,5 +1,5 @@ auto-reload yes -reload-time 480 +reload-time 600 reload-threads 5 browser "open %u" diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index a45d3d9..5648fbd 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -6,6 +6,7 @@ https://blog.google/products/g-suite/rss blog http://google-opensource.blogspot.com/atom.xml blog http://undeadly.org/cgi?action=rss blog openbsd https://cloud.google.com/feeds/container-engine-release-notes.xml +https://derflounder.wordpress.com/feed macos # Github releases https://github.com/kubernetes/kubernetes/releases.atom github diff --git a/system/aliases.zsh b/system/aliases.zsh index e2248db..174a0df 100644 --- a/system/aliases.zsh +++ b/system/aliases.zsh @@ -5,3 +5,4 @@ alias la='ls -lah' alias pbcopy='reattach-to-user-namespace pbcopy' alias pbpaste='reattach-to-user-namespace pbpaste' alias pubkey="cat ~/.ssh/id_ed25519.pub | pbcopy | echo '=> Public key copied to pasteboard.'" +alias myip='dig myip.opendns.com @resolver1.opendns.com +short' diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 3c43cbd..88031c5 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -87,7 +87,7 @@ set -g status-left "#[fg=yellow]#I #[fg=cyan]#P #[fg=white]» " set -g status-right-bg black set -g status-right-fg cyan set -g status-right-length 200 -set -g status-right "[k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|grep True|awk '{print $1}')] [%H:%M]" +set -g status-right "[k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')] [%H:%M]" # clock mode set -g clock-mode-colour red diff --git a/vim/install.sh b/vim/install.sh index 96798aa..4d6b316 100755 --- a/vim/install.sh +++ b/vim/install.sh @@ -8,4 +8,3 @@ then curl -fLo ~/.vim/autoload/plug.vim --create-dirs https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim vim +PlugInstall +qall fi - diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index cc45755..571d04d 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -21,6 +21,7 @@ Plug 'tpope/vim-repeat' Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' Plug 'editorconfig/editorconfig-vim' Plug 'google/vim-searchindex' +Plug 'jremmen/vim-ripgrep' " Linting & fixing Plug 'w0rp/ale' From 49c4b4f7e03db96a70ad1edc5764443fa9f32dda Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 20 Feb 2018 08:26:04 +0200 Subject: [PATCH 185/230] my custom completion to change contexts --- kubernetes/completion.zsh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kubernetes/completion.zsh b/kubernetes/completion.zsh index 1929dba..78f39b7 100644 --- a/kubernetes/completion.zsh +++ b/kubernetes/completion.zsh @@ -2,3 +2,9 @@ if which kubectl > /dev/null 2>&1 then source <(kubectl completion zsh) fi + +function __k { + _arguments "1: :($(kubectl config get-contexts --output='name'))" +} + +compdef __k k From 4e59a9167ad3c9f393801a2ebfca22c12007ae88 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 14 Mar 2018 11:09:38 +0200 Subject: [PATCH 186/230] google-chat --- Brewfile | 1 + google/completion.zsh | 7 +++++++ google/google.zsh | 1 - tmux/tmux.conf.symlink | 1 - 4 files changed, 8 insertions(+), 2 deletions(-) create mode 100644 google/completion.zsh delete mode 100644 google/google.zsh diff --git a/Brewfile b/Brewfile index 8bc51c9..3ee2970 100644 --- a/Brewfile +++ b/Brewfile @@ -53,6 +53,7 @@ cask 'elm-platform' cask 'firefox' cask 'google-backup-and-sync' cask 'google-chrome' +cask 'google-chat' cask 'google-cloud-sdk' cask 'iina' cask 'keybase' diff --git a/google/completion.zsh b/google/completion.zsh new file mode 100644 index 0000000..a074569 --- /dev/null +++ b/google/completion.zsh @@ -0,0 +1,7 @@ +source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc" + +function __g { + _arguments "1: :($(gcloud config configurations list --format='value(name)'))" +} + +compdef __g g diff --git a/google/google.zsh b/google/google.zsh deleted file mode 100644 index 00fe8d1..0000000 --- a/google/google.zsh +++ /dev/null @@ -1 +0,0 @@ -source "/usr/local/Caskroom/google-cloud-sdk/latest/google-cloud-sdk/completion.zsh.inc" diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 88031c5..954a8cd 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -55,7 +55,6 @@ bind -r U resize-pane -U 35 # launch man page in split screen bind / command-prompt "split-window 'exec man %%'" - ## colors and status bar set -g status-bg black set -g status-fg cyan From bbf6dbdae7832fb9dbadc1a3b205786e499aa5c1 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 17 Apr 2018 16:00:49 +0300 Subject: [PATCH 187/230] skaffold --- Brewfile | 1 + newsboat/newsboat.symlink/urls | 1 + 2 files changed, 2 insertions(+) diff --git a/Brewfile b/Brewfile index 3ee2970..9d1e838 100644 --- a/Brewfile +++ b/Brewfile @@ -34,6 +34,7 @@ brew 'packer' brew 'qpdf' brew 'reattach-to-user-namespace' brew 'rust' +brew 'skaffold' brew 'teleconsole' brew 'terraform' brew 'tig' diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index 5648fbd..a4b3cd1 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -26,3 +26,4 @@ https://github.com/spinnaker/spinnaker/releases.atom github https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom github https://github.com/terraform-providers/terraform-provider-google/releases.atom github https://github.com/kolide/fleet/releases.atom github +https://github.com/GoogleCloudPlatform/skaffold/releases.atom github From 72c829dc0465b4df549941f29bddb2146ed5283c Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 17 Apr 2018 16:13:48 +0300 Subject: [PATCH 188/230] remove versions tap; move bundle after its installation --- Brewfile | 1 - Makefile | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/Brewfile b/Brewfile index 9d1e838..f9235d9 100644 --- a/Brewfile +++ b/Brewfile @@ -3,7 +3,6 @@ tap 'caskroom/cask' tap 'homebrew/bundle' tap 'homebrew/core' tap 'homebrew/services' -tap 'homebrew/versions' # Brews brew 'ansible' diff --git a/Makefile b/Makefile index c247ed3..10049b4 100644 --- a/Makefile +++ b/Makefile @@ -9,7 +9,7 @@ dotfiles: $(foreach src,$(DOTFILES),$(shell ln -sfn $(src) $(HOME)/.$(shell basename $(subst .symlink,,$(src))))) install: - @echo "› brew bundle" - brew bundle @echo "find the installers and run them iteratively" find . -name install.sh | xargs -I '{}' sh -c "{}" + @echo "› brew bundle" + brew bundle From eb4a87dc49ee87f1f1d7a31a6c99a2dd3bd35894 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 26 Apr 2018 11:51:58 +0300 Subject: [PATCH 189/230] go back to solarized --- vim/vimrc.symlink | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 571d04d..246cc8e 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -6,7 +6,7 @@ call plug#begin('~/.vim/plugged') " Themes Plug 'altercation/vim-colors-solarized' -Plug 'dracula/vim' +Plug 'dracula/vim', {'as': 'dracula'} Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' @@ -53,7 +53,7 @@ call plug#end() filetype plugin indent on " Silent errors if colorscheme not exist -silent! colorscheme dracula +silent! colorscheme solarized set t_Co=256 " true colors " Global From e9d2afee4f81216a02154c824d7d34eb25cfe2fc Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 2 Sep 2018 12:46:36 +0300 Subject: [PATCH 190/230] mkcert, vim-puppet, whoseport, contained --- Brewfile | 4 +--- contained/aliases.zsh | 8 ++++++++ newsboat/newsboat.symlink/urls | 7 +++---- system/aliases.zsh | 4 ++++ vim/vimrc.symlink | 3 ++- 5 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 contained/aliases.zsh diff --git a/Brewfile b/Brewfile index f9235d9..fc139ef 100644 --- a/Brewfile +++ b/Brewfile @@ -1,5 +1,4 @@ # Taps -tap 'caskroom/cask' tap 'homebrew/bundle' tap 'homebrew/core' tap 'homebrew/services' @@ -7,7 +6,6 @@ tap 'homebrew/services' # Brews brew 'ansible' brew 'autojump' -brew 'dep' brew 'elixir' brew 'ffmpeg' brew 'fzf' @@ -25,6 +23,7 @@ brew 'iperf' brew 'jq' brew 'kubernetes-helm' brew 'mercurial' +brew 'mkcert' brew 'newsboat' brew 'nmap' brew 'node' @@ -65,4 +64,3 @@ cask 'torbrowser' cask 'transmission' cask 'virtualbox' cask 'whatsapp' -cask 'wireshark' diff --git a/contained/aliases.zsh b/contained/aliases.zsh new file mode 100644 index 0000000..fc52421 --- /dev/null +++ b/contained/aliases.zsh @@ -0,0 +1,8 @@ +# Docker containers instead of installed apps + +function contained() { + docker run -it --rm -v $(pwd):/workspace -w /workspace $@ +} + +alias mongo='contained mongo:3.6 mongo' +alias r10k='contained puppet/r10k' diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index a4b3cd1..2f8f82c 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -1,11 +1,9 @@ # Blogs https://blog.filippo.io/rss/ blog https://jvns.ca/atom.xml blog -http://googlecloudplatform.blogspot.com/atom.xml blog -https://blog.google/products/g-suite/rss blog +https://cloudblog.withgoogle.com/rss/ blog http://google-opensource.blogspot.com/atom.xml blog http://undeadly.org/cgi?action=rss blog openbsd -https://cloud.google.com/feeds/container-engine-release-notes.xml https://derflounder.wordpress.com/feed macos # Github releases @@ -21,9 +19,10 @@ https://github.com/hashicorp/vault/releases.atom github https://github.com/hashicorp/consul/releases.atom github https://github.com/hashicorp/terraform/releases.atom github https://github.com/bitly/oauth2_proxy/releases.atom github -https://github.com/metabase/metabase/releases.atom github https://github.com/spinnaker/spinnaker/releases.atom github https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom github https://github.com/terraform-providers/terraform-provider-google/releases.atom github https://github.com/kolide/fleet/releases.atom github https://github.com/GoogleCloudPlatform/skaffold/releases.atom github +https://github.com/linkerd/linkerd2/releases.atom github +https://cloud.google.com/feeds/cloud-build-release-notes.xml diff --git a/system/aliases.zsh b/system/aliases.zsh index 174a0df..ff1b515 100644 --- a/system/aliases.zsh +++ b/system/aliases.zsh @@ -6,3 +6,7 @@ alias pbcopy='reattach-to-user-namespace pbcopy' alias pbpaste='reattach-to-user-namespace pbpaste' alias pubkey="cat ~/.ssh/id_ed25519.pub | pbcopy | echo '=> Public key copied to pasteboard.'" alias myip='dig myip.opendns.com @resolver1.opendns.com +short' + +function whoseport() { + lsof -nPi:$1 -sTCP:LISTEN +} diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 246cc8e..b825519 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -35,7 +35,7 @@ Plug 'jiangmiao/auto-pairs' " Language specific plugins Plug 'hashivim/vim-terraform' Plug 'ekalinin/Dockerfile.vim' -Plug 'fatih/vim-go', {'do': ':GoInstallBinaries','for': 'go'} +Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries', 'for': ['go', 'gomod'] } Plug 'nsf/gocode', {'for': 'go', 'rtp': 'vim', 'do': '~/.vim/plugged/gocode/vim/symlink.sh'} Plug 'rust-lang/rust.vim', {'for': 'rust'} Plug 'kchmck/vim-coffee-script', {'for': 'coffee'} @@ -43,6 +43,7 @@ Plug 'elzr/vim-json', {'for': 'json'} Plug 'uarun/vim-protobuf', {'for': 'proto'} Plug 'elmcast/elm-vim', {'for': 'elm'} Plug 'elixir-lang/vim-elixir', {'for': 'elixir'} +Plug 'rodjek/vim-puppet', {'for': 'puppet'} " Games :) Plug 'johngrib/vim-game-code-break' From 4a485185668fabd209cd8bf6bd4dd2b408589441 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 10 Oct 2018 14:38:25 +0300 Subject: [PATCH 191/230] deprecate github.com/vic3lord/cronjobjob --- kubernetes/aliases.zsh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/kubernetes/aliases.zsh b/kubernetes/aliases.zsh index ae44802..5984d4e 100644 --- a/kubernetes/aliases.zsh +++ b/kubernetes/aliases.zsh @@ -1,2 +1,8 @@ alias k='kubectl config use-context' alias kca='kubectl get --all-namespaces' + +function cronjobjob() { + local job=$1 + local ns=${2:-default} + kubectl -n $ns create job --from=cronjob/$job +} From 71a94bdda2d5b17084d907bc700530cce06b26a1 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 30 Oct 2018 12:45:59 +0200 Subject: [PATCH 192/230] change to mongo 4 --- Brewfile | 1 + contained/aliases.zsh | 3 +-- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Brewfile b/Brewfile index fc139ef..0edebbf 100644 --- a/Brewfile +++ b/Brewfile @@ -22,6 +22,7 @@ brew 'ipcalc' brew 'iperf' brew 'jq' brew 'kubernetes-helm' +brew 'kustomize' brew 'mercurial' brew 'mkcert' brew 'newsboat' diff --git a/contained/aliases.zsh b/contained/aliases.zsh index fc52421..3b1144d 100644 --- a/contained/aliases.zsh +++ b/contained/aliases.zsh @@ -4,5 +4,4 @@ function contained() { docker run -it --rm -v $(pwd):/workspace -w /workspace $@ } -alias mongo='contained mongo:3.6 mongo' -alias r10k='contained puppet/r10k' +alias mongo='contained mongo:4 mongo' From be84aba4e9262fd617905149387034d2a3c3eb04 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Fri, 21 Dec 2018 12:38:30 +0200 Subject: [PATCH 193/230] save --- contained/aliases.zsh | 2 ++ git/gitconfig.symlink | 1 + google/aliases.zsh | 9 +++++++++ linkerd/path.zsh | 1 + newsboat/newsboat.symlink/urls | 1 + 5 files changed, 14 insertions(+) create mode 100644 linkerd/path.zsh diff --git a/contained/aliases.zsh b/contained/aliases.zsh index 3b1144d..cf6fa88 100644 --- a/contained/aliases.zsh +++ b/contained/aliases.zsh @@ -5,3 +5,5 @@ function contained() { } alias mongo='contained mongo:4 mongo' +alias mongoexport='contained mongo:4 mongoexport' +alias crystal='contained crystallang/crystal crystal' diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index 9e81953..ad80e71 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -1,6 +1,7 @@ [user] name = Or Elimelech email = 0r3limelech@gmail.com + signingkey = 504A2E8DB1B0BD5F [github] user = vic3lord [alias] diff --git a/google/aliases.zsh b/google/aliases.zsh index a786c69..dbe835e 100644 --- a/google/aliases.zsh +++ b/google/aliases.zsh @@ -1,2 +1,11 @@ alias g='gcloud config configurations activate' alias gssh='gcloud compute ssh --ssh-key-file ~/.ssh/id_ed25519' + +# purge cdn +function pcdn() { + local urlmap=$1 + local urlpath=$2 + local name=$(gcloud compute url-maps list --filter="name~$urlmap" --format='value(name)') + echo "invalidating path $urlpath for $name" + gcloud compute url-maps invalidate-cdn-cache $name --path "$urlpath" +} diff --git a/linkerd/path.zsh b/linkerd/path.zsh new file mode 100644 index 0000000..31ca55d --- /dev/null +++ b/linkerd/path.zsh @@ -0,0 +1 @@ +export PATH=$PATH:$HOME/.linkerd2/bin diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index 2f8f82c..2e89efa 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -26,3 +26,4 @@ https://github.com/kolide/fleet/releases.atom github https://github.com/GoogleCloudPlatform/skaffold/releases.atom github https://github.com/linkerd/linkerd2/releases.atom github https://cloud.google.com/feeds/cloud-build-release-notes.xml +https://github.com/cockroachdb/cockroach/releases.atom github From 22d5addf9ed32910846c4a3038c53a2c2f1b1fee Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 25 Dec 2018 11:34:05 +0200 Subject: [PATCH 194/230] docs --- contained/aliases.zsh | 1 + google/aliases.zsh | 1 + 2 files changed, 2 insertions(+) diff --git a/contained/aliases.zsh b/contained/aliases.zsh index cf6fa88..cb85e24 100644 --- a/contained/aliases.zsh +++ b/contained/aliases.zsh @@ -6,4 +6,5 @@ function contained() { alias mongo='contained mongo:4 mongo' alias mongoexport='contained mongo:4 mongoexport' +alias mongodump='contained mongo:4 mongodump' alias crystal='contained crystallang/crystal crystal' diff --git a/google/aliases.zsh b/google/aliases.zsh index dbe835e..6e10ac7 100644 --- a/google/aliases.zsh +++ b/google/aliases.zsh @@ -2,6 +2,7 @@ alias g='gcloud config configurations activate' alias gssh='gcloud compute ssh --ssh-key-file ~/.ssh/id_ed25519' # purge cdn +# pcdn service-name-here "/some-path/*" function pcdn() { local urlmap=$1 local urlpath=$2 From 62434d0858997b53773d15d31196a774d4531b4c Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 13 Jan 2019 14:16:24 +0200 Subject: [PATCH 195/230] vimrc cleanup, move back to nvim --- Brewfile | 10 ++-------- contained/aliases.zsh | 1 + vim/aliases.zsh | 3 ++- vim/vim.zsh | 2 +- vim/vimrc.symlink | 19 +++++++------------ zsh/_linkerd | 20 ++++++++++++++++++++ 6 files changed, 33 insertions(+), 22 deletions(-) create mode 100644 zsh/_linkerd diff --git a/Brewfile b/Brewfile index 0edebbf..0ff5b0e 100644 --- a/Brewfile +++ b/Brewfile @@ -15,7 +15,6 @@ brew 'go' brew 'graphviz' brew 'grpc' brew 'htop' -brew 'httpie' brew 'hub' brew 'hugo' brew 'ipcalc' @@ -25,6 +24,7 @@ brew 'kubernetes-helm' brew 'kustomize' brew 'mercurial' brew 'mkcert' +brew 'neovim' brew 'newsboat' brew 'nmap' brew 'node' @@ -40,16 +40,12 @@ brew 'tig' brew 'tmux' brew 'tree' brew 'vault' -brew 'vim', args: ['with-lua'] brew 'watch' -brew 'wget' -brew 'yarn' brew 'youtube-dl' # Casks cask 'boxer' -cask 'docker-edge' -cask 'elm-platform' +cask 'docker' cask 'firefox' cask 'google-backup-and-sync' cask 'google-chrome' @@ -57,9 +53,7 @@ cask 'google-chat' cask 'google-cloud-sdk' cask 'iina' cask 'keybase' -cask 'robo-3t' cask 'softu2f' -cask 'steam' cask 'tableplus' cask 'torbrowser' cask 'transmission' diff --git a/contained/aliases.zsh b/contained/aliases.zsh index cb85e24..56194a9 100644 --- a/contained/aliases.zsh +++ b/contained/aliases.zsh @@ -7,4 +7,5 @@ function contained() { alias mongo='contained mongo:4 mongo' alias mongoexport='contained mongo:4 mongoexport' alias mongodump='contained mongo:4 mongodump' +alias mongorestore='contained mongo:4 mongorestore' alias crystal='contained crystallang/crystal crystal' diff --git a/vim/aliases.zsh b/vim/aliases.zsh index 924a904..34fec78 100644 --- a/vim/aliases.zsh +++ b/vim/aliases.zsh @@ -1 +1,2 @@ -alias vi='vim' +alias vi='nvim' +alias vim='nvim' diff --git a/vim/vim.zsh b/vim/vim.zsh index c4620b4..d3fda04 100644 --- a/vim/vim.zsh +++ b/vim/vim.zsh @@ -1 +1 @@ -export EDITOR='vim' +export EDITOR='nvim' diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index b825519..0f81074 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -21,29 +21,20 @@ Plug 'tpope/vim-repeat' Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' Plug 'editorconfig/editorconfig-vim' Plug 'google/vim-searchindex' -Plug 'jremmen/vim-ripgrep' -" Linting & fixing +" Completion, lint, fix Plug 'w0rp/ale' - -" Completion -Plug 'Shougo/neocomplete.vim' Plug 'Shougo/neosnippet.vim' Plug 'Shougo/neosnippet-snippets' Plug 'jiangmiao/auto-pairs' " Language specific plugins Plug 'hashivim/vim-terraform' -Plug 'ekalinin/Dockerfile.vim' -Plug 'fatih/vim-go', { 'do': ':GoInstallBinaries', 'for': ['go', 'gomod'] } -Plug 'nsf/gocode', {'for': 'go', 'rtp': 'vim', 'do': '~/.vim/plugged/gocode/vim/symlink.sh'} Plug 'rust-lang/rust.vim', {'for': 'rust'} Plug 'kchmck/vim-coffee-script', {'for': 'coffee'} Plug 'elzr/vim-json', {'for': 'json'} Plug 'uarun/vim-protobuf', {'for': 'proto'} -Plug 'elmcast/elm-vim', {'for': 'elm'} Plug 'elixir-lang/vim-elixir', {'for': 'elixir'} -Plug 'rodjek/vim-puppet', {'for': 'puppet'} " Games :) Plug 'johngrib/vim-game-code-break' @@ -91,8 +82,12 @@ map :cnext map :cprevious nnoremap a :cclose -" neocomplete -let g:neocomplete#enable_at_startup = 1 +" ale +let g:ale_linters = { 'go': ['golangserver'] } +let g:ale_fixers = { 'go': ['goimports'] } +let g:ale_completion_enabled = 1 +let g:ale_fix_on_save = 1 +" let g:ale_set_balloons = 1 " neosnippet imap (neosnippet_expand_or_jump) diff --git a/zsh/_linkerd b/zsh/_linkerd new file mode 100644 index 0000000..32535c0 --- /dev/null +++ b/zsh/_linkerd @@ -0,0 +1,20 @@ +#compdef linkerd + +_arguments \ + '1: :->level1' \ + '2: :_files' +case $state in + level1) + case $words[1] in + linkerd) + _arguments '1: :(check completion dashboard get help inject install profile routes stat tap top version)' + ;; + *) + _arguments '*: :_files' + ;; + esac + ;; + *) + _arguments '*: :_files' + ;; +esac From 8eb082e6e032e9eacc4a1bb485df2071216c2a29 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 13 Jan 2019 14:19:38 +0200 Subject: [PATCH 196/230] add ripgrep --- Brewfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Brewfile b/Brewfile index 0ff5b0e..b2271e6 100644 --- a/Brewfile +++ b/Brewfile @@ -32,6 +32,7 @@ brew 'osquery' brew 'packer' brew 'qpdf' brew 'reattach-to-user-namespace' +brew 'ripgrep' brew 'rust' brew 'skaffold' brew 'teleconsole' From 65bc54622502661a9cc8c393ac170c821e84abec Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 13 Jan 2019 14:54:04 +0200 Subject: [PATCH 197/230] lsp --- vim/vimrc.symlink | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 0f81074..2ad3bc8 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -88,26 +88,17 @@ let g:ale_fixers = { 'go': ['goimports'] } let g:ale_completion_enabled = 1 let g:ale_fix_on_save = 1 " let g:ale_set_balloons = 1 +nmap gd (ale_hover) +nmap g (ale_go_to_definition) +nmap ds (ale_go_to_definition_in_split) +nmap dv (ale_go_to_definition_in_vsplit) +nmap dt (ale_go_to_definition_in_tab) " neosnippet imap (neosnippet_expand_or_jump) smap (neosnippet_expand_or_jump) xmap (neosnippet_expand_target) -" vim-go -let g:go_fmt_command = "goimports" -let g:go_snippet_engine = "neosnippet" -augroup golang - au! - au FileType go nmap b (go-build) - au FileType go nmap r (go-run) - au FileType go nmap te (go-test) - au FileType go nmap ds (go-def-split) - au FileType go nmap dv (go-def-vertical) - au FileType go nmap dt (go-def-tab) - au FileType go nmap gd (go-doc) -augroup END - " rust.vim let g:rustfmt_autosave = 1 From 3a3045697edb02fa10ae9a307e578ef8b15f507e Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 14 Jan 2019 14:20:26 +0200 Subject: [PATCH 198/230] ale mappings, deoplete --- vim/vimrc.symlink | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 2ad3bc8..5682378 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -24,6 +24,7 @@ Plug 'google/vim-searchindex' " Completion, lint, fix Plug 'w0rp/ale' +Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } Plug 'Shougo/neosnippet.vim' Plug 'Shougo/neosnippet-snippets' Plug 'jiangmiao/auto-pairs' @@ -82,12 +83,20 @@ map :cnext map :cprevious nnoremap a :cclose +" deoplete +let g:deoplete#enable_at_startup = 1 + " ale -let g:ale_linters = { 'go': ['golangserver'] } -let g:ale_fixers = { 'go': ['goimports'] } let g:ale_completion_enabled = 1 let g:ale_fix_on_save = 1 +let g:ale_echo_msg_error_str = 'E' +let g:ale_echo_msg_warning_str = 'W' +let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' +let g:ale_linters = { 'go': ['golangserver'] } +let g:ale_fixers = { 'go': ['goimports'] } " let g:ale_set_balloons = 1 + +" ale mappings nmap gd (ale_hover) nmap g (ale_go_to_definition) nmap ds (ale_go_to_definition_in_split) @@ -118,7 +127,6 @@ nnoremap f :FZF " Language specifics autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent -autocmd FileType python setlocal shiftwidth=4 sts=4 expandtab smartindent autocmd FileType javascript setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab From 1d5895f01af51da99315ee2cac2bf894c3c44ab6 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 11 Jun 2019 13:58:09 +0300 Subject: [PATCH 199/230] tmux --- Brewfile | 4 +--- fzf/fzf.zsh | 6 ++++++ git/aliases.zsh | 20 ++++++++++++++++++++ go/go.zsh | 2 ++ newsboat/newsboat.symlink/urls | 15 +++++++++++++-- system/autojump.zsh | 2 +- tmux/tmux.conf.symlink | 24 ++++++++---------------- vim/vimrc.symlink | 17 ++++++++++++++--- zsh/_linkerd | 2 +- 9 files changed, 66 insertions(+), 26 deletions(-) create mode 100644 go/go.zsh diff --git a/Brewfile b/Brewfile index b2271e6..dcb3abf 100644 --- a/Brewfile +++ b/Brewfile @@ -4,8 +4,8 @@ tap 'homebrew/core' tap 'homebrew/services' # Brews -brew 'ansible' brew 'autojump' +brew 'ansible' brew 'elixir' brew 'ffmpeg' brew 'fzf' @@ -20,8 +20,6 @@ brew 'hugo' brew 'ipcalc' brew 'iperf' brew 'jq' -brew 'kubernetes-helm' -brew 'kustomize' brew 'mercurial' brew 'mkcert' brew 'neovim' diff --git a/fzf/fzf.zsh b/fzf/fzf.zsh index 27e2b03..60c952c 100644 --- a/fzf/fzf.zsh +++ b/fzf/fzf.zsh @@ -2,3 +2,9 @@ source "/usr/local/opt/fzf/shell/key-bindings.zsh" # Open as tmux pane export FZF_TMUX=1 + +# Solarized dark +export FZF_DEFAULT_OPTS=" + --color dark,hl:33,hl+:37,fg+:235,bg+:136,fg+:254 + --color info:254,prompt:37,spinner:108,pointer:235,marker:235 +" diff --git a/git/aliases.zsh b/git/aliases.zsh index 68530fa..ed2caa6 100644 --- a/git/aliases.zsh +++ b/git/aliases.zsh @@ -7,3 +7,23 @@ alias gl="git pull --rebase" function gi() { curl -L -s https://www.gitignore.io/api/$@ } + +function changelog() { + local d=$1 + local all=$2 + + if [[ $all == "all" ]] + then + for repo in $(ls -d */ | cut -f1 -d'/') + do + if [ -d $repo/.git ] + then + cd $repo + git log --author="Or Elimelech" --pretty=format:"%h - %an, %ar : %s" --after="$d" + cd ../ + fi + done + else + git log --author="Or Elimelech" --pretty=format:"%h - %an, %ar : %s" --after="$d" + fi +} diff --git a/go/go.zsh b/go/go.zsh new file mode 100644 index 0000000..4e740c9 --- /dev/null +++ b/go/go.zsh @@ -0,0 +1,2 @@ +export GOPROXY=https://proxy.golang.org + diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index 2e89efa..f55f3e7 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -1,3 +1,13 @@ +# News +http://rss.slashdot.org/Slashdot/slashdotMain news +http://krebsonsecurity.com/feed news security +http://feeds.feedburner.com/HighScalability news +https://www.reddit.com/r/technology/.rss news tech +https://www.reddit.com/r/worldnews/top/.rss news + +# comics +http://xkcd.com/atom.xml comics + # Blogs https://blog.filippo.io/rss/ blog https://jvns.ca/atom.xml blog @@ -5,6 +15,7 @@ https://cloudblog.withgoogle.com/rss/ blog http://google-opensource.blogspot.com/atom.xml blog http://undeadly.org/cgi?action=rss blog openbsd https://derflounder.wordpress.com/feed macos +https://www.hashicorp.com/feed.xml hashicorp opensource # Github releases https://github.com/kubernetes/kubernetes/releases.atom github @@ -13,17 +24,17 @@ https://github.com/kubernetes/kube-state-metrics/releases.atom github https://github.com/istio/istio/releases.atom github https://github.com/prometheus/prometheus/releases.atom github https://github.com/prometheus/alertmanager/releases.atom github +https://github.com/improbable-eng/thanos/releases.atom github https://github.com/grafana/grafana/releases.atom github https://github.com/hashicorp/nomad/releases.atom github https://github.com/hashicorp/vault/releases.atom github https://github.com/hashicorp/consul/releases.atom github https://github.com/hashicorp/terraform/releases.atom github -https://github.com/bitly/oauth2_proxy/releases.atom github https://github.com/spinnaker/spinnaker/releases.atom github https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom github https://github.com/terraform-providers/terraform-provider-google/releases.atom github https://github.com/kolide/fleet/releases.atom github https://github.com/GoogleCloudPlatform/skaffold/releases.atom github https://github.com/linkerd/linkerd2/releases.atom github -https://cloud.google.com/feeds/cloud-build-release-notes.xml https://github.com/cockroachdb/cockroach/releases.atom github +https://cloud.google.com/feeds/cloud-build-release-notes.xml diff --git a/system/autojump.zsh b/system/autojump.zsh index 5157708..f0c7760 100644 --- a/system/autojump.zsh +++ b/system/autojump.zsh @@ -1 +1 @@ -[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh +[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 954a8cd..fe0ef16 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -63,28 +63,22 @@ set -g status-fg cyan set -g window-status-format " #I:#W:#F " set -g window-status-current-format " #I:#W:#F " set -g window-status-separator "" -set -g window-status-current-bg cyan -set -g window-status-current-fg black -set -g window-status-activity-bg red -set -g window-status-activity-fg black +set -g window-status-current-style bg=cyan,fg=black +set -g window-status-activity-style bg=red,fg=black # panes -set -g pane-border-bg default -set -g pane-border-fg default -set -g pane-active-border-bg default -set -g pane-active-border-fg cyan +set -g pane-border-style bg=default,fg=default +set -g pane-active-border-style bg=default,fg=cyan set -g display-panes-colour red set -g display-panes-active-colour red # left -set -g status-left-bg black -set -g status-left-fg green +set -g status-left-style bg=black,fg=green set -g status-left-length 40 set -g status-left "#[fg=yellow]#I #[fg=cyan]#P #[fg=white]» " # right -set -g status-right-bg black -set -g status-right-fg cyan +set -g status-right-style bg=black,fg=cyan set -g status-right-length 200 set -g status-right "[k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')] [%H:%M]" @@ -93,9 +87,7 @@ set -g clock-mode-colour red set -g clock-mode-style 24 # message -set -g message-bg default -set -g message-fg default +set -g message-style bg=default,fg=default # command message -set -g message-command-bg default -set -g message-command-fg default +set -g message-command-style bg=default,fg=default diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 5682378..ae660e9 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -6,7 +6,6 @@ call plug#begin('~/.vim/plugged') " Themes Plug 'altercation/vim-colors-solarized' -Plug 'dracula/vim', {'as': 'dracula'} Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' @@ -21,6 +20,9 @@ Plug 'tpope/vim-repeat' Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' Plug 'editorconfig/editorconfig-vim' Plug 'google/vim-searchindex' +Plug 'junegunn/limelight.vim' +Plug 'junegunn/goyo.vim' +Plug 'godlygeek/tabular' " Completion, lint, fix Plug 'w0rp/ale' @@ -92,7 +94,7 @@ let g:ale_fix_on_save = 1 let g:ale_echo_msg_error_str = 'E' let g:ale_echo_msg_warning_str = 'W' let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' -let g:ale_linters = { 'go': ['golangserver'] } +let g:ale_linters = { 'go': ['gopls', 'golint', 'govet', 'staticcheck'] } let g:ale_fixers = { 'go': ['goimports'] } " let g:ale_set_balloons = 1 @@ -118,11 +120,20 @@ let g:airline#extensions#tabline#enabled = 1 let g:airline#extensions#tabline#left_sep = '' let g:airline_powerline_fonts = 1 +" limelight +let g:limelight_conceal_ctermfg = 'gray' +let g:limelight_conceal_ctermfg = 240 +autocmd! User GoyoEnter Limelight +autocmd! User GoyoLeave Limelight! + " terraform let g:terraform_fmt_on_save = 1 " FZF -nnoremap f :FZF +nnoremap f :Files +nnoremap b :Buffers +nnoremap l :Lines +nnoremap c :BCommits " Language specifics autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent diff --git a/zsh/_linkerd b/zsh/_linkerd index 32535c0..e77d1d3 100644 --- a/zsh/_linkerd +++ b/zsh/_linkerd @@ -7,7 +7,7 @@ case $state in level1) case $words[1] in linkerd) - _arguments '1: :(check completion dashboard get help inject install profile routes stat tap top version)' + _arguments '1: :(check completion dashboard endpoints get help inject install install-cni install-sp logs profile routes stat tap top uninject version)' ;; *) _arguments '*: :_files' From 8e56da8c08c6c9e33ab156085f36689dd3711b8e Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 24 Sep 2019 17:16:24 +0300 Subject: [PATCH 200/230] Remove Ale move the LanguageClient --- vim/vimrc.symlink | 30 +++++++++++------------------- 1 file changed, 11 insertions(+), 19 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index ae660e9..79483f9 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -25,7 +25,7 @@ Plug 'junegunn/goyo.vim' Plug 'godlygeek/tabular' " Completion, lint, fix -Plug 'w0rp/ale' +Plug 'autozimu/LanguageClient-neovim', {'branch': 'next', 'do': 'bash install.sh'} Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } Plug 'Shougo/neosnippet.vim' Plug 'Shougo/neosnippet-snippets' @@ -73,10 +73,10 @@ set autowrite set backspace=2 " Search settings -set incsearch " show search matches as you type +set incsearch " show search matches as you type set showmatch set hlsearch -set smartcase " ignore case if search pattern is all lowercase, case-sensitive otherwise +set smartcase " ignore case if search pattern is all lowercase, case-sensitive otherwise set ignorecase nnoremap :let @/="" @@ -88,22 +88,12 @@ nnoremap a :cclose " deoplete let g:deoplete#enable_at_startup = 1 -" ale -let g:ale_completion_enabled = 1 -let g:ale_fix_on_save = 1 -let g:ale_echo_msg_error_str = 'E' -let g:ale_echo_msg_warning_str = 'W' -let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' -let g:ale_linters = { 'go': ['gopls', 'golint', 'govet', 'staticcheck'] } -let g:ale_fixers = { 'go': ['goimports'] } -" let g:ale_set_balloons = 1 - -" ale mappings -nmap gd (ale_hover) -nmap g (ale_go_to_definition) -nmap ds (ale_go_to_definition_in_split) -nmap dv (ale_go_to_definition_in_vsplit) -nmap dt (ale_go_to_definition_in_tab) +" LanguageClient +let g:LanguageClient_serverCommands = {'go': ['gopls']} + +nnoremap K :call LanguageClient#textDocument_hover() +nnoremap gd :call LanguageClient#textDocument_definition() +nnoremap :call LanguageClient#textDocument_rename() " neosnippet imap (neosnippet_expand_or_jump) @@ -134,6 +124,7 @@ nnoremap f :Files nnoremap b :Buffers nnoremap l :Lines nnoremap c :BCommits +nnoremap g :Rg " Language specifics autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent @@ -141,3 +132,4 @@ autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType javascript setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab +autocmd BufWritePre *.go :call LanguageClient#textDocument_formatting_sync() From 939e58b8bef626997f7544a4d6e487eba2cb2211 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 24 Sep 2019 18:10:29 +0300 Subject: [PATCH 201/230] Support krew --- Brewfile | 6 ++++-- kubernetes/path.zsh | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 kubernetes/path.zsh diff --git a/Brewfile b/Brewfile index dcb3abf..efedbaa 100644 --- a/Brewfile +++ b/Brewfile @@ -5,6 +5,7 @@ tap 'homebrew/services' # Brews brew 'autojump' +brew 'kubectl' brew 'ansible' brew 'elixir' brew 'ffmpeg' @@ -14,6 +15,7 @@ brew 'gnupg2' brew 'go' brew 'graphviz' brew 'grpc' +brew 'protoc-gen-go' brew 'htop' brew 'hub' brew 'hugo' @@ -43,15 +45,15 @@ brew 'watch' brew 'youtube-dl' # Casks -cask 'boxer' cask 'docker' cask 'firefox' cask 'google-backup-and-sync' -cask 'google-chrome' cask 'google-chat' +cask 'google-chrome' cask 'google-cloud-sdk' cask 'iina' cask 'keybase' +cask 'netnewswire' cask 'softu2f' cask 'tableplus' cask 'torbrowser' diff --git a/kubernetes/path.zsh b/kubernetes/path.zsh new file mode 100644 index 0000000..56e2560 --- /dev/null +++ b/kubernetes/path.zsh @@ -0,0 +1 @@ +export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH" From de514441b6af09731e59d2e8fb079ce8a952f953 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 24 Sep 2019 18:10:46 +0300 Subject: [PATCH 202/230] go proxy --- go/go.zsh | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/go/go.zsh b/go/go.zsh index 4e740c9..1921716 100644 --- a/go/go.zsh +++ b/go/go.zsh @@ -1,2 +1 @@ -export GOPROXY=https://proxy.golang.org - +export GOPROXY=https://proxy.golang.org,direct From 6248d650d7c6685e4e747f7c215ce4d445653b33 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 24 Sep 2019 18:11:07 +0300 Subject: [PATCH 203/230] support lfs --- git/gitconfig.symlink | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index ad80e71..b019161 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -12,6 +12,7 @@ br = branch st = status -s edit = "!vim `git ls-files -m` -p" + flux = log --author="flux" --oneline [push] default = simple [color] @@ -21,8 +22,9 @@ local = yellow remote = green [filter "lfs"] - clean = git-lfs clean %f - smudge = git-lfs smudge %f + clean = git-lfs clean -- %f + smudge = git-lfs smudge -- %f required = true + process = git-lfs filter-process [merge] tool = vimdiff From 4bbe9a78f9df00ed23ba59fde5ee203bacdd52d3 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 24 Sep 2019 18:11:19 +0300 Subject: [PATCH 204/230] Tunnel through IAP --- google/aliases.zsh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/google/aliases.zsh b/google/aliases.zsh index 6e10ac7..fa05b73 100644 --- a/google/aliases.zsh +++ b/google/aliases.zsh @@ -1,5 +1,5 @@ alias g='gcloud config configurations activate' -alias gssh='gcloud compute ssh --ssh-key-file ~/.ssh/id_ed25519' +alias gssh='gcloud beta compute ssh --ssh-key-file ~/.ssh/id_ed25519 --tunnel-through-iap' # purge cdn # pcdn service-name-here "/some-path/*" From a990c3c202e4e89d312a69d1b64c6f05bcceacbf Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sat, 26 Oct 2019 22:45:40 +0200 Subject: [PATCH 205/230] new package name --- Brewfile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Brewfile b/Brewfile index efedbaa..7af5bb2 100644 --- a/Brewfile +++ b/Brewfile @@ -56,7 +56,7 @@ cask 'keybase' cask 'netnewswire' cask 'softu2f' cask 'tableplus' -cask 'torbrowser' +cask 'tor-browser' cask 'transmission' cask 'virtualbox' cask 'whatsapp' From a2e051d95c62cca9ba8c71e7129a8743d98aa9a9 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 28 Nov 2019 14:03:52 +0200 Subject: [PATCH 206/230] remove modules --- .gitmodules | 3 --- Brewfile | 4 +--- contained/aliases.zsh | 1 + themes/dracula | 1 - 4 files changed, 2 insertions(+), 7 deletions(-) delete mode 100644 .gitmodules delete mode 160000 themes/dracula diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index 5d0fe04..0000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "themes/dracula"] - path = themes/dracula - url = https://github.com/dracula/terminal.app.git diff --git a/Brewfile b/Brewfile index 7af5bb2..65ded61 100644 --- a/Brewfile +++ b/Brewfile @@ -4,6 +4,7 @@ tap 'homebrew/core' tap 'homebrew/services' # Brews +brew 'hey' brew 'autojump' brew 'kubectl' brew 'ansible' @@ -35,7 +36,6 @@ brew 'reattach-to-user-namespace' brew 'ripgrep' brew 'rust' brew 'skaffold' -brew 'teleconsole' brew 'terraform' brew 'tig' brew 'tmux' @@ -52,9 +52,7 @@ cask 'google-chat' cask 'google-chrome' cask 'google-cloud-sdk' cask 'iina' -cask 'keybase' cask 'netnewswire' -cask 'softu2f' cask 'tableplus' cask 'tor-browser' cask 'transmission' diff --git a/contained/aliases.zsh b/contained/aliases.zsh index 56194a9..4b3c74f 100644 --- a/contained/aliases.zsh +++ b/contained/aliases.zsh @@ -9,3 +9,4 @@ alias mongoexport='contained mongo:4 mongoexport' alias mongodump='contained mongo:4 mongodump' alias mongorestore='contained mongo:4 mongorestore' alias crystal='contained crystallang/crystal crystal' +alias promtool='contained --entrypoint promtool prom/prometheus' diff --git a/themes/dracula b/themes/dracula deleted file mode 160000 index 258d9a3..0000000 --- a/themes/dracula +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 258d9a3698773d0ef282428e5e5b6a25af65b1a1 From 6f299c0cc400377f6ce0ad001a7652a9310d5755 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 28 Nov 2019 14:04:40 +0200 Subject: [PATCH 207/230] not needed --- keybase/keybase.zsh | 3 --- 1 file changed, 3 deletions(-) delete mode 100644 keybase/keybase.zsh diff --git a/keybase/keybase.zsh b/keybase/keybase.zsh deleted file mode 100644 index 7dd6583..0000000 --- a/keybase/keybase.zsh +++ /dev/null @@ -1,3 +0,0 @@ -function invoice() { - keybase pgp sign --detached --infile $1 --outfile $1.asc -} From af4f68db8bb16610669c5ecded32e230035701d3 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 5 Dec 2019 11:42:09 +0200 Subject: [PATCH 208/230] disable preview window on completion and add clipboard support --- vim/vimrc.symlink | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 79483f9..5515be9 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -66,11 +66,11 @@ set modelines=5 set laststatus=2 set undofile set undodir=$HOME/.vim/undo -" set mouse=nv set cursorline set cursorcolumn set autowrite set backspace=2 +set completeopt-=preview " disable preview on completion " Search settings set incsearch " show search matches as you type @@ -78,6 +78,7 @@ set showmatch set hlsearch set smartcase " ignore case if search pattern is all lowercase, case-sensitive otherwise set ignorecase +set clipboard+=unnamedplus " add clipboard support nnoremap :let @/="" " custom mappings From 221c38e14f122de7536cbebb3758322f27706dd5 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 16 Jan 2020 16:20:11 +0200 Subject: [PATCH 209/230] added blamer --- vim/vimrc.symlink | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 5515be9..a9c4efc 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -12,6 +12,7 @@ Plug 'vim-airline/vim-airline-themes' " Common stuff Plug 'jamessan/vim-gnupg' Plug 'tpope/vim-fugitive' +Plug 'APZelos/blamer.nvim' Plug 'vitapluvia/vim-gurl' Plug 'unblevable/quick-scope' Plug 'tpope/vim-surround' @@ -101,6 +102,9 @@ imap (neosnippet_expand_or_jump) smap (neosnippet_expand_or_jump) xmap (neosnippet_expand_target) +" blamer.nvim +let g:blamer_enabled = 1 + " rust.vim let g:rustfmt_autosave = 1 From 9ea9be3041a61bfdee27dd67b15acd1756f4ebd1 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 16 Jan 2020 16:31:29 +0200 Subject: [PATCH 210/230] delay more --- vim/vimrc.symlink | 1 + 1 file changed, 1 insertion(+) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index a9c4efc..2a72215 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -104,6 +104,7 @@ xmap (neosnippet_expand_target) " blamer.nvim let g:blamer_enabled = 1 +let g:blamer_delay = 2000 " rust.vim let g:rustfmt_autosave = 1 From cf7eda723623003bf4c16a4e48d23b0f4092d14f Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 11 Feb 2020 10:13:28 +0200 Subject: [PATCH 211/230] private modules --- git/gitconfig.symlink | 2 ++ go/go.zsh | 1 + 2 files changed, 3 insertions(+) diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index b019161..c57ff1c 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -28,3 +28,5 @@ process = git-lfs filter-process [merge] tool = vimdiff +[url "git@github.com:stackpulse"] + insteadOf = https://github.com/stackpulse diff --git a/go/go.zsh b/go/go.zsh index 1921716..2277aae 100644 --- a/go/go.zsh +++ b/go/go.zsh @@ -1 +1,2 @@ export GOPROXY=https://proxy.golang.org,direct +export GOPRIVATE=github.com/stackpulse From 84afae3341594079804d9813f93015bf8ee7ddeb Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 19 Feb 2020 10:00:13 +0200 Subject: [PATCH 212/230] tf completion --- git/gitconfig.symlink | 2 +- terraform/completion.zsh | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) create mode 100644 terraform/completion.zsh diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index c57ff1c..8af953d 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -1,7 +1,7 @@ [user] name = Or Elimelech email = 0r3limelech@gmail.com - signingkey = 504A2E8DB1B0BD5F + signingkey = F097B3449561603A [github] user = vic3lord [alias] diff --git a/terraform/completion.zsh b/terraform/completion.zsh new file mode 100644 index 0000000..0679d6a --- /dev/null +++ b/terraform/completion.zsh @@ -0,0 +1 @@ +complete -o nospace -C /usr/local/bin/terraform terraform From 57297af6b3914a22bcc95e8e29eb04ee44ef6fc8 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Wed, 19 Feb 2020 10:06:01 +0200 Subject: [PATCH 213/230] using modules, hiding GOPATH --- go/go.zsh | 1 + go/path.zsh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/go/go.zsh b/go/go.zsh index 2277aae..3469476 100644 --- a/go/go.zsh +++ b/go/go.zsh @@ -1,2 +1,3 @@ +export GOPATH=$HOME/.go export GOPROXY=https://proxy.golang.org,direct export GOPRIVATE=github.com/stackpulse diff --git a/go/path.zsh b/go/path.zsh index fa8540a..ab5e103 100644 --- a/go/path.zsh +++ b/go/path.zsh @@ -1 +1 @@ -export PATH="$HOME/go/bin:$PATH" +export PATH="$HOME/.go/bin:$PATH" From 553bac73399a120ac5b4b3348deb15a3bce418fe Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 19 Apr 2020 11:59:04 +0300 Subject: [PATCH 214/230] remove htop, lfs --- Brewfile | 1 - git/gitconfig.symlink | 5 ----- go/go.zsh | 2 +- vim/vimrc.symlink | 2 +- 4 files changed, 2 insertions(+), 8 deletions(-) diff --git a/Brewfile b/Brewfile index 65ded61..29f901a 100644 --- a/Brewfile +++ b/Brewfile @@ -17,7 +17,6 @@ brew 'go' brew 'graphviz' brew 'grpc' brew 'protoc-gen-go' -brew 'htop' brew 'hub' brew 'hugo' brew 'ipcalc' diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index 8af953d..93636b1 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -21,11 +21,6 @@ current = yellow reverse local = yellow remote = green -[filter "lfs"] - clean = git-lfs clean -- %f - smudge = git-lfs smudge -- %f - required = true - process = git-lfs filter-process [merge] tool = vimdiff [url "git@github.com:stackpulse"] diff --git a/go/go.zsh b/go/go.zsh index 3469476..8c1fcc6 100644 --- a/go/go.zsh +++ b/go/go.zsh @@ -1,3 +1,3 @@ export GOPATH=$HOME/.go export GOPROXY=https://proxy.golang.org,direct -export GOPRIVATE=github.com/stackpulse +export GOPRIVATE=github.com/stackpulse,stackpulse.dev diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 2a72215..4c4636a 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -103,7 +103,7 @@ smap (neosnippet_expand_or_jump) xmap (neosnippet_expand_target) " blamer.nvim -let g:blamer_enabled = 1 +let g:blamer_enabled = 0 let g:blamer_delay = 2000 " rust.vim From 1416c671ae0887917950a56795d3851e013fc09f Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 19 Apr 2020 12:05:49 +0300 Subject: [PATCH 215/230] minikube --- Brewfile | 9 ++-- newsboat/newsboat.symlink/urls | 90 +++++++++++++++++++--------------- 2 files changed, 56 insertions(+), 43 deletions(-) diff --git a/Brewfile b/Brewfile index 29f901a..57b019d 100644 --- a/Brewfile +++ b/Brewfile @@ -4,10 +4,8 @@ tap 'homebrew/core' tap 'homebrew/services' # Brews -brew 'hey' -brew 'autojump' -brew 'kubectl' brew 'ansible' +brew 'autojump' brew 'elixir' brew 'ffmpeg' brew 'fzf' @@ -16,13 +14,15 @@ brew 'gnupg2' brew 'go' brew 'graphviz' brew 'grpc' -brew 'protoc-gen-go' +brew 'hey' brew 'hub' brew 'hugo' brew 'ipcalc' brew 'iperf' brew 'jq' +brew 'kubectl' brew 'mercurial' +brew 'minikube' brew 'mkcert' brew 'neovim' brew 'newsboat' @@ -30,6 +30,7 @@ brew 'nmap' brew 'node' brew 'osquery' brew 'packer' +brew 'protoc-gen-go' brew 'qpdf' brew 'reattach-to-user-namespace' brew 'ripgrep' diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index f55f3e7..92a7cf5 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -1,40 +1,52 @@ -# News -http://rss.slashdot.org/Slashdot/slashdotMain news -http://krebsonsecurity.com/feed news security -http://feeds.feedburner.com/HighScalability news -https://www.reddit.com/r/technology/.rss news tech -https://www.reddit.com/r/worldnews/top/.rss news - -# comics -http://xkcd.com/atom.xml comics - -# Blogs -https://blog.filippo.io/rss/ blog -https://jvns.ca/atom.xml blog -https://cloudblog.withgoogle.com/rss/ blog -http://google-opensource.blogspot.com/atom.xml blog -http://undeadly.org/cgi?action=rss blog openbsd -https://derflounder.wordpress.com/feed macos -https://www.hashicorp.com/feed.xml hashicorp opensource - -# Github releases -https://github.com/kubernetes/kubernetes/releases.atom github -https://github.com/kubernetes/ingress/releases.atom github -https://github.com/kubernetes/kube-state-metrics/releases.atom github -https://github.com/istio/istio/releases.atom github -https://github.com/prometheus/prometheus/releases.atom github -https://github.com/prometheus/alertmanager/releases.atom github -https://github.com/improbable-eng/thanos/releases.atom github -https://github.com/grafana/grafana/releases.atom github -https://github.com/hashicorp/nomad/releases.atom github -https://github.com/hashicorp/vault/releases.atom github -https://github.com/hashicorp/consul/releases.atom github -https://github.com/hashicorp/terraform/releases.atom github -https://github.com/spinnaker/spinnaker/releases.atom github -https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom github -https://github.com/terraform-providers/terraform-provider-google/releases.atom github -https://github.com/kolide/fleet/releases.atom github -https://github.com/GoogleCloudPlatform/skaffold/releases.atom github -https://github.com/linkerd/linkerd2/releases.atom github -https://github.com/cockroachdb/cockroach/releases.atom github +http://undeadly.org/cgi?action=rss +http://google-opensource.blogspot.com/atom.xml +https://engineering.fb.com/feed/ +https://beckyhansmeyer.com/feed/ +https://jvns.ca/atom.xml +https://www.omnigroup.com/blog/rss/ +https://ericasadun.com/feed/ +https://mjtsai.com/blog/feed/ +https://onefoottsunami.com/feed/json/ +http://ep00.epimg.net/rss/tags/noticias_mas_vistas.xml +http://xkcd.com/atom.xml +https://www.hashicorp.com/feed.xml +https://derflounder.wordpress.com/feed +http://rachelbythebay.com/w/atom.xml +https://daringfireball.net/feeds/json +https://sixcolors.com/feed.json +http://www.loopinsight.com/feed/ +https://inessential.com/feed.json +http://krebsonsecurity.com/feed +https://www.reddit.com/r/technology/.rss +https://blog.filippo.io/rss/ +http://feeds.kottke.org/json +https://cloudblog.withgoogle.com/rss/ +https://www.reddit.com/r/worldnews/top/.rss https://cloud.google.com/feeds/cloud-build-release-notes.xml +https://eng.uber.com/feed/atom/ +https://cate.blog/feed/ +http://rss.slashdot.org/Slashdot/slashdotMain +https://www.manton.org/feed/json +https://shapeof.com/feed.json +https://github.com/cockroachdb/cockroach/releases.atom "Github releases" +https://github.com/kubernetes/kube-state-metrics/releases.atom "Github releases" +https://github.com/markphelps/flipt/releases.atom "Github releases" +https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom "Github releases" +https://github.com/neovim/neovim/releases.atom "Github releases" +https://github.com/hashicorp/nomad/releases.atom "Github releases" +https://github.com/grafana/grafana/releases.atom "Github releases" +https://github.com/fluxcd/flux/releases.atom "Github releases" +https://github.com/prometheus/prometheus/releases.atom "Github releases" +https://github.com/kolide/fleet/releases.atom "Github releases" +https://github.com/hashicorp/terraform/releases.atom "Github releases" +https://github.com/hashicorp/vault/releases.atom "Github releases" +https://github.com/prometheus/alertmanager/releases.atom "Github releases" +https://github.com/kubernetes/ingress-nginx/releases.atom "Github releases" +https://github.com/weaveworks/flagger/releases.atom "Github releases" +https://github.com/linkerd/linkerd2/releases.atom "Github releases" +https://github.com/GoogleCloudPlatform/skaffold/releases.atom "Github releases" +https://github.com/improbable-eng/thanos/releases.atom "Github releases" +https://github.com/imgproxy/imgproxy/releases.atom "Github releases" +https://github.com/checkr/flagr/releases.atom "Github releases" +https://github.com/terraform-providers/terraform-provider-google/releases.atom "Github releases" +https://github.com/kubernetes/kubernetes/releases.atom "Github releases" From b6de27baa31c72bbb759ae3dd90354067716970a Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 6 Aug 2020 11:50:21 +0300 Subject: [PATCH 216/230] update --- tmux/tmux.conf.symlink | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index fe0ef16..c77bfa8 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -80,7 +80,7 @@ set -g status-left "#[fg=yellow]#I #[fg=cyan]#P #[fg=white]» " # right set -g status-right-style bg=black,fg=cyan set -g status-right-length 200 -set -g status-right "[k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')] [%H:%M]" +set -g status-right "[k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')] [%d/%m %H:%M]" # clock mode set -g clock-mode-colour red From 8bb2c85e42e2d5ebdcbb9da74bf9d1b1635caf2a Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 10 Sep 2020 12:06:44 +0300 Subject: [PATCH 217/230] alacritty --- Brewfile | 6 +- alacritty/alacritty.yml.symlink | 47 +++++ git/gitconfig.symlink | 9 + tmux/tmux.conf.symlink | 2 +- vim/vimrc.symlink | 46 +++-- zsh/_stackpulse | 314 ++++++++++++++++++++++++++++++++ 6 files changed, 403 insertions(+), 21 deletions(-) create mode 100644 alacritty/alacritty.yml.symlink create mode 100644 zsh/_stackpulse diff --git a/Brewfile b/Brewfile index 57b019d..68b8262 100644 --- a/Brewfile +++ b/Brewfile @@ -29,13 +29,11 @@ brew 'newsboat' brew 'nmap' brew 'node' brew 'osquery' -brew 'packer' brew 'protoc-gen-go' brew 'qpdf' brew 'reattach-to-user-namespace' brew 'ripgrep' brew 'rust' -brew 'skaffold' brew 'terraform' brew 'tig' brew 'tmux' @@ -43,12 +41,12 @@ brew 'tree' brew 'vault' brew 'watch' brew 'youtube-dl' +brew 'nnn' # Casks +cask 'alacritty' cask 'docker' cask 'firefox' -cask 'google-backup-and-sync' -cask 'google-chat' cask 'google-chrome' cask 'google-cloud-sdk' cask 'iina' diff --git a/alacritty/alacritty.yml.symlink b/alacritty/alacritty.yml.symlink new file mode 100644 index 0000000..a5b2fd0 --- /dev/null +++ b/alacritty/alacritty.yml.symlink @@ -0,0 +1,47 @@ +window: + dynamic_padding: true + startup_mode: Fullscreen + + dimensions: + columns: 120 + lines: 37 + +font: + size: 16.0 + normal: + family: SF Mono + style: Regular + + bold: + family: SF Mono + style: Bold + + italic: + family: SF Mono + style: Italic + +# Gruvbox dark +colors: + primary: + background: '#282828' + foreground: '#ebdbb2' + + normal: + black: '#282828' + red: '#cc241d' + green: '#98971a' + yellow: '#d79921' + blue: '#458588' + magenta: '#b16286' + cyan: '#689d6a' + white: '#a89984' + + bright: + black: '#928374' + red: '#fb4934' + green: '#b8bb26' + yellow: '#fabd2f' + blue: '#83a598' + magenta: '#d3869b' + cyan: '#8ec07c' + white: '#ebdbb2' diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index 93636b1..8e12b70 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -13,6 +13,7 @@ st = status -s edit = "!vim `git ls-files -m` -p" flux = log --author="flux" --oneline + ticket = "!open https://stackpulse.atlassian.net/browse/$(git branch --show-current)" [push] default = simple [color] @@ -23,5 +24,13 @@ remote = green [merge] tool = vimdiff +[diff] + tool = vimdiff +[difftool] + prompt = false +[mergetool] + path = nvim [url "git@github.com:stackpulse"] insteadOf = https://github.com/stackpulse +[mergetool "vimdiff"] + path = nvim diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index c77bfa8..d9af4e8 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -1,6 +1,6 @@ ## global config set -g default-shell $SHELL # zsh -set -g default-terminal screen-256color # true colors +set -g default-terminal "alacritty" # Alacritty set -g prefix C-a # change prefix to CTRL-a set -g mouse on # enable mouse set -s escape-time 10 # speed up diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 4c4636a..bea9d89 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -5,7 +5,7 @@ filetype off call plug#begin('~/.vim/plugged') " Themes -Plug 'altercation/vim-colors-solarized' +Plug 'chriskempson/base16-vim' Plug 'vim-airline/vim-airline' Plug 'vim-airline/vim-airline-themes' @@ -24,6 +24,7 @@ Plug 'google/vim-searchindex' Plug 'junegunn/limelight.vim' Plug 'junegunn/goyo.vim' Plug 'godlygeek/tabular' +Plug 'mcchrish/nnn.vim' " Completion, lint, fix Plug 'autozimu/LanguageClient-neovim', {'branch': 'next', 'do': 'bash install.sh'} @@ -31,26 +32,22 @@ Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } Plug 'Shougo/neosnippet.vim' Plug 'Shougo/neosnippet-snippets' Plug 'jiangmiao/auto-pairs' +" Plug 'neovim/nvim-lsp' " Language specific plugins Plug 'hashivim/vim-terraform' Plug 'rust-lang/rust.vim', {'for': 'rust'} -Plug 'kchmck/vim-coffee-script', {'for': 'coffee'} -Plug 'elzr/vim-json', {'for': 'json'} -Plug 'uarun/vim-protobuf', {'for': 'proto'} Plug 'elixir-lang/vim-elixir', {'for': 'elixir'} -" Games :) -Plug 'johngrib/vim-game-code-break' - " Add plugins to runtime call plug#end() filetype plugin indent on " Silent errors if colorscheme not exist -silent! colorscheme solarized -set t_Co=256 " true colors +" silent! colorscheme base16-tomorrow-night +set termguicolors +silent! colorscheme base16-gruvbox-dark-hard " Global syntax on @@ -91,30 +88,41 @@ nnoremap a :cclose let g:deoplete#enable_at_startup = 1 " LanguageClient -let g:LanguageClient_serverCommands = {'go': ['gopls']} +let g:LanguageClient_serverCommands = {'go': ['gopls'], 'json': ['vscode-json-languageserver', '--stdio'], 'yaml': ['yaml-language-server', '--stdio']} nnoremap K :call LanguageClient#textDocument_hover() nnoremap gd :call LanguageClient#textDocument_definition() +nnoremap gr :call LanguageClient#textDocument_references() nnoremap :call LanguageClient#textDocument_rename() +" lua << EOF +" require'nvim_lsp'.gopls.setup{} +" EOF + +" nnoremap gd lua vim.lsp.buf.declaration() +" nnoremap lua vim.lsp.buf.definition() +" nnoremap K lua vim.lsp.buf.hover() +" nnoremap gD lua vim.lsp.buf.implementation() +" nnoremap lua vim.lsp.buf.signature_help() +" nnoremap 1gD lua vim.lsp.buf.type_definition() +" nnoremap gr lua vim.lsp.buf.references() +" nnoremap g0 lua vim.lsp.buf.document_symbol() +" nnoremap gW lua vim.lsp.buf.workspace_symbol() + " neosnippet imap (neosnippet_expand_or_jump) smap (neosnippet_expand_or_jump) xmap (neosnippet_expand_target) " blamer.nvim -let g:blamer_enabled = 0 +let g:blamer_enabled = 1 let g:blamer_delay = 2000 " rust.vim let g:rustfmt_autosave = 1 " airline -let g:airline_right_sep='' -let g:airline_left_sep='' let g:airline#extensions#tabline#enabled = 1 -let g:airline#extensions#tabline#left_sep = '' -let g:airline_powerline_fonts = 1 " limelight let g:limelight_conceal_ctermfg = 'gray' @@ -132,10 +140,16 @@ nnoremap l :Lines nnoremap c :BCommits nnoremap g :Rg +" nnn +let g:nnn#layout = { 'left': '~20%' } + +" Base64 decode selection +vnoremap 64 c=system('base64 --decode', @") + " Language specifics autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent -autocmd FileType javascript setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab autocmd BufWritePre *.go :call LanguageClient#textDocument_formatting_sync() +" autocmd BufWritePost *.go lua vim.lsp.buf.formatting() diff --git a/zsh/_stackpulse b/zsh/_stackpulse new file mode 100644 index 0000000..0c39713 --- /dev/null +++ b/zsh/_stackpulse @@ -0,0 +1,314 @@ +#compdef _stackpulse stackpulse + + +function _stackpulse { + local -a commands + + _arguments -C \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' \ + "1: :->cmnds" \ + "*::arg:->args" + + case $state in + cmnds) + commands=( + "apply:Apply a configuration to a resource" + "cancel:Cancel a running resource" + "completion:Output shell completion code" + "delete:Delete resources" + "describe:Show details of a specific resource" + "get:Display resources" + "help:Help about any command" + "init:Initialize and configure SP CLI options" + "version:Print StackPulse CLI version information" + ) + _describe "command" commands + ;; + esac + + case "$words[1]" in + apply) + _stackpulse_apply + ;; + cancel) + _stackpulse_cancel + ;; + completion) + _stackpulse_completion + ;; + delete) + _stackpulse_delete + ;; + describe) + _stackpulse_describe + ;; + get) + _stackpulse_get + ;; + help) + _stackpulse_help + ;; + init) + _stackpulse_init + ;; + version) + _stackpulse_version + ;; + esac +} + + +function _stackpulse_apply { + local -a commands + + _arguments -C \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' \ + "1: :->cmnds" \ + "*::arg:->args" + + case $state in + cmnds) + commands=( + "integration:Apply settings for specific integration" + "playbook:Apply a configuration to playbooks" + "trigger:apply trigger configs" + ) + _describe "command" commands + ;; + esac + + case "$words[1]" in + integration) + _stackpulse_apply_integration + ;; + playbook) + _stackpulse_apply_playbook + ;; + trigger) + _stackpulse_apply_trigger + ;; + esac +} + +function _stackpulse_apply_integration { + _arguments \ + '(-f --file)'{-f,--file}'[JSON integration settings]:' \ + '(-i --integration)'{-i,--integration}'[integration name]:' \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + +function _stackpulse_apply_playbook { + _arguments \ + '(-d --dry-run)'{-d,--dry-run}'[Don'\''t actually apply, just validate resource]' \ + '(-f --file)'{-f,--file}'[file to use]:' \ + '(-i --integration)'{-i,--integration}'[integration name for the playbook]:' \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + +function _stackpulse_apply_trigger { + _arguments \ + '--dry-run[Don'\''t actually apply, just validate resource]' \ + '(-f --file)'{-f,--file}'[file to use]:' \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + + +function _stackpulse_cancel { + local -a commands + + _arguments -C \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' \ + "1: :->cmnds" \ + "*::arg:->args" + + case $state in + cmnds) + commands=( + "execution:cancels specific execution ID" + ) + _describe "command" commands + ;; + esac + + case "$words[1]" in + execution) + _stackpulse_cancel_execution + ;; + esac +} + +function _stackpulse_cancel_execution { + _arguments \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + +function _stackpulse_completion { + _arguments \ + '(-h --help)'{-h,--help}'[help for completion]' \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' \ + '1: :("bash" "zsh" "fish")' +} + + +function _stackpulse_delete { + local -a commands + + _arguments -C \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' \ + "1: :->cmnds" \ + "*::arg:->args" + + case $state in + cmnds) + commands=( + "trigger:" + ) + _describe "command" commands + ;; + esac + + case "$words[1]" in + trigger) + _stackpulse_delete_trigger + ;; + esac +} + +function _stackpulse_delete_trigger { + _arguments \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + + +function _stackpulse_describe { + local -a commands + + _arguments -C \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' \ + "1: :->cmnds" \ + "*::arg:->args" + + case $state in + cmnds) + commands=( + "integration:Show settings of a specific integration" + "playbook:Show details of a specific playbook" + ) + _describe "command" commands + ;; + esac + + case "$words[1]" in + integration) + _stackpulse_describe_integration + ;; + playbook) + _stackpulse_describe_playbook + ;; + esac +} + +function _stackpulse_describe_integration { + _arguments \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + +function _stackpulse_describe_playbook { + _arguments \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + + +function _stackpulse_get { + local -a commands + + _arguments -C \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' \ + "1: :->cmnds" \ + "*::arg:->args" + + case $state in + cmnds) + commands=( + "integrations:Display integrations" + "integrations:Display integrations" + "playbooks:Display playbooks" + "trigger:" + ) + _describe "command" commands + ;; + esac + + case "$words[1]" in + integrations) + _stackpulse_get_integrations + ;; + integrations) + _stackpulse_get_integrations + ;; + playbooks) + _stackpulse_get_playbooks + ;; + trigger) + _stackpulse_get_trigger + ;; + esac +} + +function _stackpulse_get_integrations { + _arguments \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + +function _stackpulse_get_integrations { + _arguments \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + +function _stackpulse_get_playbooks { + _arguments \ + '(-o --outpt)'{-o,--outpt}'[Output format. One of: [wide]]:' \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + +function _stackpulse_get_trigger { + _arguments \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + +function _stackpulse_help { + _arguments \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + +function _stackpulse_init { + _arguments \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + +function _stackpulse_version { + _arguments \ + '(-c --config)'{-c,--config}'[Path to config file]:' \ + '(-v --verbose)'{-v,--verbose}'[verbose output]' +} + From a35b3f31b8b233963d9a750aaf4cc9968b5e8f4e Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 27 Sep 2020 21:43:21 +0300 Subject: [PATCH 218/230] gruvbox everywhere --- Brewfile | 2 +- fzf/fzf.zsh | 4 +- git/aliases.zsh | 2 - git/completion.zsh | 4 + newsboat/newsboat.symlink/config | 13 +- newsboat/newsboat.symlink/urls | 71 +- themes/solarized-dark.terminal | 1711 ------------------------------ vim/vimrc.symlink | 29 +- 8 files changed, 61 insertions(+), 1775 deletions(-) create mode 100644 git/completion.zsh delete mode 100644 themes/solarized-dark.terminal diff --git a/Brewfile b/Brewfile index 68b8262..13fbee5 100644 --- a/Brewfile +++ b/Brewfile @@ -15,7 +15,7 @@ brew 'go' brew 'graphviz' brew 'grpc' brew 'hey' -brew 'hub' +brew 'gh' brew 'hugo' brew 'ipcalc' brew 'iperf' diff --git a/fzf/fzf.zsh b/fzf/fzf.zsh index 60c952c..fe57a9e 100644 --- a/fzf/fzf.zsh +++ b/fzf/fzf.zsh @@ -5,6 +5,6 @@ export FZF_TMUX=1 # Solarized dark export FZF_DEFAULT_OPTS=" - --color dark,hl:33,hl+:37,fg+:235,bg+:136,fg+:254 - --color info:254,prompt:37,spinner:108,pointer:235,marker:235 + --color fg:#ebdbb2,bg:#282828,hl:#fabd2f,fg+:#ebdbb2,bg+:#3c3836,hl+:#fabd2f + --color info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54 " diff --git a/git/aliases.zsh b/git/aliases.zsh index ed2caa6..25a2a99 100644 --- a/git/aliases.zsh +++ b/git/aliases.zsh @@ -1,5 +1,3 @@ -alias git="hub" -alias tig="tig --show-signature" alias gl="git pull --rebase" # gitignore.io diff --git a/git/completion.zsh b/git/completion.zsh new file mode 100644 index 0000000..cfb69fc --- /dev/null +++ b/git/completion.zsh @@ -0,0 +1,4 @@ +if which gh > /dev/null 2>&1 +then + source <(gh completion -s zsh) +fi diff --git a/newsboat/newsboat.symlink/config b/newsboat/newsboat.symlink/config index 7fdf1f7..cea433c 100644 --- a/newsboat/newsboat.symlink/config +++ b/newsboat/newsboat.symlink/config @@ -1,8 +1,13 @@ -auto-reload yes -reload-time 600 -reload-threads 5 +# Reload settings +auto-reload yes +reload-time 120 -browser "open %u" +# News settings +max-items 20 +text-width 80 +browser "open %u" +feedlist-format "%4n %9u %t" +articlelist-title-format "%N %V - '%T' (%u unread, %t total)" # vim-like bindings bind-key j down diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index 92a7cf5..df61148 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -1,52 +1,45 @@ -http://undeadly.org/cgi?action=rss -http://google-opensource.blogspot.com/atom.xml -https://engineering.fb.com/feed/ +https://www.reddit.com/r/technology/.rss +https://cate.blog/feed/ https://beckyhansmeyer.com/feed/ -https://jvns.ca/atom.xml -https://www.omnigroup.com/blog/rss/ -https://ericasadun.com/feed/ -https://mjtsai.com/blog/feed/ -https://onefoottsunami.com/feed/json/ +https://cloudblog.withgoogle.com/rss/ +https://cloud.google.com/feeds/cloud-build-release-notes.xml +https://daringfireball.net/feeds/json +https://derflounder.wordpress.com/feed http://ep00.epimg.net/rss/tags/noticias_mas_vistas.xml -http://xkcd.com/atom.xml +https://ericasadun.com/feed/ +https://engineering.fb.com/feed/ +https://blog.filippo.io/rss/ +http://google-opensource.blogspot.com/atom.xml https://www.hashicorp.com/feed.xml -https://derflounder.wordpress.com/feed -http://rachelbythebay.com/w/atom.xml -https://daringfireball.net/feeds/json -https://sixcolors.com/feed.json -http://www.loopinsight.com/feed/ https://inessential.com/feed.json +https://jvns.ca/atom.xml http://krebsonsecurity.com/feed -https://www.reddit.com/r/technology/.rss -https://blog.filippo.io/rss/ -http://feeds.kottke.org/json -https://cloudblog.withgoogle.com/rss/ -https://www.reddit.com/r/worldnews/top/.rss -https://cloud.google.com/feeds/cloud-build-release-notes.xml -https://eng.uber.com/feed/atom/ -https://cate.blog/feed/ -http://rss.slashdot.org/Slashdot/slashdotMain -https://www.manton.org/feed/json +http://undeadly.org/cgi?action=rss +https://www.omnigroup.com/blog/rss/ https://shapeof.com/feed.json +https://eng.uber.com/feed/atom/ +http://rachelbythebay.com/w/atom.xml +http://xkcd.com/atom.xml +https://github.com/alacritty/alacritty/releases.atom "Github releases" +https://github.com/prometheus/alertmanager/releases.atom "Github releases" https://github.com/cockroachdb/cockroach/releases.atom "Github releases" -https://github.com/kubernetes/kube-state-metrics/releases.atom "Github releases" +https://github.com/weaveworks/flagger/releases.atom "Github releases" +https://github.com/checkr/flagr/releases.atom "Github releases" +https://github.com/kolide/fleet/releases.atom "Github releases" https://github.com/markphelps/flipt/releases.atom "Github releases" -https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom "Github releases" +https://github.com/fluxcd/flux/releases.atom "Github releases" +https://github.com/grafana/grafana/releases.atom "Github releases" +https://github.com/imgproxy/imgproxy/releases.atom "Github releases" +https://github.com/kubernetes/kube-state-metrics/releases.atom "Github releases" +https://github.com/kubernetes/kubernetes/releases.atom "Github releases" +https://github.com/linkerd/linkerd2/releases.atom "Github releases" https://github.com/neovim/neovim/releases.atom "Github releases" +https://github.com/kubernetes/ingress-nginx/releases.atom "Github releases" https://github.com/hashicorp/nomad/releases.atom "Github releases" -https://github.com/grafana/grafana/releases.atom "Github releases" -https://github.com/fluxcd/flux/releases.atom "Github releases" https://github.com/prometheus/prometheus/releases.atom "Github releases" -https://github.com/kolide/fleet/releases.atom "Github releases" -https://github.com/hashicorp/terraform/releases.atom "Github releases" -https://github.com/hashicorp/vault/releases.atom "Github releases" -https://github.com/prometheus/alertmanager/releases.atom "Github releases" -https://github.com/kubernetes/ingress-nginx/releases.atom "Github releases" -https://github.com/weaveworks/flagger/releases.atom "Github releases" -https://github.com/linkerd/linkerd2/releases.atom "Github releases" https://github.com/GoogleCloudPlatform/skaffold/releases.atom "Github releases" -https://github.com/improbable-eng/thanos/releases.atom "Github releases" -https://github.com/imgproxy/imgproxy/releases.atom "Github releases" -https://github.com/checkr/flagr/releases.atom "Github releases" +https://github.com/hashicorp/terraform/releases.atom "Github releases" https://github.com/terraform-providers/terraform-provider-google/releases.atom "Github releases" -https://github.com/kubernetes/kubernetes/releases.atom "Github releases" +https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom "Github releases" +https://github.com/improbable-eng/thanos/releases.atom "Github releases" +https://github.com/hashicorp/vault/releases.atom "Github releases" diff --git a/themes/solarized-dark.terminal b/themes/solarized-dark.terminal deleted file mode 100644 index c79f327..0000000 --- a/themes/solarized-dark.terminal +++ /dev/null @@ -1,1711 +0,0 @@ - - - - - ANSIBlackColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjAyNzQ1MTAw - NjcgMC4yMTE3NjQ3MjMxIDAuMjU4ODIzNDg0MiAxTxAmMC4wMzkzODA3NTE1NSAwLjE2 - MDExNjQ0OSAwLjE5ODMzMjcyNwAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k - YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU - AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl - c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA - AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM - AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA - DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp - Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz - UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA - AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA - A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA - AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu - aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl - IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy - IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl - cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs - UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A - AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA - AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA - LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp - AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB - OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy - AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC - 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT - BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF - hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr - Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ - JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR - C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN - 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb - ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT - xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd - F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa - 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p - HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj - ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN - KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt - QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb - MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 - jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g - PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF - VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq - THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T - qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF - W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj - l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ - bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 - KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i - fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI - aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 - kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed - ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS - qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 - JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 - wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM - tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls - 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn - H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC - 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs - YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS - HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q - D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA - cACFAIwAtwDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g - Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== - - ANSIBlueColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjE0OTAxOTYw - NzggMC41NDUwOTgwMzkyIDAuODIzNTI5NDExOCAxTxAnMC4xMjc1NDg4NTg1IDAuNDYy - NjU5NDc4MiAwLjc4MjMxNDEyMTcAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpXTlMu - ZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG - VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk - ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla - AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD - TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA - AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHly - aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS - c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA - AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA - AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA - AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3 - LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj - ZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91 - ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVm - ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA - LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye - AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA - AAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo - AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA - qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy - ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB - 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg - AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE - EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 - BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH - Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ - CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL - UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D - Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q - mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk - E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX - HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF - GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e - 6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 - I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo - DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M - LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy - mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ - OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+ - oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS - RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM - KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf - U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb - RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND - Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr - /2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM - dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ - Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE - iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS - epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3 - nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co - UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu - tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ - 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 - zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ - bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW - 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 - wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4fWiRj - bGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2JqZWN0 - 0hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3KiJyFf - EA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAAXQBj - AHAAhQCMALcA4QDjAOUA5wDsAPIA9AD2APsBAw1PDVENVg1hDWoNeA18DYMNjA2RDZ4N - oQ2uDbMNuw2+DdAN0w3YAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADdo= - - ANSIBrightBlackColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECoxLjU0NjM4ODQ0 - ZS0wOCAwLjE2ODYyNzQxMTEgMC4yMTE3NjQ2OTMzIDFPECgwLjAwOTI4NjEyODkxNiAw - LjEyNjUyMDg4NyAwLjE1OTY5NTk4MjkAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpX - TlMuZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3Nw - TVNGVAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAA - ADNkZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRn - WFlaAAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVk - AAADTAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAE - MAAAAAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENv - cHlyaWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAA - AAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFla - IAAAAAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAA - OPUAAAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MA - AAAAAAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8v - d3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBz - cGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNv - bG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAs - UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA - AAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsA - A1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAA - AAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4A - IwAoAC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCf - AKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUB - KwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHh - AekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC - 1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5 - BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgF - ZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcH - BxkHKwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI - +wkQCSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsi - CzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4N - qQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBh - EH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MT - gxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbW - FvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGnca - nhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6U - Hr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0j - CiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneier - J9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs - 1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIq - MmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4 - FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4g - PmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpE - zkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0ua - S+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdT - E1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqm - WvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi - 8GNDY5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tP - a6dr/2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0 - cHTMdSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2h - fgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuH - n4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5Go - khGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByc - iZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adu - p+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKz - OLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/ - v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbL - tsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk - 2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTm - DeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn - 9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4f - WiRjbGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2Jq - ZWN00hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3Ki - JyFfEA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAA - XQBjAHAAhQCMALkA5ADmAOgA6gDvAPUA9wD5AP4BBg1SDVQNWQ1kDW0New1/DYYNjw2U - DaENpA2xDbYNvg3BDdMN1g3bAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADd0= - - ANSIBrightBlueColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjUxMzcyNTQ5 - MDIgMC41ODAzOTIxNTY5IDAuNTg4MjM1Mjk0MSAxTxAmMC40NDA1ODAyMTkgMC41MDk2 - MjkzMDkyIDAuNTE2ODU3OTgxNwAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k - YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU - AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl - c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA - AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM - AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA - DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp - Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz - UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA - AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA - A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA - AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu - aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl - IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy - IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl - cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs - UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A - AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA - AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA - LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp - AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB - OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy - AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC - 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT - BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF - hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr - Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ - JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR - C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN - 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb - ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT - xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd - F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa - 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p - HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj - ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN - KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt - QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb - MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 - jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g - PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF - VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq - THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T - qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF - W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj - l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ - bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 - KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i - fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI - aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 - kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed - ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS - qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 - JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 - wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM - tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls - 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn - H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC - 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs - YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS - HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q - D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA - cACFAIwAtwDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g - Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== - - ANSIBrightCyanColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECYwLjU3NjQ3MDU4 - ODIgMC42MzEzNzI1NDkgMC42MzEzNzI1NDkgMU8QJzAuNTA1OTkxOTM1NyAwLjU2NDg1 - ODQzNjYgMC41NjM2MzY1NDE0ABABgAKABtIUDRUWVU5TSUNDgAOABdIYDRkaV05TLmRh - dGFPEQxIAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQA - AAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVz - YwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAA - AiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wA - AACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAM - clRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmln - aHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNS - R0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAA - AADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAAD - kFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA - ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p - ZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - ZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2Ug - LSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg - c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVy - ZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxS - ZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAA - AAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA - AAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAt - ADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkA - rgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4 - AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB - +gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALr - AvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBME - IAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWG - BZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysH - PQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAkl - CToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1EL - aQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e - DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQ - uRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPF - E+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0X - QRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrs - GxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+Hukf - Ex8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNm - I5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0o - PyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1B - LXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy - 1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiM - OMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+ - 4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVV - RZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpM - cky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1Oq - U/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0Vb - lVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OX - Y+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9s - V2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUo - dYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+ - wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhp - iM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS - 45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951k - ndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKo - xKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl - tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XA - cMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1 - zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ - 8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf - 56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1 - UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//gATSHB0eH1okY2xh - c3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHiAhVk5TRGF0YVhOU09iamVjdNIc - HSMkXE5TQ29sb3JTcGFjZaIlIVxOU0NvbG9yU3BhY2XSHB0nKFdOU0NvbG9yoichXxAP - TlNLZXllZEFyY2hpdmVy0SssVHJvb3SAAQAIABEAGgAjAC0AMgA3AD8ARQBQAF0AYwBw - AIUAjAC1AN8A4QDjAOUA6gDwAPIA9AD5AQENTQ1PDVQNXw1oDXYNeg2BDYoNjw2cDZ8N - rA2xDbkNvA3ODdEN1gAAAAAAAAIBAAAAAAAAAC0AAAAAAAAAAAAAAAAAAA3Y - - ANSIBrightGreenColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjM0NTA5ODA3 - ODMgMC40MzEzNzI1NTMxIDAuNDU4ODIzNTAyMSAxTxAmMC4yNzY3MTk4OTggMC4zNTY2 - NTk1MzE2IDAuMzgyOTg0NzU3NAAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k - YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU - AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl - c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA - AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM - AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA - DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp - Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz - UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA - AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA - A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA - AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu - aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl - IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy - IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl - cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs - UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A - AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA - AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA - LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp - AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB - OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy - AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC - 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT - BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF - hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr - Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ - JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR - C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN - 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb - ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT - xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd - F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa - 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p - HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj - ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN - KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt - QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb - MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 - jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g - PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF - VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq - THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T - qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF - W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj - l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ - bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 - KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i - fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI - aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 - kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed - ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS - qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 - JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 - wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM - tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls - 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn - H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC - 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs - YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS - HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q - D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA - cACFAIwAtwDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g - Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== - - ANSIBrightMagentaColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECcwLjQyMzUyOTQx - MTggMC40NDMxMzcyNTQ5IDAuNzY4NjI3NDUxIDFPECcwLjM0NzkyMzgxNTMgMC4zNTEz - NzE2MTYxIDAuNzE3OTE2NjY3NQAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k - YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU - AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl - c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA - AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM - AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA - DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp - Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz - UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA - AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA - A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA - AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu - aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl - IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy - IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl - cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs - UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A - AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA - AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA - LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp - AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB - OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy - AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC - 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT - BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF - hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr - Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ - JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR - C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN - 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb - ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT - xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd - F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa - 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p - HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj - ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN - KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt - QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb - MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 - jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g - PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF - VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq - THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T - qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF - W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj - l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ - bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 - KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i - fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI - aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 - kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed - ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS - qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 - JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 - wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM - tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls - 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn - H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC - 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs - YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS - HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q - D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA - cACFAIwAtgDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g - Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== - - ANSIBrightRedColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjc5NjA3ODQz - MTQgMC4yOTQxMTc2NDcxIDAuMDg2Mjc0NTA5OCAxTxAoMC43NDE3NjI1MTg5IDAuMjEz - MjUyOTc2NSAwLjA3MzUzMDQyODExABABgAKABtIUDRUWVU5TSUNDgAOABdIYDRkaV05T - LmRhdGFPEQxIAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1T - RlQAAAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAz - ZGVzYwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZ - WgAAAiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAA - A0wAAACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAA - AAAMclRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5 - cmlnaHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAA - EnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAA - AAAAAADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1 - AAADkFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAA - AAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3 - dy5pZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3Bh - Y2UgLSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xv - dXIgc3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJl - ZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAA - ACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANc - ngAAAAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMA - KAAtADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCk - AKkArgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsB - MgE4AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHp - AfIB+gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC - 4ALrAvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQG - BBMEIAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcF - dwWGBZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZ - BysHPQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJ - EAklCToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5 - C1ELaQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakN - ww3eDfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+ - EJsQuRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MT - pBPFE+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6 - Fx0XQRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4a - xRrsGxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+ - HukfEx8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwoj - OCNmI5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfc - KA0oPyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNct - DC1BLXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJj - Mpsy1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4 - UDiMOMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5g - PqA+4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5F - EkVVRZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkvi - TCpMcky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNT - X1OqU/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1 - W0VblVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBj - Q2OXY+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2un - a/9sV2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0 - zHUodYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4B - fmJ+wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+I - BIhpiM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIR - knqS45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc - 951kndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfg - qFKoxKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCsziz - rrQltJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796 - v/XAcMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bM - Ncy1zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo - 2WzZ8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3m - lucf56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q0 - 9ML1UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//gATSHB0eH1ok - Y2xhc3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHiAhVk5TRGF0YVhOU09iamVj - dNIcHSMkXE5TQ29sb3JTcGFjZaIlIVxOU0NvbG9yU3BhY2XSHB0nKFdOU0NvbG9yoich - XxAPTlNLZXllZEFyY2hpdmVy0SssVHJvb3SAAQAIABEAGgAjAC0AMgA3AD8ARQBQAF0A - YwBwAIUAjAC3AOIA5ADmAOgA7QDzAPUA9wD8AQQNUA1SDVcNYg1rDXkNfQ2EDY0Nkg2f - DaINrw20DbwNvw3RDdQN2QAAAAAAAAIBAAAAAAAAAC0AAAAAAAAAAAAAAAAAAA3b - - ANSIBrightWhiteColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjk5MjE1Njg2 - MjcgMC45NjQ3MDU4ODI0IDAuODkwMTk2MDc4NCAxTxAmMC45ODk0MzQxMjMgMC45NTc5 - NDM3OTcxIDAuODY0MDU5Njg2NwAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k - YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU - AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl - c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA - AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM - AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA - DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp - Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz - UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA - AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA - A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA - AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu - aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl - IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy - IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl - cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs - UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A - AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA - AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA - LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp - AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB - OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy - AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC - 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT - BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF - hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr - Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ - JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR - C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN - 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb - ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT - xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd - F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa - 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p - HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj - ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN - KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt - QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb - MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 - jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g - PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF - VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq - THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T - qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF - W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj - l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ - bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 - KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i - fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI - aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 - kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed - ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS - qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 - JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 - wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM - tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls - 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn - H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC - 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs - YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS - HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q - D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA - cACFAIwAtwDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g - Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== - - ANSIBrightYellowColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjM5NjA3ODQz - MTQgMC40ODIzNTI5NDEyIDAuNTEzNzI1NDkwMiAxTxAnMC4zMjQzNjYxNTIzIDAuNDA3 - MTc2NjczNCAwLjQzODUwNTY0OTYAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpXTlMu - ZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG - VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk - ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla - AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD - TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA - AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHly - aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS - c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA - AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA - AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA - AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3 - LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj - ZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91 - ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVm - ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA - LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye - AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA - AAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo - AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA - qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy - ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB - 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg - AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE - EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 - BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH - Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ - CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL - UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D - Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q - mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk - E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX - HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF - GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e - 6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 - I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo - DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M - LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy - mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ - OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+ - oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS - RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM - KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf - U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb - RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND - Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr - /2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM - dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ - Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE - iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS - epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3 - nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co - UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu - tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ - 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 - zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ - bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW - 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 - wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4fWiRj - bGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2JqZWN0 - 0hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3KiJyFf - EA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAAXQBj - AHAAhQCMALcA4QDjAOUA5wDsAPIA9AD2APsBAw1PDVENVg1hDWoNeA18DYMNjA2RDZ4N - oQ2uDbMNuw2+DdAN0w3YAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADdo= - - ANSICyanColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECcwLjE2NDcwNTg4 - MjQgMC42MzEzNzI1NDkgMC41OTYwNzg0MzE0IDFPECcwLjE0Njc5NTMzMjQgMC41NzA4 - MjM2Njk0IDAuNTI1MDIyNzQ1MQAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k - YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU - AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl - c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA - AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM - AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA - DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp - Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz - UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA - AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA - A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA - AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu - aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl - IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy - IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl - cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs - UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A - AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA - AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA - LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp - AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB - OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy - AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC - 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT - BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF - hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr - Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ - JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR - C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN - 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb - ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT - xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd - F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa - 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p - HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj - ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN - KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt - QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb - MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 - jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g - PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF - VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq - THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T - qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF - W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj - l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ - bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 - KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i - fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI - aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 - kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed - ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS - qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 - JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 - wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM - tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls - 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn - H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC - 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs - YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS - HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q - D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA - cACFAIwAtgDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g - Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== - - ANSIGreenColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPEBwwLjUyMTU2ODY1 - NiAwLjYwMDAwMDAyMzggMCAxTxAoMC40NDk3NzQ1MDM3IDAuNTQxMTU0OTIxMSAwLjAx - NDI1OTA3Mzg4ABABgAKABtIUDRUWVU5TSUNDgAOABdIYDRkaV05TLmRhdGFPEQxIAAAM - SExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNS - R0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABs - d3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZ - WgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAA - A9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwA - AAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5 - OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5 - NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAA - ARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAA - AABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0 - cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAA - AAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAA - AAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBz - UkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3 - aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2Ug - Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAA - AABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNp - ZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAA - RQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADB - AMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIB - WQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAId - AiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYD - IQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARV - BGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF - 1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeG - B5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJ - jwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvI - C+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkO - ZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExEx - EU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkU - ahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfS - F/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4ob - shvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/ - H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8k - TSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkG - KTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYu - TC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4 - M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85 - vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/i - QCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdG - q0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2T - TdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtV - KFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzW - XSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOll - PWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25 - bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2 - +HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBH - gKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6K - ZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSK - lPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2f - i5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqP - qwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2 - ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48Jf - wtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbP - N8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF - 3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp - 0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK - +Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//gATSHB0eH1okY2xhc3NuYW1lWCRj - bGFzc2VzXU5TTXV0YWJsZURhdGGjHiAhVk5TRGF0YVhOU09iamVjdNIcHSMkXE5TQ29s - b3JTcGFjZaIlIVxOU0NvbG9yU3BhY2XSHB0nKFdOU0NvbG9yoichXxAPTlNLZXllZEFy - Y2hpdmVy0SssVHJvb3SAAQAIABEAGgAjAC0AMgA3AD8ARQBQAF0AYwBwAIUAjACrANYA - 2ADaANwA4QDnAOkA6wDwAPgNRA1GDUsNVg1fDW0NcQ14DYENhg2TDZYNow2oDbANsw3F - DcgNzQAAAAAAAAIBAAAAAAAAAC0AAAAAAAAAAAAAAAAAAA3P - - ANSIMagentaColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjgyNzQ1MDk4 - MDQgMC4yMTE3NjQ3MDU5IDAuNTA5ODAzOTIxNiAxTxAnMC43NzczODkyODc5IDAuMTA4 - MDI0NjE5NSAwLjQzNTE2NjM1ODkAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpXTlMu - ZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG - VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk - ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla - AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD - TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA - AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHly - aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS - c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA - AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA - AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA - AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3 - LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj - ZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91 - ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVm - ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA - LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye - AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA - AAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo - AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA - qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy - ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB - 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg - AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE - EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 - BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH - Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ - CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL - UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D - Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q - mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk - E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX - HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF - GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e - 6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 - I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo - DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M - LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy - mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ - OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+ - oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS - RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM - KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf - U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb - RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND - Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr - /2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM - dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ - Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE - iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS - epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3 - nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co - UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu - tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ - 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 - zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ - bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW - 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 - wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4fWiRj - bGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2JqZWN0 - 0hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3KiJyFf - EA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAAXQBj - AHAAhQCMALcA4QDjAOUA5wDsAPIA9AD2APsBAw1PDVENVg1hDWoNeA18DYMNjA2RDZ4N - oQ2uDbMNuw2+DdAN0w3YAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADdo= - - ANSIRedColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECcwLjg2Mjc0NTA5 - OCAwLjE5NjA3ODQzMTQgMC4xODQzMTM3MjU1IDFPECcwLjgxOTI2OTY1NzEgMC4xMDg0 - MDY2NjI5IDAuMTQxNDU3MTcwMgAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k - YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU - AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl - c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA - AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM - AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA - DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp - Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz - UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA - AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA - A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA - AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu - aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl - IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy - IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl - cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs - UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A - AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA - AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA - LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp - AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB - OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy - AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC - 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT - BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF - hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr - Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ - JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR - C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN - 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb - ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT - xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd - F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa - 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p - HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj - ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN - KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt - QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb - MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 - jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g - PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF - VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq - THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T - qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF - W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj - l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ - bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 - KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i - fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI - aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 - kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed - ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS - qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 - JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 - wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM - tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls - 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn - H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC - 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs - YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS - HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q - D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA - cACFAIwAtgDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g - Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== - - ANSIWhiteColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjkzMzMzMzMz - MzMgMC45MDk4MDM5MjE2IDAuODM1Mjk0MTE3NiAxTxAnMC45MTYxMTA1NzUyIDAuODkw - MDEyMzIzOSAwLjc5NzgxMDk3MTcAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpXTlMu - ZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG - VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk - ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla - AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD - TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA - AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHly - aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS - c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA - AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA - AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA - AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3 - LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj - ZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91 - ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVm - ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA - LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye - AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA - AAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo - AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA - qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy - ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB - 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg - AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE - EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 - BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH - Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ - CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL - UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D - Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q - mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk - E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX - HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF - GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e - 6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 - I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo - DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M - LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy - mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ - OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+ - oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS - RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM - KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf - U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb - RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND - Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr - /2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM - dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ - Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE - iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS - epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3 - nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co - UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu - tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ - 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 - zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ - bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW - 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 - wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4fWiRj - bGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2JqZWN0 - 0hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3KiJyFf - EA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAAXQBj - AHAAhQCMALcA4QDjAOUA5wDsAPIA9AD2APsBAw1PDVENVg1hDWoNeA18DYMNjA2RDZ4N - oQ2uDbMNuw2+DdAN0w3YAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADdo= - - ANSIYellowColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPEBwwLjcwOTgwMzky - MTYgMC41MzcyNTQ5MDIgMCAxTxAoMC42NDc0NjQ3NTIyIDAuNDY3NTE0MjQ2NyAwLjAx - ODY4Njg4MzE1ABABgAKABtIUDRUWVU5TSUNDgAOABdIYDRkaV05TLmRhdGFPEQxIAAAM - SExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQAAAAASUVDIHNS - R0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVzYwAAAYQAAABs - d3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAAAiwAAAAUYlhZ - WgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wAAACGdmlldwAA - A9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAMclRSQwAABDwA - AAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmlnaHQgKGMpIDE5 - OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNSR0IgSUVDNjE5 - NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAADzUQABAAAA - ARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAADkFhZWiAAAAAA - AABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAAABZJRUMgaHR0 - cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAA - AAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBzUkdCAAAA - AAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2UgLSBz - UkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVyZW5jZSBWaWV3 - aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxSZWZlcmVuY2Ug - Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAAAAFYWVogAAAA - AABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAKPAAAAAnNp - ZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAtADIANwA7AEAA - RQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkArgCyALcAvADB - AMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4AT4BRQFMAVIB - WQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB+gIDAgwCFAId - AiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALrAvUDAAMLAxYD - IQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBMEIAQtBDsESARV - BGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWGBZYFpgW1BcUF - 1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysHPQdPB2EHdAeG - B5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAklCToJTwlkCXkJ - jwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1ELaQuAC5gLsAvI - C+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3eDfgOEw4uDkkO - ZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQuRDXEPURExEx - EU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPFE+UUBhQnFEkU - ahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0XQRdlF4kXrhfS - F/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrsGxQbOxtjG4ob - shvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+HukfEx8+H2kflB+/ - H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNmI5QjwiPwJB8k - TSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0oPyhxKKIo1CkG - KTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1BLXYtqy3hLhYu - TC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy1DMNM0YzfzO4 - M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiMOMg5BTlCOX85 - vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+4D8hP2E/oj/i - QCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVVRZpF3kYiRmdG - q0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpMcky6TQJNSk2T - TdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1OqU/ZUQlSPVNtV - KFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0VblVvlXDVchlzW - XSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OXY+tkQGSUZOll - PWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9sV2yvbQhtYG25 - bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUodYV14XY+dpt2 - +HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+wn8jf4R/5YBH - gKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhpiM6JM4mZif6K - ZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS45NNk7aUIJSK - lPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951kndKeQJ6unx2f - i5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKoxKk3qamqHKqP - qwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQltJy1E7WKtgG2 - ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XAcMDswWfB48Jf - wtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1zTXNtc42zrbP - N8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ8dp22vvbgNwF - 3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf56noMui86Ubp - 0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1UPXe9m32+/eK - +Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//gATSHB0eH1okY2xhc3NuYW1lWCRj - bGFzc2VzXU5TTXV0YWJsZURhdGGjHiAhVk5TRGF0YVhOU09iamVjdNIcHSMkXE5TQ29s - b3JTcGFjZaIlIVxOU0NvbG9yU3BhY2XSHB0nKFdOU0NvbG9yoichXxAPTlNLZXllZEFy - Y2hpdmVy0SssVHJvb3SAAQAIABEAGgAjAC0AMgA3AD8ARQBQAF0AYwBwAIUAjACrANYA - 2ADaANwA4QDnAOkA6wDwAPgNRA1GDUsNVg1fDW0NcQ14DYENhg2TDZYNow2oDbANsw3F - DcgNzQAAAAAAAAIBAAAAAAAAAC0AAAAAAAAAAAAAAAAAAA3P - - BackgroundBlur - 0.0 - BackgroundColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECowLjAyNzQ1MTAw - NjcgMC4yMTE3NjQ3MjMxIDAuMjU4ODIzNDg0MiAwLjlPECowLjAzOTM4MDc1MTU1IDAu - MTYwMTE2NDQ5IDAuMTk4MzMyNzI3IDAuOQAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0Z - GldOUy5kYXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFj - c3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQ - AAAAM2Rlc2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAA - FGdYWVoAAAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1 - ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gA - AAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAA - Q29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAA - AAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4x - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABY - WVogAAAAAAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+i - AAA49QAAA5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVz - YwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6 - Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy - IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0Ig - Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAA - ACxSZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQT - CwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAA - AAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkA - HgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCa - AJ8ApACpAK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8B - JQErATIBOAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZ - AeEB6QHyAfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsEC - ywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APs - A/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkF - WAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1 - BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII - 5wj7CRAJJQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsL - CyILOQtRC2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQN - jg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBD - EGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MT - YxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxay - FtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEa - dxqeGsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5q - HpQevh7pHxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i - 3SMKIzgjZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6 - J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4s - oizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHy - MioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w3 - 1zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3g - PiA+YD6gPuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdE - ikTORRJFVUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtT - S5pL4kwqTHJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxS - x1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pW - WqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1Ykli - nGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3 - a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0 - FHRwdMx1KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1B - faF+AX5ifsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteH - O4efiASIaYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/ - kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+c - HJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9 - p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuy - wrM4s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6E - vv+/er/1wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfL - Nsu2zDXMtc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg - 2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5Pzl - hOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ - 86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwd - Hh9aJGNsYXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNP - YmplY3TSHB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xv - cqInIV8QD05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUA - UABdAGMAcACFAIwAuQDmAOgA6gDsAPEA9wD5APsBAAEIDVQNVg1bDWYNbw19DYENiA2R - DZYNow2mDbMNuA3ADcMN1Q3YDd0AAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN - 3w== - - Bell - - BlinkText - - CommandString - - CursorColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECcwLjM5NjA3ODQ2 - NzQgMC40ODIzNTI5NzIgMC41MTM3MjU0NTk2IDFPECYwLjMyNDM2NjE1MjMgMC40MDcx - NzY3MzMgMC40Mzg1MDU2NDk2ABABgAKABtIUDRUWVU5TSUNDgAOABdIYDRkaV05TLmRh - dGFPEQxIAAAMSExpbm8CEAAAbW50clJHQiBYWVogB84AAgAJAAYAMQAAYWNzcE1TRlQA - AAAASUVDIHNSR0IAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1IUCAgAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARY3BydAAAAVAAAAAzZGVz - YwAAAYQAAABsd3RwdAAAAfAAAAAUYmtwdAAAAgQAAAAUclhZWgAAAhgAAAAUZ1hZWgAA - AiwAAAAUYlhZWgAAAkAAAAAUZG1uZAAAAlQAAABwZG1kZAAAAsQAAACIdnVlZAAAA0wA - AACGdmlldwAAA9QAAAAkbHVtaQAAA/gAAAAUbWVhcwAABAwAAAAkdGVjaAAABDAAAAAM - clRSQwAABDwAAAgMZ1RSQwAABDwAAAgMYlRSQwAABDwAAAgMdGV4dAAAAABDb3B5cmln - aHQgKGMpIDE5OTggSGV3bGV0dC1QYWNrYXJkIENvbXBhbnkAAGRlc2MAAAAAAAAAEnNS - R0IgSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAASc1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAA - AADzUQABAAAAARbMWFlaIAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAAb6IAADj1AAAD - kFhZWiAAAAAAAABimQAAt4UAABjaWFlaIAAAAAAAACSgAAAPhAAAts9kZXNjAAAAAAAA - ABZJRUMgaHR0cDovL3d3dy5pZWMuY2gAAAAAAAAAAAAAABZJRUMgaHR0cDovL3d3dy5p - ZWMuY2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - ZGVzYwAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIgc3BhY2Ug - LSBzUkdCAAAAAAAAAAAAAAAuSUVDIDYxOTY2LTIuMSBEZWZhdWx0IFJHQiBjb2xvdXIg - c3BhY2UgLSBzUkdCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALFJlZmVy - ZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAACxS - ZWZlcmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAB2aWV3AAAAAAATpP4AFF8uABDPFAAD7cwABBMLAANcngAA - AAFYWVogAAAAAABMCVYAUAAAAFcf521lYXMAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAA - AAKPAAAAAnNpZyAAAAAAQ1JUIGN1cnYAAAAAAAAEAAAAAAUACgAPABQAGQAeACMAKAAt - ADIANwA7AEAARQBKAE8AVABZAF4AYwBoAG0AcgB3AHwAgQCGAIsAkACVAJoAnwCkAKkA - rgCyALcAvADBAMYAywDQANUA2wDgAOUA6wDwAPYA+wEBAQcBDQETARkBHwElASsBMgE4 - AT4BRQFMAVIBWQFgAWcBbgF1AXwBgwGLAZIBmgGhAakBsQG5AcEByQHRAdkB4QHpAfIB - +gIDAgwCFAIdAiYCLwI4AkECSwJUAl0CZwJxAnoChAKOApgCogKsArYCwQLLAtUC4ALr - AvUDAAMLAxYDIQMtAzgDQwNPA1oDZgNyA34DigOWA6IDrgO6A8cD0wPgA+wD+QQGBBME - IAQtBDsESARVBGMEcQR+BIwEmgSoBLYExATTBOEE8AT+BQ0FHAUrBToFSQVYBWcFdwWG - BZYFpgW1BcUF1QXlBfYGBgYWBicGNwZIBlkGagZ7BowGnQavBsAG0QbjBvUHBwcZBysH - PQdPB2EHdAeGB5kHrAe/B9IH5Qf4CAsIHwgyCEYIWghuCIIIlgiqCL4I0gjnCPsJEAkl - CToJTwlkCXkJjwmkCboJzwnlCfsKEQonCj0KVApqCoEKmAquCsUK3ArzCwsLIgs5C1EL - aQuAC5gLsAvIC+EL+QwSDCoMQwxcDHUMjgynDMAM2QzzDQ0NJg1ADVoNdA2ODakNww3e - DfgOEw4uDkkOZA5/DpsOtg7SDu4PCQ8lD0EPXg96D5YPsw/PD+wQCRAmEEMQYRB+EJsQ - uRDXEPURExExEU8RbRGMEaoRyRHoEgcSJhJFEmQShBKjEsMS4xMDEyMTQxNjE4MTpBPF - E+UUBhQnFEkUahSLFK0UzhTwFRIVNBVWFXgVmxW9FeAWAxYmFkkWbBaPFrIW1hb6Fx0X - QRdlF4kXrhfSF/cYGxhAGGUYihivGNUY+hkgGUUZaxmRGbcZ3RoEGioaURp3Gp4axRrs - GxQbOxtjG4obshvaHAIcKhxSHHscoxzMHPUdHh1HHXAdmR3DHeweFh5AHmoelB6+Hukf - Ex8+H2kflB+/H+ogFSBBIGwgmCDEIPAhHCFIIXUhoSHOIfsiJyJVIoIiryLdIwojOCNm - I5QjwiPwJB8kTSR8JKsk2iUJJTglaCWXJccl9yYnJlcmhya3JugnGCdJJ3onqyfcKA0o - PyhxKKIo1CkGKTgpaymdKdAqAio1KmgqmyrPKwIrNitpK50r0SwFLDksbiyiLNctDC1B - LXYtqy3hLhYuTC6CLrcu7i8kL1ovkS/HL/4wNTBsMKQw2zESMUoxgjG6MfIyKjJjMpsy - 1DMNM0YzfzO4M/E0KzRlNJ402DUTNU01hzXCNf02NzZyNq426TckN2A3nDfXOBQ4UDiM - OMg5BTlCOX85vDn5OjY6dDqyOu87LTtrO6o76DwnPGU8pDzjPSI9YT2hPeA+ID5gPqA+ - 4D8hP2E/oj/iQCNAZECmQOdBKUFqQaxB7kIwQnJCtUL3QzpDfUPARANER0SKRM5FEkVV - RZpF3kYiRmdGq0bwRzVHe0fASAVIS0iRSNdJHUljSalJ8Eo3Sn1KxEsMS1NLmkviTCpM - cky6TQJNSk2TTdxOJU5uTrdPAE9JT5NP3VAnUHFQu1EGUVBRm1HmUjFSfFLHUxNTX1Oq - U/ZUQlSPVNtVKFV1VcJWD1ZcVqlW91dEV5JX4FgvWH1Yy1kaWWlZuFoHWlZaplr1W0Vb - lVvlXDVchlzWXSddeF3JXhpebF69Xw9fYV+zYAVgV2CqYPxhT2GiYfViSWKcYvBjQ2OX - Y+tkQGSUZOllPWWSZedmPWaSZuhnPWeTZ+loP2iWaOxpQ2maafFqSGqfavdrT2una/9s - V2yvbQhtYG25bhJua27Ebx5veG/RcCtwhnDgcTpxlXHwcktypnMBc11zuHQUdHB0zHUo - dYV14XY+dpt2+HdWd7N4EXhueMx5KnmJeed6RnqlewR7Y3vCfCF8gXzhfUF9oX4BfmJ+ - wn8jf4R/5YBHgKiBCoFrgc2CMIKSgvSDV4O6hB2EgITjhUeFq4YOhnKG14c7h5+IBIhp - iM6JM4mZif6KZIrKizCLlov8jGOMyo0xjZiN/45mjs6PNo+ekAaQbpDWkT+RqJIRknqS - 45NNk7aUIJSKlPSVX5XJljSWn5cKl3WX4JhMmLiZJJmQmfyaaJrVm0Kbr5wcnImc951k - ndKeQJ6unx2fi5/6oGmg2KFHobaiJqKWowajdqPmpFakx6U4pammGqaLpv2nbqfgqFKo - xKk3qamqHKqPqwKrdavprFys0K1ErbiuLa6hrxavi7AAsHWw6rFgsdayS7LCszizrrQl - tJy1E7WKtgG2ebbwt2i34LhZuNG5SrnCuju6tbsuu6e8IbybvRW9j74KvoS+/796v/XA - cMDswWfB48JfwtvDWMPUxFHEzsVLxcjGRsbDx0HHv8g9yLzJOsm5yjjKt8s2y7bMNcy1 - zTXNtc42zrbPN8+40DnQutE80b7SP9LB00TTxtRJ1MvVTtXR1lXW2Ndc1+DYZNjo2WzZ - 8dp22vvbgNwF3IrdEN2W3hzeot8p36/gNuC94UThzOJT4tvjY+Pr5HPk/OWE5g3mlucf - 56noMui86Ubp0Opb6uXrcOv77IbtEe2c7ijutO9A78zwWPDl8XLx//KM8xnzp/Q09ML1 - UPXe9m32+/eK+Bn4qPk4+cf6V/rn+3f8B/yY/Sn9uv5L/tz/bf//gATSHB0eH1okY2xh - c3NuYW1lWCRjbGFzc2VzXU5TTXV0YWJsZURhdGGjHiAhVk5TRGF0YVhOU09iamVjdNIc - HSMkXE5TQ29sb3JTcGFjZaIlIVxOU0NvbG9yU3BhY2XSHB0nKFdOU0NvbG9yoichXxAP - TlNLZXllZEFyY2hpdmVy0SssVHJvb3SAAQAIABEAGgAjAC0AMgA3AD8ARQBQAF0AYwBw - AIUAjAC2AN8A4QDjAOUA6gDwAPIA9AD5AQENTQ1PDVQNXw1oDXYNeg2BDYoNjw2cDZ8N - rA2xDbkNvA3ODdEN1gAAAAAAAAIBAAAAAAAAAC0AAAAAAAAAAAAAAAAAAA3Y - - Font - - YnBsaXN0MDDUAQIDBAUGGBlYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKQHCBESVSRudWxs1AkKCwwNDg8QVk5TU2l6ZVhOU2ZGbGFnc1ZOU05hbWVWJGNs - YXNzI0AuAAAAAAAAEBCAAoADXU1lbmxvLVJlZ3VsYXLSExQVFlokY2xhc3NuYW1lWCRj - bGFzc2VzVk5TRm9udKIVF1hOU09iamVjdF8QD05TS2V5ZWRBcmNoaXZlctEaG1Ryb290 - gAEIERojLTI3PEJLUltiaXJ0dniGi5afpqmyxMfMAAAAAAAAAQEAAAAAAAAAHAAAAAAA - AAAAAAAAAAAAAM4= - - FontAntialias - - FontWidthSpacing - 1.004032258064516 - Linewrap - - ProfileCurrentVersion - 2.0499999999999998 - RunCommandAsShell - - SelectionColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjkzMzMzMzM5 - NjkgMC45MDk4MDM5MjY5IDAuODM1Mjk0MjQ2NyAxTxAnMC45MTYxMTA1NzUyIDAuODkw - MDEyMzIzOSAwLjc5NzgxMTE1MDYAEAGAAoAG0hQNFRZVTlNJQ0OAA4AF0hgNGRpXTlMu - ZGF0YU8RDEgAAAxITGlubwIQAABtbnRyUkdCIFhZWiAHzgACAAkABgAxAABhY3NwTVNG - VAAAAABJRUMgc1JHQgAAAAAAAAAAAAAAAAAA9tYAAQAAAADTLUhQICAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABFjcHJ0AAABUAAAADNk - ZXNjAAABhAAAAGx3dHB0AAAB8AAAABRia3B0AAACBAAAABRyWFlaAAACGAAAABRnWFla - AAACLAAAABRiWFlaAAACQAAAABRkbW5kAAACVAAAAHBkbWRkAAACxAAAAIh2dWVkAAAD - TAAAAIZ2aWV3AAAD1AAAACRsdW1pAAAD+AAAABRtZWFzAAAEDAAAACR0ZWNoAAAEMAAA - AAxyVFJDAAAEPAAACAxnVFJDAAAEPAAACAxiVFJDAAAEPAAACAx0ZXh0AAAAAENvcHly - aWdodCAoYykgMTk5OCBIZXdsZXR0LVBhY2thcmQgQ29tcGFueQAAZGVzYwAAAAAAAAAS - c1JHQiBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWFlaIAAA - AAAAAPNRAAEAAAABFsxYWVogAAAAAAAAAAAAAAAAAAAAAFhZWiAAAAAAAABvogAAOPUA - AAOQWFlaIAAAAAAAAGKZAAC3hQAAGNpYWVogAAAAAAAAJKAAAA+EAAC2z2Rlc2MAAAAA - AAAAFklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAFklFQyBodHRwOi8vd3d3 - LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFj - ZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91 - ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVm - ZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAA - LFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1ye - AAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAA - AAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAo - AC0AMgA3ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQA - qQCuALIAtwC8AMEAxgDLANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEy - ATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB - 8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4CmAKiAqwCtgLBAssC1QLg - AusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPTA+AD7AP5BAYE - EwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3 - BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkH - Kwc9B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQ - CSUJOglPCWQJeQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkL - UQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3D - Dd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4Q - mxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOk - E8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoX - HRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrF - GuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e - 6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 - I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9wo - DSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0M - LUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMy - mzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQ - OIw4yDkFOUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+ - oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUS - RVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JM - KkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZSMVJ8UsdTE1Nf - U6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqmWvVb - RVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND - Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr - /2xXbK9tCG1gbbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTM - dSh1hXXhdj52m3b4d1Z3s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+ - Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gE - iGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82j56QBpBukNaRP5GokhGS - epLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuvnByciZz3 - nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+Co - UqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOu - tCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ - 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1 - zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZ - bNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW - 5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0 - wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t//+ABNIcHR4fWiRj - bGFzc25hbWVYJGNsYXNzZXNdTlNNdXRhYmxlRGF0YaMeICFWTlNEYXRhWE5TT2JqZWN0 - 0hwdIyRcTlNDb2xvclNwYWNloiUhXE5TQ29sb3JTcGFjZdIcHScoV05TQ29sb3KiJyFf - EA9OU0tleWVkQXJjaGl2ZXLRKyxUcm9vdIABAAgAEQAaACMALQAyADcAPwBFAFAAXQBj - AHAAhQCMALcA4QDjAOUA5wDsAPIA9AD2APsBAw1PDVENVg1hDWoNeA18DYMNjA2RDZ4N - oQ2uDbMNuw2+DdAN0w3YAAAAAAAAAgEAAAAAAAAALQAAAAAAAAAAAAAAAAAADdo= - - ShowCommandKeyInTitle - - ShowDimensionsInTitle - - ShowShellCommandInTitle - - TerminalType - xterm-256color - TextBoldColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECcwLjU3NjQ3MDY3 - MzEgMC42MzEzNzI1MTE0IDAuNjMxMzcyNTcxIDFPECcwLjUwNTk5MjA1NDkgMC41NjQ4 - NTgzMTc0IDAuNTYzNjM2NTQxNAAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k - YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU - AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl - c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA - AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM - AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA - DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp - Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz - UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA - AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA - A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA - AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu - aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl - IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy - IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl - cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs - UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A - AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA - AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA - LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp - AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB - OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy - AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC - 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT - BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF - hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr - Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ - JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR - C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN - 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb - ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT - xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd - F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa - 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p - HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj - ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN - KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt - QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb - MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 - jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g - PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF - VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq - THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T - qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF - W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj - l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ - bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 - KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i - fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI - aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 - kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed - ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS - qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 - JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 - wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM - tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls - 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn - H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC - 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs - YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS - HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q - D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA - cACFAIwAtgDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g - Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== - - TextColor - - YnBsaXN0MDDUAQIDBAUGKSpYJHZlcnNpb25YJG9iamVjdHNZJGFyY2hpdmVyVCR0b3AS - AAGGoKcHCBMXGyImVSRudWxs1QkKCwwNDg8QERJcTlNDb21wb25lbnRzVU5TUkdCXE5T - Q29sb3JTcGFjZV8QEk5TQ3VzdG9tQ29sb3JTcGFjZVYkY2xhc3NPECgwLjUxMzcyNTUx - OTIgMC41ODAzOTIxODE5IDAuNTg4MjM1MzE4NyAxTxAmMC40NDA1ODAyMTkgMC41MDk2 - MjkzMDkyIDAuNTE2ODU3OTgxNwAQAYACgAbSFA0VFlVOU0lDQ4ADgAXSGA0ZGldOUy5k - YXRhTxEMSAAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfOAAIACQAGADEAAGFjc3BNU0ZU - AAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl - c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoA - AAIsAAAAFGJYWVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANM - AAAAhnZpZXcAAAPUAAAAJGx1bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAA - DHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJUUkMAAAQ8AAAIDHRleHQAAAAAQ29weXJp - Z2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55AABkZXNjAAAAAAAAABJz - UkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4xAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAA - AAAA81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAA - A5BYWVogAAAAAAAAYpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAA - AAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cu - aWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3VyIHNwYWNl - IC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29sb3Vy - IHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZl - cmVuY2UgVmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAs - UmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAdmlldwAAAAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4A - AAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAA - AAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAUABkAHgAjACgA - LQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp - AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIB - OAE+AUUBTAFSAVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHy - AfoCAwIMAhQCHQImAi8COAJBAksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC - 6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+A4oDlgOiA64DugPHA9MD4APsA/kEBgQT - BCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUNBRwFKwU6BUkFWAVnBXcF - hgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1BwcHGQcr - Bz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJ - JQk6CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtR - C2kLgAuYC7ALyAvhC/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN - 3g34DhMOLg5JDmQOfw6bDrYO0g7uDwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCb - ELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJkEoQSoxLDEuMTAxMjE0MTYxODE6QT - xRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJFmwWjxayFtYW+hcd - F0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqeGsUa - 7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7p - HxMfPh9pH5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgj - ZiOUI8Ij8CQfJE0kfCSrJNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgN - KD8ocSiiKNQpBik4KWspnSnQKgIqNSpoKpsqzysCKzYraSudK9EsBSw5LG4soizXLQwt - QS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCkMNsxEjFKMYIxujHyMioyYzKb - MtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdgN5w31zgUOFA4 - jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g - PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJF - VUWaRd5GIkZnRqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwq - THJMuk0CTUpNk03cTiVObk63TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19T - qlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeSV+BYL1h9WMtZGllpWbhaB1pWWqZa9VtF - W5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8YU9homH1YklinGLwY0Nj - l2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3a09rp2v/ - bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1 - KHWFdeF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5i - fsJ/I3+Ef+WAR4CogQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASI - aYjOiTOJmYn+imSKyoswi5aL/IxjjMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6 - kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4mSSZkJn8mmia1ZtCm6+cHJyJnPed - ZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWpphqmi6b9p26n4KhS - qMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4s660 - JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1 - wHDA7MFnwePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXM - tc01zbXONs62zzfPuNA50LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls - 2fHadtr724DcBdyK3RDdlt4c3qLfKd+v4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbn - H+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M8Fjw5fFy8f/yjPMZ86f0NPTC - 9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23//4AE0hwdHh9aJGNs - YXNzbmFtZVgkY2xhc3Nlc11OU011dGFibGVEYXRhox4gIVZOU0RhdGFYTlNPYmplY3TS - HB0jJFxOU0NvbG9yU3BhY2WiJSFcTlNDb2xvclNwYWNl0hwdJyhXTlNDb2xvcqInIV8Q - D05TS2V5ZWRBcmNoaXZlctErLFRyb290gAEACAARABoAIwAtADIANwA/AEUAUABdAGMA - cACFAIwAtwDgAOIA5ADmAOsA8QDzAPUA+gECDU4NUA1VDWANaQ13DXsNgg2LDZANnQ2g - Da0Nsg26Db0Nzw3SDdcAAAAAAAACAQAAAAAAAAAtAAAAAAAAAAAAAAAAAAAN2Q== - - UseBoldFonts - - UseBrightBold - - blackColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg7JNIT2DkvUjPoO+F0s+AYY= - - blueColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmgyqcAj6DtOHsPoO+RUg/AYY= - - brightBlackColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg+ZzgjyDs44BPoNahyM+AYY= - - brightBlueColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg7yT4T6DEXcCP4POUAQ/AYY= - - brightCyanColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg7CIAT+Dj5oQP4N8ShA/AYY= - - brightGreenColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmgzyujT6DFZy2PoOYFsQ+AYY= - - brightMagentaColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmgxMjsj6D+uazPoNkyTc/AYY= - - brightRedColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmgyfkPT+D/15aPoMgl5Y9AYY= - - brightWhiteColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg49LfT+D0Dt1P4MGM10/AYY= - - brightYellowColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg1MTpj6DeHnQPoPQg+A+AYY= - - columnCount - 120 - cyanColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg4VRFj6DfyESP4PkZwY/AYY= - - greenColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg9lI5j6DIYkKP4PVjKU8AYY= - - magentaColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg/4CRz+DBTzdPYMgzt4+AYY= - - name - Solarized Dark - redColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg6i7UT+DUATePYMl2hA+AYY= - - rowCount - 37 - shellExitAction - 1 - type - Window Settings - whiteColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmgzqGaj+D2tdjP4NYPUw/AYY= - - yellowColour - - BAtzdHJlYW10eXBlZIHoA4QBQISEhAdOU0NvbG9yAISECE5TT2JqZWN0AIWEAWMBhARm - ZmZmg0DAJT+DB17vPoM4Y8A8AYY= - - - diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index bea9d89..14e17cb 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -5,26 +5,25 @@ filetype off call plug#begin('~/.vim/plugged') " Themes -Plug 'chriskempson/base16-vim' +Plug 'morhetz/gruvbox' Plug 'vim-airline/vim-airline' -Plug 'vim-airline/vim-airline-themes' " Common stuff -Plug 'jamessan/vim-gnupg' -Plug 'tpope/vim-fugitive' -Plug 'APZelos/blamer.nvim' -Plug 'vitapluvia/vim-gurl' -Plug 'unblevable/quick-scope' Plug 'tpope/vim-surround' Plug 'tpope/vim-commentary' Plug 'tpope/vim-repeat' -Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' +Plug 'tpope/vim-fugitive' " Git client +Plug 'APZelos/blamer.nvim' +Plug 'vitapluvia/vim-gurl' " Github URL to clipboard Plug 'editorconfig/editorconfig-vim' -Plug 'google/vim-searchindex' Plug 'junegunn/limelight.vim' Plug 'junegunn/goyo.vim' Plug 'godlygeek/tabular' -Plug 'mcchrish/nnn.vim' + +" Search and navigation +Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' +Plug 'unblevable/quick-scope' +Plug 'google/vim-searchindex' " Completion, lint, fix Plug 'autozimu/LanguageClient-neovim', {'branch': 'next', 'do': 'bash install.sh'} @@ -32,7 +31,9 @@ Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } Plug 'Shougo/neosnippet.vim' Plug 'Shougo/neosnippet-snippets' Plug 'jiangmiao/auto-pairs' -" Plug 'neovim/nvim-lsp' +" Plug 'neovim/nvim-lspconfig' +" Plug 'nvim-lua/completion-nvim' +" Plug 'nvim-lua/diagnostic-nvim' " Language specific plugins Plug 'hashivim/vim-terraform' @@ -45,9 +46,8 @@ call plug#end() filetype plugin indent on " Silent errors if colorscheme not exist -" silent! colorscheme base16-tomorrow-night +silent! colorscheme gruvbox set termguicolors -silent! colorscheme base16-gruvbox-dark-hard " Global syntax on @@ -140,9 +140,6 @@ nnoremap l :Lines nnoremap c :BCommits nnoremap g :Rg -" nnn -let g:nnn#layout = { 'left': '~20%' } - " Base64 decode selection vnoremap 64 c=system('base64 --decode', @") From b16fcb30bc9e9fbe40ad72c0b1c2e395b8ecac12 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Mon, 28 Sep 2020 11:47:13 +0300 Subject: [PATCH 219/230] disable tabline --- vim/vimrc.symlink | 3 --- 1 file changed, 3 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 14e17cb..3171d83 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -121,9 +121,6 @@ let g:blamer_delay = 2000 " rust.vim let g:rustfmt_autosave = 1 -" airline -let g:airline#extensions#tabline#enabled = 1 - " limelight let g:limelight_conceal_ctermfg = 'gray' let g:limelight_conceal_ctermfg = 240 From 37a477ce0ddc09cfdbfcc7bc8dea7ffbbd0f3ba3 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 29 Sep 2020 12:05:04 +0300 Subject: [PATCH 220/230] gruvbox everywhere --- tmux/tmux.conf.symlink | 47 ++++++++++++++++++++++-------------------- 1 file changed, 25 insertions(+), 22 deletions(-) diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index d9af4e8..ae517fa 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -4,13 +4,13 @@ set -g default-terminal "alacritty" # Alacritty set -g prefix C-a # change prefix to CTRL-a set -g mouse on # enable mouse set -s escape-time 10 # speed up -set -g base-index 1 # start window index at 1 -set -g renumber-windows on # auto renumber when tab is deleted set -g history-limit 100000 # large history set -g visual-bell on # enable visual bell set -g allow-rename off # disable window renaming -setw -g monitor-activity on # monitor window activity +set -g renumber-windows on # auto renumber when tab is deleted +set -g base-index 1 # start window index at 1 setw -g pane-base-index 1 # pane index at 1 +setw -g monitor-activity on # monitor window activity ## key bindings @@ -56,38 +56,41 @@ bind -r U resize-pane -U 35 bind / command-prompt "split-window 'exec man %%'" ## colors and status bar -set -g status-bg black -set -g status-fg cyan +set -g status-style bg=colour237,fg=colour223 # window status -set -g window-status-format " #I:#W:#F " -set -g window-status-current-format " #I:#W:#F " +setw -g window-status-format "#[fg=colour237,bg=colour239,noitalics]#[fg=colour223,bg=colour239] #I #[fg=colour223, bg=colour239] #W #[fg=colour239, bg=colour237, noitalics]" +set -g window-status-current-format "#[fg=colour237, bg=colour214, nobold, noitalics, nounderscore]#[fg=colour239, bg=colour214] #I #[fg=colour239, bg=colour214, bold] #W #[fg=colour214, bg=colour237, nobold, noitalics, nounderscore]" set -g window-status-separator "" -set -g window-status-current-style bg=cyan,fg=black -set -g window-status-activity-style bg=red,fg=black +setw -g window-status-style bg=colour214,fg=colour237 +setw -g window-status-activity-style bg=colour237,fg=colour248 +setw -g window-status-current-style bg=red,fg=colour237 +setw -g window-status-bell-style bg=colour167,fg=colour235 + # panes -set -g pane-border-style bg=default,fg=default -set -g pane-active-border-style bg=default,fg=cyan -set -g display-panes-colour red -set -g display-panes-active-colour red +set -g pane-border-style fg=colour237 +set -g pane-active-border-style fg=colour250 +set -g display-panes-active-colour colour250 +set -g display-panes-colour colour237 # left -set -g status-left-style bg=black,fg=green -set -g status-left-length 40 -set -g status-left "#[fg=yellow]#I #[fg=cyan]#P #[fg=white]» " +set -g status-justify "left" +set -g status-left-style none +set -g status-left-length 80 +set -g status-left "#[fg=colour248, bg=colour241] #I #P » #[fg=colour241, bg=colour237, nobold, noitalics, nounderscore] " # right -set -g status-right-style bg=black,fg=cyan -set -g status-right-length 200 -set -g status-right "[k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')] [%d/%m %H:%M]" +set -g status-right-style none +set -g status-right-length 80 +set -g status-right "#[fg=colour239,bg=colour237,nobold,nounderscore,noitalics]#[fg=colour246,bg=colour239] %d-%m %H:%M #[fg=colour248,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour237,bg=colour248] [k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')] " # clock mode -set -g clock-mode-colour red +set -g clock-mode-colour colour109 set -g clock-mode-style 24 # message -set -g message-style bg=default,fg=default +set -g message-style bg=colour239,fg=colour223 # command message -set -g message-command-style bg=default,fg=default +set -g message-command-style bg=colour239,fg=colour223 From e145de82c57cafcb408104da50e46152fff9e60a Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Tue, 29 Sep 2020 12:44:02 +0300 Subject: [PATCH 221/230] hide cmd recording --- vim/vimrc.symlink | 1 + 1 file changed, 1 insertion(+) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 3171d83..2e16db1 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -64,6 +64,7 @@ set modelines=5 set laststatus=2 set undofile set undodir=$HOME/.vim/undo +set noshowcmd set cursorline set cursorcolumn set autowrite From 99b3bc53f9bd4d49e88b51891415575838fea6d5 Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 4 Oct 2020 12:12:07 +0300 Subject: [PATCH 222/230] gruvbox tmux statusline --- git/gitconfig.symlink | 8 ++++---- newsboat/newsboat.symlink/urls | 1 - tmux/tmux.conf.symlink | 8 ++++---- vim/vimrc.symlink | 5 +++++ 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index 8e12b70..12d5121 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -1,6 +1,5 @@ [user] name = Or Elimelech - email = 0r3limelech@gmail.com signingkey = F097B3449561603A [github] user = vic3lord @@ -13,7 +12,8 @@ st = status -s edit = "!vim `git ls-files -m` -p" flux = log --author="flux" --oneline - ticket = "!open https://stackpulse.atlassian.net/browse/$(git branch --show-current)" + jira = "!open https://stackpulse.atlassian.net/browse/$(git branch --show-current)" + pr = "!gh pr" [push] default = simple [color] @@ -30,7 +30,7 @@ prompt = false [mergetool] path = nvim -[url "git@github.com:stackpulse"] - insteadOf = https://github.com/stackpulse [mergetool "vimdiff"] path = nvim +[url "git@github.com:stackpulse"] + insteadOf = https://github.com/stackpulse diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index df61148..f69f608 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -15,7 +15,6 @@ https://inessential.com/feed.json https://jvns.ca/atom.xml http://krebsonsecurity.com/feed http://undeadly.org/cgi?action=rss -https://www.omnigroup.com/blog/rss/ https://shapeof.com/feed.json https://eng.uber.com/feed/atom/ http://rachelbythebay.com/w/atom.xml diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index ae517fa..ea51219 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -59,8 +59,8 @@ bind / command-prompt "split-window 'exec man %%'" set -g status-style bg=colour237,fg=colour223 # window status -setw -g window-status-format "#[fg=colour237,bg=colour239,noitalics]#[fg=colour223,bg=colour239] #I #[fg=colour223, bg=colour239] #W #[fg=colour239, bg=colour237, noitalics]" -set -g window-status-current-format "#[fg=colour237, bg=colour214, nobold, noitalics, nounderscore]#[fg=colour239, bg=colour214] #I #[fg=colour239, bg=colour214, bold] #W #[fg=colour214, bg=colour237, nobold, noitalics, nounderscore]" +setw -g window-status-format "#[fg=colour237,bg=colour239,noitalics]#[fg=colour223,bg=colour239] #I #[fg=colour223,bg=colour239]#W #[fg=colour239, bg=colour237, noitalics] " +set -g window-status-current-format "#[fg=colour237,bg=colour214,nobold,noitalics,nounderscore]#[fg=colour239,bg=colour214] #I #[fg=colour239,bg=colour214,bold]#W #[fg=colour214,bg=colour237,nobold,noitalics,nounderscore] " set -g window-status-separator "" setw -g window-status-style bg=colour214,fg=colour237 setw -g window-status-activity-style bg=colour237,fg=colour248 @@ -78,12 +78,12 @@ set -g display-panes-colour colour237 set -g status-justify "left" set -g status-left-style none set -g status-left-length 80 -set -g status-left "#[fg=colour248, bg=colour241] #I #P » #[fg=colour241, bg=colour237, nobold, noitalics, nounderscore] " +set -g status-left "#[fg=colour248,bg=colour241] #I:#P #[fg=colour241,bg=colour237,nobold,noitalics,nounderscore] " # right set -g status-right-style none set -g status-right-length 80 -set -g status-right "#[fg=colour239,bg=colour237,nobold,nounderscore,noitalics]#[fg=colour246,bg=colour239] %d-%m %H:%M #[fg=colour248,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour237,bg=colour248] [k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')] " +set -g status-right "#[fg=colour239,bg=colour237,nobold,nounderscore,noitalics]#[fg=colour246,bg=colour239] %d-%m %H:%M#[fg=colour248,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour237,bg=colour248][k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')]" # clock mode set -g clock-mode-colour colour109 diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 2e16db1..a25b196 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -13,6 +13,7 @@ Plug 'tpope/vim-surround' Plug 'tpope/vim-commentary' Plug 'tpope/vim-repeat' Plug 'tpope/vim-fugitive' " Git client +Plug 'tpope/vim-unimpaired' Plug 'APZelos/blamer.nvim' Plug 'vitapluvia/vim-gurl' " Github URL to clipboard Plug 'editorconfig/editorconfig-vim' @@ -24,6 +25,7 @@ Plug 'godlygeek/tabular' Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' Plug 'unblevable/quick-scope' Plug 'google/vim-searchindex' +Plug 'mcchrish/nnn.vim' " Completion, lint, fix Plug 'autozimu/LanguageClient-neovim', {'branch': 'next', 'do': 'bash install.sh'} @@ -138,6 +140,9 @@ nnoremap l :Lines nnoremap c :BCommits nnoremap g :Rg +" nnn +let g:nnn#layout = { 'left': '~20%' } + " Base64 decode selection vnoremap 64 c=system('base64 --decode', @") From d9e1163515b9825943902ff9719f15738d23979f Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Sun, 4 Oct 2020 12:12:27 +0300 Subject: [PATCH 223/230] revert gitconfig email --- git/gitconfig.symlink | 1 + 1 file changed, 1 insertion(+) diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index 12d5121..3099491 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -1,5 +1,6 @@ [user] name = Or Elimelech + email = 0r3limelech@gmail.com signingkey = F097B3449561603A [github] user = vic3lord From d8618d03a3e7d0c73b8ae77979e14b7e14842e6a Mon Sep 17 00:00:00 2001 From: Or Elimelech <0r3limelech@gmail.com> Date: Thu, 19 Nov 2020 21:37:43 +0200 Subject: [PATCH 224/230] update --- contained/aliases.zsh | 1 + google/aliases.zsh | 2 + newsboat/newsboat.symlink/urls | 4 +- vim/vimrc.symlink | 76 ++++++++++++++++++---------------- 4 files changed, 45 insertions(+), 38 deletions(-) diff --git a/contained/aliases.zsh b/contained/aliases.zsh index 4b3c74f..8ed797c 100644 --- a/contained/aliases.zsh +++ b/contained/aliases.zsh @@ -10,3 +10,4 @@ alias mongodump='contained mongo:4 mongodump' alias mongorestore='contained mongo:4 mongorestore' alias crystal='contained crystallang/crystal crystal' alias promtool='contained --entrypoint promtool prom/prometheus' +alias goreleaser='contained -e GITHUB_TOKEN goreleaser/goreleaser' diff --git a/google/aliases.zsh b/google/aliases.zsh index fa05b73..55edf2b 100644 --- a/google/aliases.zsh +++ b/google/aliases.zsh @@ -10,3 +10,5 @@ function pcdn() { echo "invalidating path $urlpath for $name" gcloud compute url-maps invalidate-cdn-cache $name --path "$urlpath" } + +export CLOUDSDK_PYTHON=python3 diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index f69f608..a8e86d3 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -3,7 +3,6 @@ https://cate.blog/feed/ https://beckyhansmeyer.com/feed/ https://cloudblog.withgoogle.com/rss/ https://cloud.google.com/feeds/cloud-build-release-notes.xml -https://daringfireball.net/feeds/json https://derflounder.wordpress.com/feed http://ep00.epimg.net/rss/tags/noticias_mas_vistas.xml https://ericasadun.com/feed/ @@ -18,13 +17,12 @@ http://undeadly.org/cgi?action=rss https://shapeof.com/feed.json https://eng.uber.com/feed/atom/ http://rachelbythebay.com/w/atom.xml -http://xkcd.com/atom.xml https://github.com/alacritty/alacritty/releases.atom "Github releases" https://github.com/prometheus/alertmanager/releases.atom "Github releases" https://github.com/cockroachdb/cockroach/releases.atom "Github releases" https://github.com/weaveworks/flagger/releases.atom "Github releases" https://github.com/checkr/flagr/releases.atom "Github releases" -https://github.com/kolide/fleet/releases.atom "Github releases" +https://github.com/fleetdm/fleet/releases.atom "Github releases" https://github.com/markphelps/flipt/releases.atom "Github releases" https://github.com/fluxcd/flux/releases.atom "Github releases" https://github.com/grafana/grafana/releases.atom "Github releases" diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index a25b196..fddb21f 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -15,6 +15,7 @@ Plug 'tpope/vim-repeat' Plug 'tpope/vim-fugitive' " Git client Plug 'tpope/vim-unimpaired' Plug 'APZelos/blamer.nvim' +Plug 'f-person/git-blame.nvim' Plug 'vitapluvia/vim-gurl' " Github URL to clipboard Plug 'editorconfig/editorconfig-vim' Plug 'junegunn/limelight.vim' @@ -28,14 +29,12 @@ Plug 'google/vim-searchindex' Plug 'mcchrish/nnn.vim' " Completion, lint, fix -Plug 'autozimu/LanguageClient-neovim', {'branch': 'next', 'do': 'bash install.sh'} -Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } Plug 'Shougo/neosnippet.vim' Plug 'Shougo/neosnippet-snippets' Plug 'jiangmiao/auto-pairs' -" Plug 'neovim/nvim-lspconfig' -" Plug 'nvim-lua/completion-nvim' -" Plug 'nvim-lua/diagnostic-nvim' +Plug 'neovim/nvim-lspconfig' +Plug 'nvim-lua/completion-nvim' +Plug 'steelsojka/completion-buffers' " Language specific plugins Plug 'hashivim/vim-terraform' @@ -71,7 +70,8 @@ set cursorline set cursorcolumn set autowrite set backspace=2 -set completeopt-=preview " disable preview on completion +set completeopt=menuone,noinsert,noselect +set shortmess+=c " Search settings set incsearch " show search matches as you type @@ -87,40 +87,47 @@ map :cnext map :cprevious nnoremap a :cclose -" deoplete -let g:deoplete#enable_at_startup = 1 +" completion-nvim +let g:completion_auto_change_source = 1 +let g:completion_enable_snippet = 'Neosnippet' +autocmd BufEnter * lua require'completion'.on_attach() + +lua <' } }, + { mode = { '' } } +} +END +" nvim_lsp.terraformls.setup{} + +nnoremap lua vim.lsp.buf.declaration() +nnoremap gd lua vim.lsp.buf.definition() +nnoremap K lua vim.lsp.buf.hover() +nnoremap gD lua vim.lsp.buf.implementation() +nnoremap lua vim.lsp.buf.signature_help() +nnoremap 1gD lua vim.lsp.buf.type_definition() +nnoremap gr lua vim.lsp.buf.references() +nnoremap g0 lua vim.lsp.buf.document_symbol() +nnoremap gW lua vim.lsp.buf.workspace_symbol() +nnoremap lua vim.lsp.buf.rename() -" LanguageClient -let g:LanguageClient_serverCommands = {'go': ['gopls'], 'json': ['vscode-json-languageserver', '--stdio'], 'yaml': ['yaml-language-server', '--stdio']} - -nnoremap K :call LanguageClient#textDocument_hover() -nnoremap gd :call LanguageClient#textDocument_definition() -nnoremap gr :call LanguageClient#textDocument_references() -nnoremap :call LanguageClient#textDocument_rename() - -" lua << EOF -" require'nvim_lsp'.gopls.setup{} -" EOF - -" nnoremap gd lua vim.lsp.buf.declaration() -" nnoremap lua vim.lsp.buf.definition() -" nnoremap K lua vim.lsp.buf.hover() -" nnoremap gD lua vim.lsp.buf.implementation() -" nnoremap lua vim.lsp.buf.signature_help() -" nnoremap 1gD lua vim.lsp.buf.type_definition() -" nnoremap gr lua vim.lsp.buf.references() -" nnoremap g0 lua vim.lsp.buf.document_symbol() -" nnoremap gW lua vim.lsp.buf.workspace_symbol() " neosnippet imap (neosnippet_expand_or_jump) smap (neosnippet_expand_or_jump) xmap (neosnippet_expand_target) -" blamer.nvim -let g:blamer_enabled = 1 -let g:blamer_delay = 2000 - " rust.vim let g:rustfmt_autosave = 1 @@ -151,5 +158,4 @@ autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab -autocmd BufWritePre *.go :call LanguageClient#textDocument_formatting_sync() -" autocmd BufWritePost *.go lua vim.lsp.buf.formatting() +autocmd BufWritePost *.go lua vim.lsp.buf.formatting() From de8869d8be1f34a44956a1b5d78202a7e20ecdb6 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 3 May 2021 15:05:15 +0300 Subject: [PATCH 225/230] update --- Brewfile | 4 ++- contained/aliases.zsh | 1 + fzf/fzf.zsh | 4 +++ newsboat/newsboat.symlink/cache.db.lock | 1 + newsboat/newsboat.symlink/config | 4 +-- newsboat/newsboat.symlink/urls | 20 +++--------- tmux/statusline/nowplaying.script | 21 ++++++++++++ tmux/tmux.conf.symlink | 5 ++- tmux/tmux.zsh | 7 +--- vim/vimrc.symlink | 43 +++++++++++++++++++++++++ 10 files changed, 85 insertions(+), 25 deletions(-) create mode 100644 newsboat/newsboat.symlink/cache.db.lock create mode 100755 tmux/statusline/nowplaying.script diff --git a/Brewfile b/Brewfile index 13fbee5..ab21036 100644 --- a/Brewfile +++ b/Brewfile @@ -9,6 +9,7 @@ brew 'autojump' brew 'elixir' brew 'ffmpeg' brew 'fzf' +brew 'bat' brew 'git' brew 'gnupg2' brew 'go' @@ -28,8 +29,8 @@ brew 'neovim' brew 'newsboat' brew 'nmap' brew 'node' -brew 'osquery' brew 'protoc-gen-go' +brew 'protoc-gen-go-grpc' brew 'qpdf' brew 'reattach-to-user-namespace' brew 'ripgrep' @@ -45,6 +46,7 @@ brew 'nnn' # Casks cask 'alacritty' +cask 'osquery' cask 'docker' cask 'firefox' cask 'google-chrome' diff --git a/contained/aliases.zsh b/contained/aliases.zsh index 8ed797c..55b12f9 100644 --- a/contained/aliases.zsh +++ b/contained/aliases.zsh @@ -11,3 +11,4 @@ alias mongorestore='contained mongo:4 mongorestore' alias crystal='contained crystallang/crystal crystal' alias promtool='contained --entrypoint promtool prom/prometheus' alias goreleaser='contained -e GITHUB_TOKEN goreleaser/goreleaser' +alias stackpulse='contained us-docker.pkg.dev/stackpulse/public/cli' diff --git a/fzf/fzf.zsh b/fzf/fzf.zsh index fe57a9e..7e8d202 100644 --- a/fzf/fzf.zsh +++ b/fzf/fzf.zsh @@ -4,6 +4,10 @@ source "/usr/local/opt/fzf/shell/key-bindings.zsh" export FZF_TMUX=1 # Solarized dark +# export FZF_DEFAULT_OPTS=" +# --color=bg+:#3c3836,bg:#32302f,spinner:#fb4934,hl:#928374,fg:#ebdbb2,header:#928374,info:#8ec07c,pointer:#fb4934,marker:#fb4934,fg+:#ebdbb2,prompt:#fb4934,hl+:#fb4934' +# " + export FZF_DEFAULT_OPTS=" --color fg:#ebdbb2,bg:#282828,hl:#fabd2f,fg+:#ebdbb2,bg+:#3c3836,hl+:#fabd2f --color info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54 diff --git a/newsboat/newsboat.symlink/cache.db.lock b/newsboat/newsboat.symlink/cache.db.lock new file mode 100644 index 0000000..39dc111 --- /dev/null +++ b/newsboat/newsboat.symlink/cache.db.lock @@ -0,0 +1 @@ +20941 \ No newline at end of file diff --git a/newsboat/newsboat.symlink/config b/newsboat/newsboat.symlink/config index cea433c..84eef7e 100644 --- a/newsboat/newsboat.symlink/config +++ b/newsboat/newsboat.symlink/config @@ -1,6 +1,6 @@ # Reload settings auto-reload yes -reload-time 120 +reload-time 600 # News settings max-items 20 @@ -26,7 +26,7 @@ bind-key o open-in-browser-and-mark-read bind-key O open-in-browser bind-key o open-in-browser article -# Solarized dark +# # Solarized dark color background default default color listnormal default default color listfocus white black diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index a8e86d3..8bac2da 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -4,12 +4,10 @@ https://beckyhansmeyer.com/feed/ https://cloudblog.withgoogle.com/rss/ https://cloud.google.com/feeds/cloud-build-release-notes.xml https://derflounder.wordpress.com/feed -http://ep00.epimg.net/rss/tags/noticias_mas_vistas.xml https://ericasadun.com/feed/ https://engineering.fb.com/feed/ https://blog.filippo.io/rss/ http://google-opensource.blogspot.com/atom.xml -https://www.hashicorp.com/feed.xml https://inessential.com/feed.json https://jvns.ca/atom.xml http://krebsonsecurity.com/feed @@ -17,26 +15,18 @@ http://undeadly.org/cgi?action=rss https://shapeof.com/feed.json https://eng.uber.com/feed/atom/ http://rachelbythebay.com/w/atom.xml -https://github.com/alacritty/alacritty/releases.atom "Github releases" -https://github.com/prometheus/alertmanager/releases.atom "Github releases" + +# Vlogs / Podcasts +http://www.youtube.com/feeds/videos.xml?channel_id=UC_BzFbxG2za3bp5NRRRXJSw podcasts vlogs + +# Github releases https://github.com/cockroachdb/cockroach/releases.atom "Github releases" -https://github.com/weaveworks/flagger/releases.atom "Github releases" -https://github.com/checkr/flagr/releases.atom "Github releases" https://github.com/fleetdm/fleet/releases.atom "Github releases" -https://github.com/markphelps/flipt/releases.atom "Github releases" -https://github.com/fluxcd/flux/releases.atom "Github releases" -https://github.com/grafana/grafana/releases.atom "Github releases" https://github.com/imgproxy/imgproxy/releases.atom "Github releases" https://github.com/kubernetes/kube-state-metrics/releases.atom "Github releases" https://github.com/kubernetes/kubernetes/releases.atom "Github releases" -https://github.com/linkerd/linkerd2/releases.atom "Github releases" -https://github.com/neovim/neovim/releases.atom "Github releases" https://github.com/kubernetes/ingress-nginx/releases.atom "Github releases" https://github.com/hashicorp/nomad/releases.atom "Github releases" -https://github.com/prometheus/prometheus/releases.atom "Github releases" https://github.com/GoogleCloudPlatform/skaffold/releases.atom "Github releases" -https://github.com/hashicorp/terraform/releases.atom "Github releases" https://github.com/terraform-providers/terraform-provider-google/releases.atom "Github releases" https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom "Github releases" -https://github.com/improbable-eng/thanos/releases.atom "Github releases" -https://github.com/hashicorp/vault/releases.atom "Github releases" diff --git a/tmux/statusline/nowplaying.script b/tmux/statusline/nowplaying.script new file mode 100755 index 0000000..40110b0 --- /dev/null +++ b/tmux/statusline/nowplaying.script @@ -0,0 +1,21 @@ +#!/usr/bin/env osascript + +tell application "System Events" + set process_list to (name of every process) +end tell + +if process_list contains "Music" then + tell application "Music" + if player state is playing then + set track_name to name of current track + set artist_name to artist of current track + set trim_length to 25 + set now_playing to artist_name & " - " & track_name + if length of now_playing is less than trim_length then + set now_playing_trim to now_playing + else + set now_playing_trim to characters 1 thru trim_length of now_playing as string + end if + end if + end tell +end if diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index ea51219..b9ab528 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -1,6 +1,8 @@ ## global config set -g default-shell $SHELL # zsh -set -g default-terminal "alacritty" # Alacritty +# set -g default-terminal "alacritty" # Alacritty +set -g default-terminal "screen-256color" # Alacritty +set-option -sa terminal-overrides ',alacritty:RGB' set -g prefix C-a # change prefix to CTRL-a set -g mouse on # enable mouse set -s escape-time 10 # speed up @@ -9,6 +11,7 @@ set -g visual-bell on # enable visual bell set -g allow-rename off # disable window renaming set -g renumber-windows on # auto renumber when tab is deleted set -g base-index 1 # start window index at 1 +set -g focus-events on setw -g pane-base-index 1 # pane index at 1 setw -g monitor-activity on # monitor window activity diff --git a/tmux/tmux.zsh b/tmux/tmux.zsh index 398896f..78ee18a 100644 --- a/tmux/tmux.zsh +++ b/tmux/tmux.zsh @@ -2,11 +2,6 @@ if [[ ! $TERM =~ screen ]] && [ -z $TMUX ] then if which tmux > /dev/null 2>&1 then - if tmux has-session -t $USER 2>/dev/null - then - tmux attach-session -t $USER - else - tmux new-session -s $USER - fi + tmux attach || tmux fi fi diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index fddb21f..6ade50a 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -35,6 +35,8 @@ Plug 'jiangmiao/auto-pairs' Plug 'neovim/nvim-lspconfig' Plug 'nvim-lua/completion-nvim' Plug 'steelsojka/completion-buffers' +Plug 'ojroques/nvim-lspfuzzy' +Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} " Language specific plugins Plug 'hashivim/vim-terraform' @@ -99,6 +101,7 @@ lspconfig.jsonls.setup{} lspconfig.vuels.setup{} lspconfig.yamlls.setup{} lspconfig.tsserver.setup{} +lspconfig.bashls.setup{} vim.g.completion_chain_complete_list = { { complete_items = { 'lsp' } }, @@ -108,6 +111,45 @@ vim.g.completion_chain_complete_list = { { mode = { '' } }, { mode = { '' } } } + +require'nvim-treesitter.configs'.setup { + ensure_installed = "go", + highlight = { + enable = true, + }, +} + +require('lspfuzzy').setup{} + +function goimports(timeout_ms) + local context = { source = { organizeImports = true } } + vim.validate { context = { context, "t", true } } + + local params = vim.lsp.util.make_range_params() + params.context = context + + -- See the implementation of the textDocument/codeAction callback + -- (lua/vim/lsp/handler.lua) for how to do this properly. + local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, timeout_ms) + if not result or next(result) == nil then return end + local actions = result[1].result + if not actions then return end + local action = actions[1] + + -- textDocument/codeAction can return either Command[] or CodeAction[]. If it + -- is a CodeAction, it can have either an edit, a command or both. Edits + -- should be executed first. + if action.edit or type(action.command) == "table" then + if action.edit then + vim.lsp.util.apply_workspace_edit(action.edit) + end + if type(action.command) == "table" then + vim.lsp.buf.execute_command(action.command) + end + else + vim.lsp.buf.execute_command(action) + end +end END " nvim_lsp.terraformls.setup{} @@ -158,4 +200,5 @@ autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab +autocmd BufWritePre *.go lua goimports(1000) autocmd BufWritePost *.go lua vim.lsp.buf.formatting() From bf16973a4c8d68eb2fdc8670859d292815554576 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Thu, 14 Oct 2021 14:02:23 +0300 Subject: [PATCH 226/230] up2date --- Brewfile | 8 +- bat/bat.zsh | 1 + contained/aliases.zsh | 1 - flux/completion.zsh | 4 + git/gitconfig.symlink | 9 +- go/go.zsh | 2 +- kubernetes/completion.zsh | 6 + newsboat/newsboat.symlink/cache.db.lock | 1 - newsboat/newsboat.symlink/urls | 15 +- system/autojump.zsh | 1 - vim/vimrc.symlink | 102 ++++---- zoxide/zoxide.zsh | 2 + zsh/_stackpulse | 314 ------------------------ 13 files changed, 82 insertions(+), 384 deletions(-) create mode 100644 bat/bat.zsh create mode 100644 flux/completion.zsh delete mode 100644 newsboat/newsboat.symlink/cache.db.lock delete mode 100644 system/autojump.zsh create mode 100644 zoxide/zoxide.zsh delete mode 100644 zsh/_stackpulse diff --git a/Brewfile b/Brewfile index ab21036..240a08a 100644 --- a/Brewfile +++ b/Brewfile @@ -5,7 +5,7 @@ tap 'homebrew/services' # Brews brew 'ansible' -brew 'autojump' +brew 'zoxide' brew 'elixir' brew 'ffmpeg' brew 'fzf' @@ -24,6 +24,7 @@ brew 'jq' brew 'kubectl' brew 'mercurial' brew 'minikube' +brew 'hyperkit' brew 'mkcert' brew 'neovim' brew 'newsboat' @@ -43,13 +44,14 @@ brew 'vault' brew 'watch' brew 'youtube-dl' brew 'nnn' +brew 'k3d' +brew 'k6' # Casks cask 'alacritty' cask 'osquery' -cask 'docker' cask 'firefox' -cask 'google-chrome' +cask 'brave-browser' cask 'google-cloud-sdk' cask 'iina' cask 'netnewswire' diff --git a/bat/bat.zsh b/bat/bat.zsh new file mode 100644 index 0000000..7d74716 --- /dev/null +++ b/bat/bat.zsh @@ -0,0 +1 @@ +export BAT_THEME=gruvbox-dark diff --git a/contained/aliases.zsh b/contained/aliases.zsh index 55b12f9..8ed797c 100644 --- a/contained/aliases.zsh +++ b/contained/aliases.zsh @@ -11,4 +11,3 @@ alias mongorestore='contained mongo:4 mongorestore' alias crystal='contained crystallang/crystal crystal' alias promtool='contained --entrypoint promtool prom/prometheus' alias goreleaser='contained -e GITHUB_TOKEN goreleaser/goreleaser' -alias stackpulse='contained us-docker.pkg.dev/stackpulse/public/cli' diff --git a/flux/completion.zsh b/flux/completion.zsh new file mode 100644 index 0000000..52a81f5 --- /dev/null +++ b/flux/completion.zsh @@ -0,0 +1,4 @@ +if which flux > /dev/null 2>&1 +then + source <(flux completion zsh) && compdef _flux flux +fi diff --git a/git/gitconfig.symlink b/git/gitconfig.symlink index 3099491..832230d 100644 --- a/git/gitconfig.symlink +++ b/git/gitconfig.symlink @@ -1,6 +1,6 @@ [user] name = Or Elimelech - email = 0r3limelech@gmail.com + email = vic3lord@users.noreply.github.com signingkey = F097B3449561603A [github] user = vic3lord @@ -11,10 +11,9 @@ co = checkout br = branch st = status -s - edit = "!vim `git ls-files -m` -p" + edit = !vim $(git ls-files -m) -p flux = log --author="flux" --oneline - jira = "!open https://stackpulse.atlassian.net/browse/$(git branch --show-current)" - pr = "!gh pr" + pr = !gh pr create -a @me -f [push] default = simple [color] @@ -33,5 +32,7 @@ path = nvim [mergetool "vimdiff"] path = nvim +[url "git@github.com:torqio"] + insteadOf = https://github.com/torqio [url "git@github.com:stackpulse"] insteadOf = https://github.com/stackpulse diff --git a/go/go.zsh b/go/go.zsh index 8c1fcc6..9336bad 100644 --- a/go/go.zsh +++ b/go/go.zsh @@ -1,3 +1,3 @@ export GOPATH=$HOME/.go export GOPROXY=https://proxy.golang.org,direct -export GOPRIVATE=github.com/stackpulse,stackpulse.dev +export GOPRIVATE=github.com/torqio,stackpulse.dev,torqio.dev diff --git a/kubernetes/completion.zsh b/kubernetes/completion.zsh index 78f39b7..59c5203 100644 --- a/kubernetes/completion.zsh +++ b/kubernetes/completion.zsh @@ -8,3 +8,9 @@ function __k { } compdef __k k + +# Minikube +if which minikube > /dev/null 2>&1 +then + source <(minikube completion zsh) +fi diff --git a/newsboat/newsboat.symlink/cache.db.lock b/newsboat/newsboat.symlink/cache.db.lock deleted file mode 100644 index 39dc111..0000000 --- a/newsboat/newsboat.symlink/cache.db.lock +++ /dev/null @@ -1 +0,0 @@ -20941 \ No newline at end of file diff --git a/newsboat/newsboat.symlink/urls b/newsboat/newsboat.symlink/urls index 8bac2da..2d0ca16 100644 --- a/newsboat/newsboat.symlink/urls +++ b/newsboat/newsboat.symlink/urls @@ -15,18 +15,9 @@ http://undeadly.org/cgi?action=rss https://shapeof.com/feed.json https://eng.uber.com/feed/atom/ http://rachelbythebay.com/w/atom.xml +http://antirez.com/rss +https://feross.org/atom.xml +https://www.justuseemail.com/index.xml # Vlogs / Podcasts http://www.youtube.com/feeds/videos.xml?channel_id=UC_BzFbxG2za3bp5NRRRXJSw podcasts vlogs - -# Github releases -https://github.com/cockroachdb/cockroach/releases.atom "Github releases" -https://github.com/fleetdm/fleet/releases.atom "Github releases" -https://github.com/imgproxy/imgproxy/releases.atom "Github releases" -https://github.com/kubernetes/kube-state-metrics/releases.atom "Github releases" -https://github.com/kubernetes/kubernetes/releases.atom "Github releases" -https://github.com/kubernetes/ingress-nginx/releases.atom "Github releases" -https://github.com/hashicorp/nomad/releases.atom "Github releases" -https://github.com/GoogleCloudPlatform/skaffold/releases.atom "Github releases" -https://github.com/terraform-providers/terraform-provider-google/releases.atom "Github releases" -https://github.com/terraform-providers/terraform-provider-kubernetes/releases.atom "Github releases" diff --git a/system/autojump.zsh b/system/autojump.zsh deleted file mode 100644 index f0c7760..0000000 --- a/system/autojump.zsh +++ /dev/null @@ -1 +0,0 @@ -[ -f /usr/local/etc/profile.d/autojump.sh ] && . /usr/local/etc/profile.d/autojump.sh diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 6ade50a..7494e2d 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -6,7 +6,8 @@ call plug#begin('~/.vim/plugged') " Themes Plug 'morhetz/gruvbox' -Plug 'vim-airline/vim-airline' +" Plug 'vim-airline/vim-airline' +Plug 'hoob3rt/lualine.nvim' " Common stuff Plug 'tpope/vim-surround' @@ -24,19 +25,27 @@ Plug 'godlygeek/tabular' " Search and navigation Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' +Plug 'ojroques/nvim-lspfuzzy' " FZF navigation for LSP Plug 'unblevable/quick-scope' Plug 'google/vim-searchindex' Plug 'mcchrish/nnn.vim' " Completion, lint, fix +Plug 'jiangmiao/auto-pairs' Plug 'Shougo/neosnippet.vim' Plug 'Shougo/neosnippet-snippets' -Plug 'jiangmiao/auto-pairs' Plug 'neovim/nvim-lspconfig' +Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} + Plug 'nvim-lua/completion-nvim' Plug 'steelsojka/completion-buffers' -Plug 'ojroques/nvim-lspfuzzy' -Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} +Plug 'nvim-treesitter/completion-treesitter' + +" Plug 'hrsh7th/nvim-cmp' +" Plug 'hrsh7th/cmp-nvim-lsp' +" Plug 'hrsh7th/cmp-buffer' +" Plug 'hrsh7th/cmp-path' +" Plug 'notomo/cmp-neosnippet' " Language specific plugins Plug 'hashivim/vim-terraform' @@ -89,12 +98,20 @@ map :cnext map :cprevious nnoremap a :cclose +" Using tmux/screen with ctrl-a +nnoremap + +nnoremap - +xnoremap + g +xnoremap - g + " completion-nvim let g:completion_auto_change_source = 1 let g:completion_enable_snippet = 'Neosnippet' autocmd BufEnter * lua require'completion'.on_attach() lua <' } }, - { mode = { '' } } -} +require('lspfuzzy').setup{} require'nvim-treesitter.configs'.setup { - ensure_installed = "go", + -- ensure_installed = "all", highlight = { enable = true, }, } -require('lspfuzzy').setup{} +vim.g.completion_chain_complete_list = { + { complete_items = { 'lsp' } }, + { complete_items = { 'ts' } }, + -- { complete_items = { 'snippet' } }, + { complete_items = { 'buffers' } }, + { complete_items = { 'path' } }, + { mode = { '' } }, + { mode = { '' } } +} -function goimports(timeout_ms) - local context = { source = { organizeImports = true } } - vim.validate { context = { context, "t", true } } - - local params = vim.lsp.util.make_range_params() - params.context = context - - -- See the implementation of the textDocument/codeAction callback - -- (lua/vim/lsp/handler.lua) for how to do this properly. - local result = vim.lsp.buf_request_sync(0, "textDocument/codeAction", params, timeout_ms) - if not result or next(result) == nil then return end - local actions = result[1].result - if not actions then return end - local action = actions[1] - - -- textDocument/codeAction can return either Command[] or CodeAction[]. If it - -- is a CodeAction, it can have either an edit, a command or both. Edits - -- should be executed first. - if action.edit or type(action.command) == "table" then - if action.edit then - vim.lsp.util.apply_workspace_edit(action.edit) - end - if type(action.command) == "table" then - vim.lsp.buf.execute_command(action.command) - end - else - vim.lsp.buf.execute_command(action) - end -end +-- local cmp = require'cmp' +-- cmp.setup({ +-- snippet = { +-- expand = function(args) +-- -- unused due to neosnippet +-- end, +-- }, +-- mapping = { +-- [''] = cmp.mapping.scroll_docs(-4), +-- [''] = cmp.mapping.scroll_docs(4), +-- -- [''] = cmp.mapping.complete(), +-- [''] = cmp.mapping.close(), +-- [''] = cmp.mapping.confirm({ select = true }), +-- }, +-- sources = { +-- { name = 'nvim_lsp' }, +-- { name = 'buffer' }, +-- { name = 'neosnippet' }, +-- { name = 'path' }, +-- } +-- }) END -" nvim_lsp.terraformls.setup{} +" Neovim LSP nnoremap lua vim.lsp.buf.declaration() nnoremap gd lua vim.lsp.buf.definition() nnoremap K lua vim.lsp.buf.hover() @@ -164,7 +175,6 @@ nnoremap g0 lua vim.lsp.buf.document_symbol() nnoremap gW lua vim.lsp.buf.workspace_symbol() nnoremap lua vim.lsp.buf.rename() - " neosnippet imap (neosnippet_expand_or_jump) smap (neosnippet_expand_or_jump) @@ -199,6 +209,4 @@ vnoremap 64 c=system('base64 --decode', @") autocmd FileType ruby setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType yaml setlocal shiftwidth=2 sts=2 expandtab smartindent autocmd FileType html setlocal shiftwidth=2 sts=2 expandtab smartindent -autocmd BufNewFile,BufReadPost *.coffee setl shiftwidth=2 expandtab -autocmd BufWritePre *.go lua goimports(1000) autocmd BufWritePost *.go lua vim.lsp.buf.formatting() diff --git a/zoxide/zoxide.zsh b/zoxide/zoxide.zsh new file mode 100644 index 0000000..7db567a --- /dev/null +++ b/zoxide/zoxide.zsh @@ -0,0 +1,2 @@ +export _ZO_ECHO=1 +eval "$(zoxide init zsh)" diff --git a/zsh/_stackpulse b/zsh/_stackpulse deleted file mode 100644 index 0c39713..0000000 --- a/zsh/_stackpulse +++ /dev/null @@ -1,314 +0,0 @@ -#compdef _stackpulse stackpulse - - -function _stackpulse { - local -a commands - - _arguments -C \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' \ - "1: :->cmnds" \ - "*::arg:->args" - - case $state in - cmnds) - commands=( - "apply:Apply a configuration to a resource" - "cancel:Cancel a running resource" - "completion:Output shell completion code" - "delete:Delete resources" - "describe:Show details of a specific resource" - "get:Display resources" - "help:Help about any command" - "init:Initialize and configure SP CLI options" - "version:Print StackPulse CLI version information" - ) - _describe "command" commands - ;; - esac - - case "$words[1]" in - apply) - _stackpulse_apply - ;; - cancel) - _stackpulse_cancel - ;; - completion) - _stackpulse_completion - ;; - delete) - _stackpulse_delete - ;; - describe) - _stackpulse_describe - ;; - get) - _stackpulse_get - ;; - help) - _stackpulse_help - ;; - init) - _stackpulse_init - ;; - version) - _stackpulse_version - ;; - esac -} - - -function _stackpulse_apply { - local -a commands - - _arguments -C \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' \ - "1: :->cmnds" \ - "*::arg:->args" - - case $state in - cmnds) - commands=( - "integration:Apply settings for specific integration" - "playbook:Apply a configuration to playbooks" - "trigger:apply trigger configs" - ) - _describe "command" commands - ;; - esac - - case "$words[1]" in - integration) - _stackpulse_apply_integration - ;; - playbook) - _stackpulse_apply_playbook - ;; - trigger) - _stackpulse_apply_trigger - ;; - esac -} - -function _stackpulse_apply_integration { - _arguments \ - '(-f --file)'{-f,--file}'[JSON integration settings]:' \ - '(-i --integration)'{-i,--integration}'[integration name]:' \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - -function _stackpulse_apply_playbook { - _arguments \ - '(-d --dry-run)'{-d,--dry-run}'[Don'\''t actually apply, just validate resource]' \ - '(-f --file)'{-f,--file}'[file to use]:' \ - '(-i --integration)'{-i,--integration}'[integration name for the playbook]:' \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - -function _stackpulse_apply_trigger { - _arguments \ - '--dry-run[Don'\''t actually apply, just validate resource]' \ - '(-f --file)'{-f,--file}'[file to use]:' \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - - -function _stackpulse_cancel { - local -a commands - - _arguments -C \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' \ - "1: :->cmnds" \ - "*::arg:->args" - - case $state in - cmnds) - commands=( - "execution:cancels specific execution ID" - ) - _describe "command" commands - ;; - esac - - case "$words[1]" in - execution) - _stackpulse_cancel_execution - ;; - esac -} - -function _stackpulse_cancel_execution { - _arguments \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - -function _stackpulse_completion { - _arguments \ - '(-h --help)'{-h,--help}'[help for completion]' \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' \ - '1: :("bash" "zsh" "fish")' -} - - -function _stackpulse_delete { - local -a commands - - _arguments -C \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' \ - "1: :->cmnds" \ - "*::arg:->args" - - case $state in - cmnds) - commands=( - "trigger:" - ) - _describe "command" commands - ;; - esac - - case "$words[1]" in - trigger) - _stackpulse_delete_trigger - ;; - esac -} - -function _stackpulse_delete_trigger { - _arguments \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - - -function _stackpulse_describe { - local -a commands - - _arguments -C \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' \ - "1: :->cmnds" \ - "*::arg:->args" - - case $state in - cmnds) - commands=( - "integration:Show settings of a specific integration" - "playbook:Show details of a specific playbook" - ) - _describe "command" commands - ;; - esac - - case "$words[1]" in - integration) - _stackpulse_describe_integration - ;; - playbook) - _stackpulse_describe_playbook - ;; - esac -} - -function _stackpulse_describe_integration { - _arguments \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - -function _stackpulse_describe_playbook { - _arguments \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - - -function _stackpulse_get { - local -a commands - - _arguments -C \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' \ - "1: :->cmnds" \ - "*::arg:->args" - - case $state in - cmnds) - commands=( - "integrations:Display integrations" - "integrations:Display integrations" - "playbooks:Display playbooks" - "trigger:" - ) - _describe "command" commands - ;; - esac - - case "$words[1]" in - integrations) - _stackpulse_get_integrations - ;; - integrations) - _stackpulse_get_integrations - ;; - playbooks) - _stackpulse_get_playbooks - ;; - trigger) - _stackpulse_get_trigger - ;; - esac -} - -function _stackpulse_get_integrations { - _arguments \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - -function _stackpulse_get_integrations { - _arguments \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - -function _stackpulse_get_playbooks { - _arguments \ - '(-o --outpt)'{-o,--outpt}'[Output format. One of: [wide]]:' \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - -function _stackpulse_get_trigger { - _arguments \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - -function _stackpulse_help { - _arguments \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - -function _stackpulse_init { - _arguments \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - -function _stackpulse_version { - _arguments \ - '(-c --config)'{-c,--config}'[Path to config file]:' \ - '(-v --verbose)'{-v,--verbose}'[verbose output]' -} - From 531c419e4e4fdbdca3cde1fef4d7230cb3ec345f Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sat, 16 Oct 2021 13:26:55 +0300 Subject: [PATCH 227/230] fix --- Brewfile | 3 +- alacritty/alacritty.yml.symlink | 6 +-- tmux/tmux.conf.symlink | 2 +- vim/vimrc.symlink | 87 ++++++++++++++++----------------- 4 files changed, 46 insertions(+), 52 deletions(-) diff --git a/Brewfile b/Brewfile index 240a08a..7cb4ee5 100644 --- a/Brewfile +++ b/Brewfile @@ -2,6 +2,7 @@ tap 'homebrew/bundle' tap 'homebrew/core' tap 'homebrew/services' +tap 'homebrew/cask-fonts' # Brews brew 'ansible' @@ -54,9 +55,7 @@ cask 'firefox' cask 'brave-browser' cask 'google-cloud-sdk' cask 'iina' -cask 'netnewswire' cask 'tableplus' cask 'tor-browser' cask 'transmission' -cask 'virtualbox' cask 'whatsapp' diff --git a/alacritty/alacritty.yml.symlink b/alacritty/alacritty.yml.symlink index a5b2fd0..424f1e7 100644 --- a/alacritty/alacritty.yml.symlink +++ b/alacritty/alacritty.yml.symlink @@ -9,15 +9,15 @@ window: font: size: 16.0 normal: - family: SF Mono + family: Hack Nerd Font Mono style: Regular bold: - family: SF Mono + family: Hack Nerd Font Mono style: Bold italic: - family: SF Mono + family: Hack Nerd Font Mono style: Italic # Gruvbox dark diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index b9ab528..7587b05 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -86,7 +86,7 @@ set -g status-left "#[fg=colour248,bg=colour241] #I:#P #[fg=colour241,bg=colour2 # right set -g status-right-style none set -g status-right-length 80 -set -g status-right "#[fg=colour239,bg=colour237,nobold,nounderscore,noitalics]#[fg=colour246,bg=colour239] %d-%m %H:%M#[fg=colour248,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour237,bg=colour248][k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')]" +set -g status-right "#[fg=colour239,bg=colour237,nobold,nounderscore,noitalics]#[fg=colour246,bg=colour239] %d-%m %H:%M #[fg=colour248,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour237,bg=colour248] [k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')]" # clock mode set -g clock-mode-colour colour109 diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 7494e2d..729248f 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -6,8 +6,9 @@ call plug#begin('~/.vim/plugged') " Themes Plug 'morhetz/gruvbox' -" Plug 'vim-airline/vim-airline' Plug 'hoob3rt/lualine.nvim' +Plug 'onsails/lspkind-nvim' +Plug 'kyazdani42/nvim-web-devicons' " Common stuff Plug 'tpope/vim-surround' @@ -35,17 +36,13 @@ Plug 'jiangmiao/auto-pairs' Plug 'Shougo/neosnippet.vim' Plug 'Shougo/neosnippet-snippets' Plug 'neovim/nvim-lspconfig' +Plug 'ray-x/lsp_signature.nvim' Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} - -Plug 'nvim-lua/completion-nvim' -Plug 'steelsojka/completion-buffers' -Plug 'nvim-treesitter/completion-treesitter' - -" Plug 'hrsh7th/nvim-cmp' -" Plug 'hrsh7th/cmp-nvim-lsp' -" Plug 'hrsh7th/cmp-buffer' -" Plug 'hrsh7th/cmp-path' -" Plug 'notomo/cmp-neosnippet' +Plug 'hrsh7th/nvim-cmp' +Plug 'hrsh7th/cmp-nvim-lsp' +Plug 'hrsh7th/cmp-buffer' +Plug 'hrsh7th/cmp-path' +Plug 'notomo/cmp-neosnippet' " Language specific plugins Plug 'hashivim/vim-terraform' @@ -104,11 +101,6 @@ nnoremap - xnoremap + g xnoremap - g -" completion-nvim -let g:completion_auto_change_source = 1 -let g:completion_enable_snippet = 'Neosnippet' -autocmd BufEnter * lua require'completion'.on_attach() - lua <' } }, - { mode = { '' } } +local lspkind = require('lspkind') +local cmp = require'cmp' +cmp.setup({ + snippet = { + expand = function(args) + -- unused due to neosnippet + end, + }, + mapping = { + [''] = cmp.mapping.scroll_docs(-4), + [''] = cmp.mapping.scroll_docs(4), + -- [''] = cmp.mapping.complete(), + [''] = cmp.mapping.close(), + [''] = cmp.mapping.confirm({ select = true }), + }, + sources = { + { name = 'nvim_lsp' }, + { name = 'buffer' }, + { name = 'neosnippet' }, + { name = 'path' }, + }, + formatting = { + format = lspkind.cmp_format() + }, +}) + +require'lsp_signature'.setup { + bind = true, + doc_lines = 5, + floating_window = true, + hint_enable = false, + handler_opts = {border = "single"}, + extra_trigger_chars = {"(", ","}, } - --- local cmp = require'cmp' --- cmp.setup({ --- snippet = { --- expand = function(args) --- -- unused due to neosnippet --- end, --- }, --- mapping = { --- [''] = cmp.mapping.scroll_docs(-4), --- [''] = cmp.mapping.scroll_docs(4), --- -- [''] = cmp.mapping.complete(), --- [''] = cmp.mapping.close(), --- [''] = cmp.mapping.confirm({ select = true }), --- }, --- sources = { --- { name = 'nvim_lsp' }, --- { name = 'buffer' }, --- { name = 'neosnippet' }, --- { name = 'path' }, --- } --- }) END " Neovim LSP From 7282bc801df159baf50801ab0615fd480e279eaf Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sat, 16 Oct 2021 13:27:13 +0300 Subject: [PATCH 228/230] Add lock --- Brewfile.lock.json | 1512 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 1512 insertions(+) create mode 100644 Brewfile.lock.json diff --git a/Brewfile.lock.json b/Brewfile.lock.json new file mode 100644 index 0000000..8d268d4 --- /dev/null +++ b/Brewfile.lock.json @@ -0,0 +1,1512 @@ +{ + "entries": { + "tap": { + "homebrew/bundle": { + "revision": "3b280b116f481e3d596789b7ee93cb4cf5ad23b4" + }, + "homebrew/core": { + "revision": "0132f3f7f21d438beeb3abd8aa1f27e16df276c7" + }, + "homebrew/services": { + "revision": "c3f98cb20c1d7d9141ce51dfca72c3b989c76ecb" + }, + "homebrew/cask-fonts": { + "revision": "ecb015278651638cf40c369d98418441b5ff9fe6" + } + }, + "brew": { + "ansible": { + "version": "4.7.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/ansible/blobs/sha256:f9888e9e60650ac50bdb3bf34984afa0fcefa9fd6fa0ee338b63e78d49017f4d", + "sha256": "f9888e9e60650ac50bdb3bf34984afa0fcefa9fd6fa0ee338b63e78d49017f4d" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/ansible/blobs/sha256:b9b012852fa52e5599882adcb8a22c4783da711ef9fc049e69635f0b666cb9b5", + "sha256": "b9b012852fa52e5599882adcb8a22c4783da711ef9fc049e69635f0b666cb9b5" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/ansible/blobs/sha256:cb038c86497fe7b483d631b26b2ffd78e32c0b75abb26bbd7ce518a478a0e9d5", + "sha256": "cb038c86497fe7b483d631b26b2ffd78e32c0b75abb26bbd7ce518a478a0e9d5" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/ansible/blobs/sha256:b541bd942ec22af9dca190cdd685aac790321e8cecc9661e71c7ca1ef6cc4087", + "sha256": "b541bd942ec22af9dca190cdd685aac790321e8cecc9661e71c7ca1ef6cc4087" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/ansible/blobs/sha256:7cd4d9d8936e0c2fbfa89806e7ae65249e29d96ead68da9acf485b036f657d43", + "sha256": "7cd4d9d8936e0c2fbfa89806e7ae65249e29d96ead68da9acf485b036f657d43" + } + } + } + }, + "zoxide": { + "version": "0.7.7", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/zoxide/blobs/sha256:0aea21ce70cda5cafef9cb089b0a478ce7ebc7ba6efcbdae76743029cae4693c", + "sha256": "0aea21ce70cda5cafef9cb089b0a478ce7ebc7ba6efcbdae76743029cae4693c" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/zoxide/blobs/sha256:4105ea85bff355e1d200743c370cf1fa1711027117724a647e1f9c00d070b2f2", + "sha256": "4105ea85bff355e1d200743c370cf1fa1711027117724a647e1f9c00d070b2f2" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/zoxide/blobs/sha256:fddfc327e08b33e3e21e923300d88d1434422341e33b0c4c97727234626ac95a", + "sha256": "fddfc327e08b33e3e21e923300d88d1434422341e33b0c4c97727234626ac95a" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/zoxide/blobs/sha256:7fcf42d57714522557e3fec0de3bec943d493a853806232b201e0df34999412f", + "sha256": "7fcf42d57714522557e3fec0de3bec943d493a853806232b201e0df34999412f" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/zoxide/blobs/sha256:52f8eb2758daee62d735e3182ec42f2e2a330a1d43da8555d84c8702ae6a873a", + "sha256": "52f8eb2758daee62d735e3182ec42f2e2a330a1d43da8555d84c8702ae6a873a" + } + } + } + }, + "elixir": { + "version": "1.12.3", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/elixir/blobs/sha256:a853f176067849a6f5d5441a2ceda381d6b758065eddec2ba9f472a6cd6870e7", + "sha256": "a853f176067849a6f5d5441a2ceda381d6b758065eddec2ba9f472a6cd6870e7" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/elixir/blobs/sha256:cefbc6925f57d73b244c45c6cfb4c527b83b9c3f24d43035275d8690b50b16dc", + "sha256": "cefbc6925f57d73b244c45c6cfb4c527b83b9c3f24d43035275d8690b50b16dc" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/elixir/blobs/sha256:54af07dcdf6f41708570cb45e0eb5ef7a1658d90028ba8453f3e8cc5e1df8fcc", + "sha256": "54af07dcdf6f41708570cb45e0eb5ef7a1658d90028ba8453f3e8cc5e1df8fcc" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/elixir/blobs/sha256:d60b62c1e2cb43410169e748dc603ac34473064ebce70dbf3a397b227a1dc2f9", + "sha256": "d60b62c1e2cb43410169e748dc603ac34473064ebce70dbf3a397b227a1dc2f9" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/elixir/blobs/sha256:b327cc676b4893bfc2e2070e6ba5739028887488e1747a3584243938a73ba7ae", + "sha256": "b327cc676b4893bfc2e2070e6ba5739028887488e1747a3584243938a73ba7ae" + } + } + } + }, + "ffmpeg": { + "version": "4.4_2", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": "/opt/homebrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/ffmpeg/blobs/sha256:d603441a90e72b165e70ef1787b2045c6e969f077dcadd1529d04162fbd18ab3", + "sha256": "d603441a90e72b165e70ef1787b2045c6e969f077dcadd1529d04162fbd18ab3" + }, + "big_sur": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/ffmpeg/blobs/sha256:9da28933b9f1abc3b1cf92382d1a8ea051c98f9dd0f4ef47e8d37d2aa9a4769a", + "sha256": "9da28933b9f1abc3b1cf92382d1a8ea051c98f9dd0f4ef47e8d37d2aa9a4769a" + }, + "catalina": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/ffmpeg/blobs/sha256:3fcc129951906c60f6e2130131fde64e449bc562a605f64be74fc950cac930ea", + "sha256": "3fcc129951906c60f6e2130131fde64e449bc562a605f64be74fc950cac930ea" + }, + "mojave": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/ffmpeg/blobs/sha256:8becf08fae7806a6365b489c3dcde8f6f0ddb49a64e96386c2c190a15604a486", + "sha256": "8becf08fae7806a6365b489c3dcde8f6f0ddb49a64e96386c2c190a15604a486" + }, + "x86_64_linux": { + "cellar": "/home/linuxbrew/.linuxbrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/ffmpeg/blobs/sha256:303961f673338cc304e8a13daa7899cb807b6433be9a7bf78ceaed3fd48d5822", + "sha256": "303961f673338cc304e8a13daa7899cb807b6433be9a7bf78ceaed3fd48d5822" + } + } + } + }, + "fzf": { + "version": "0.27.3", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/fzf/blobs/sha256:950c2b25994b7cdbe3892d0145c4267832ff40659d2bfc5218d686d11b6a8d14", + "sha256": "950c2b25994b7cdbe3892d0145c4267832ff40659d2bfc5218d686d11b6a8d14" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/fzf/blobs/sha256:4eedbd23358ecd58646e57c4807ef72d50b3dc4e8409e1c493a69bee5b012271", + "sha256": "4eedbd23358ecd58646e57c4807ef72d50b3dc4e8409e1c493a69bee5b012271" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/fzf/blobs/sha256:4eedbd23358ecd58646e57c4807ef72d50b3dc4e8409e1c493a69bee5b012271", + "sha256": "4eedbd23358ecd58646e57c4807ef72d50b3dc4e8409e1c493a69bee5b012271" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/fzf/blobs/sha256:4eedbd23358ecd58646e57c4807ef72d50b3dc4e8409e1c493a69bee5b012271", + "sha256": "4eedbd23358ecd58646e57c4807ef72d50b3dc4e8409e1c493a69bee5b012271" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/fzf/blobs/sha256:f8e7ca3e75119871c3916e866fdf4349bf4fc29cd2b2120ff4e657186e89a0a4", + "sha256": "f8e7ca3e75119871c3916e866fdf4349bf4fc29cd2b2120ff4e657186e89a0a4" + } + } + } + }, + "bat": { + "version": "0.18.3", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/bat/blobs/sha256:6edd4db8dc910dde6552aadd68af8933d1cd4b8268a0fcdef5795294de59ca50", + "sha256": "6edd4db8dc910dde6552aadd68af8933d1cd4b8268a0fcdef5795294de59ca50" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/bat/blobs/sha256:1a075678316a795840e43db540d7465d106860c1db0153d2cabac285dca83fbb", + "sha256": "1a075678316a795840e43db540d7465d106860c1db0153d2cabac285dca83fbb" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/bat/blobs/sha256:0a8ce5ab853f1408966e23718b408e655b70b2d5d6c3b2ebdb0159eee389f6ef", + "sha256": "0a8ce5ab853f1408966e23718b408e655b70b2d5d6c3b2ebdb0159eee389f6ef" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/bat/blobs/sha256:c564416a4de6fd26eaf03029a1afd47edce0e49919d0fd2821cf3d870ee5f91f", + "sha256": "c564416a4de6fd26eaf03029a1afd47edce0e49919d0fd2821cf3d870ee5f91f" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/bat/blobs/sha256:f9d4d8521a1287dc2fb2408d590e6f113b62d5cb430add6ecb3531b856625ffa", + "sha256": "f9d4d8521a1287dc2fb2408d590e6f113b62d5cb430add6ecb3531b856625ffa" + } + } + } + }, + "git": { + "version": "2.33.1", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": "/opt/homebrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/git/blobs/sha256:4e8cc9c2b83d5c376f0342afa91ff4c73a1505ac9963dad06b44c23423fcebf8", + "sha256": "4e8cc9c2b83d5c376f0342afa91ff4c73a1505ac9963dad06b44c23423fcebf8" + }, + "big_sur": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/git/blobs/sha256:66e2ded73f2a3b13ac3369cd9416378307337959d3bd61a0c6297fed8456cb3c", + "sha256": "66e2ded73f2a3b13ac3369cd9416378307337959d3bd61a0c6297fed8456cb3c" + }, + "catalina": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/git/blobs/sha256:b3a7b591b8c990f4936a917ce17c697a5645e4c2cacc7ae3e0de417b5f5af6fd", + "sha256": "b3a7b591b8c990f4936a917ce17c697a5645e4c2cacc7ae3e0de417b5f5af6fd" + }, + "mojave": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/git/blobs/sha256:3fc2a3ac7e21325382bd1117081e068fe29206169f0e7b62d31c055012d976d0", + "sha256": "3fc2a3ac7e21325382bd1117081e068fe29206169f0e7b62d31c055012d976d0" + }, + "x86_64_linux": { + "cellar": "/home/linuxbrew/.linuxbrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/git/blobs/sha256:8e3b6532456c752e077639e42e9bbaa37a034191931ecc237bb99101920b04c3", + "sha256": "8e3b6532456c752e077639e42e9bbaa37a034191931ecc237bb99101920b04c3" + } + } + } + }, + "gnupg2": { + "version": "2.3.2", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": "/opt/homebrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/gnupg/blobs/sha256:941069d6ef19f59b24dfe2f8851fea635f679eb740a595ff0a74ac007181bc99", + "sha256": "941069d6ef19f59b24dfe2f8851fea635f679eb740a595ff0a74ac007181bc99" + }, + "big_sur": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/gnupg/blobs/sha256:ca228c2800845d8d0e020c3e3359201edc0bac8554cfc3a2e985617eb09b629a", + "sha256": "ca228c2800845d8d0e020c3e3359201edc0bac8554cfc3a2e985617eb09b629a" + }, + "catalina": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/gnupg/blobs/sha256:9d0e847588e735e9f1137b7ccfa73a9439a8653a6949d284e3192e6fb2fdf5a5", + "sha256": "9d0e847588e735e9f1137b7ccfa73a9439a8653a6949d284e3192e6fb2fdf5a5" + }, + "mojave": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/gnupg/blobs/sha256:a483dd421a3156007c163969705a617676c78e2780ed7bf9279cbcefc903b904", + "sha256": "a483dd421a3156007c163969705a617676c78e2780ed7bf9279cbcefc903b904" + }, + "x86_64_linux": { + "cellar": "/home/linuxbrew/.linuxbrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/gnupg/blobs/sha256:cb12c6aab9f508b977047bf4053047b3f48d010988760c53d4c728d78ba7dae9", + "sha256": "cb12c6aab9f508b977047bf4053047b3f48d010988760c53d4c728d78ba7dae9" + } + } + } + }, + "go": { + "version": "1.17.2", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": "/opt/homebrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/go/blobs/sha256:b0a1686c5c5ba668e78a97d66567e9d007f7d2a0c9b1a53e79841e3736d729e6", + "sha256": "b0a1686c5c5ba668e78a97d66567e9d007f7d2a0c9b1a53e79841e3736d729e6" + }, + "big_sur": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/go/blobs/sha256:01f50ff6dbea579b3b3e792751ec14ba90de1ac5fe09db03adf438558444ddfa", + "sha256": "01f50ff6dbea579b3b3e792751ec14ba90de1ac5fe09db03adf438558444ddfa" + }, + "catalina": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/go/blobs/sha256:cc6b0bff088b30b80afad3be3519af192e515d83c8928262114ca07e9bf34bd8", + "sha256": "cc6b0bff088b30b80afad3be3519af192e515d83c8928262114ca07e9bf34bd8" + }, + "mojave": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/go/blobs/sha256:a98bd1c5f1cae4907712126d9ea040680084e5fb9743f1d4160744fe3fe8861a", + "sha256": "a98bd1c5f1cae4907712126d9ea040680084e5fb9743f1d4160744fe3fe8861a" + }, + "x86_64_linux": { + "cellar": "/home/linuxbrew/.linuxbrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/go/blobs/sha256:aa5fbcd2c12be4e08d5edbcbb5eb8a8859c48ecd036c697d2d83b62d410dbd8c", + "sha256": "aa5fbcd2c12be4e08d5edbcbb5eb8a8859c48ecd036c697d2d83b62d410dbd8c" + } + } + } + }, + "graphviz": { + "version": "2.49.1", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": "/opt/homebrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/graphviz/blobs/sha256:38a15a4c92697a5687a01e353a9ef2a4bdcf9985a4c5855c00286a0a503b27aa", + "sha256": "38a15a4c92697a5687a01e353a9ef2a4bdcf9985a4c5855c00286a0a503b27aa" + }, + "big_sur": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/graphviz/blobs/sha256:8b19b59f00d6ade978359b8dede760da5b3245ad060f924cef32e4d7f01d2363", + "sha256": "8b19b59f00d6ade978359b8dede760da5b3245ad060f924cef32e4d7f01d2363" + }, + "catalina": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/graphviz/blobs/sha256:f8519ea03d5b71c213bbf0b637eb143ab542039df80bc2941de5aa9c01fd39f2", + "sha256": "f8519ea03d5b71c213bbf0b637eb143ab542039df80bc2941de5aa9c01fd39f2" + }, + "mojave": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/graphviz/blobs/sha256:503c919bc6fc3b24dd6a777ec21c213ca23a6e32b82247a474b0f222a465378a", + "sha256": "503c919bc6fc3b24dd6a777ec21c213ca23a6e32b82247a474b0f222a465378a" + }, + "x86_64_linux": { + "cellar": "/home/linuxbrew/.linuxbrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/graphviz/blobs/sha256:473c98095450dcbc1e68730da7bf9f817db5b0438850e6eb3547ac921c21ba27", + "sha256": "473c98095450dcbc1e68730da7bf9f817db5b0438850e6eb3547ac921c21ba27" + } + } + } + }, + "grpc": { + "version": "1.39.1", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/grpc/blobs/sha256:fb85b55af2a6d56c790cd776ca2ddb5053422f97eec2cb0973f1eaec3eb2ce55", + "sha256": "fb85b55af2a6d56c790cd776ca2ddb5053422f97eec2cb0973f1eaec3eb2ce55" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/grpc/blobs/sha256:e75d097487de766329a3b867e98bc2715c1887147e80517285f2e2a68526c09f", + "sha256": "e75d097487de766329a3b867e98bc2715c1887147e80517285f2e2a68526c09f" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/grpc/blobs/sha256:bb1674f7190928d0c4557367ea9ae93ce54f06ced9dbf6686de62832919e9186", + "sha256": "bb1674f7190928d0c4557367ea9ae93ce54f06ced9dbf6686de62832919e9186" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/grpc/blobs/sha256:9bbf5282420979603cb7902b043a2e905296f03d6b29985b953f0849ffc080fd", + "sha256": "9bbf5282420979603cb7902b043a2e905296f03d6b29985b953f0849ffc080fd" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/grpc/blobs/sha256:8218c936d63155eb7c2240fc312db60d7ba2fd13cb30ac3d747cce9b6804b507", + "sha256": "8218c936d63155eb7c2240fc312db60d7ba2fd13cb30ac3d747cce9b6804b507" + } + } + } + }, + "hey": { + "version": "0.1.4", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hey/blobs/sha256:45175c81eb26b54fcf4b865e97a3a075ea12a85657884aaf78d2626ee07232fe", + "sha256": "45175c81eb26b54fcf4b865e97a3a075ea12a85657884aaf78d2626ee07232fe" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hey/blobs/sha256:4a743f02a2abfd8fa424bb9ddc8b65ba3633f6b3b7b216da6763a5fe95c10501", + "sha256": "4a743f02a2abfd8fa424bb9ddc8b65ba3633f6b3b7b216da6763a5fe95c10501" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hey/blobs/sha256:972cc3f6a520467db11ab9cef3aa5311c6813c203c23bb0173363a00a45cfc07", + "sha256": "972cc3f6a520467db11ab9cef3aa5311c6813c203c23bb0173363a00a45cfc07" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hey/blobs/sha256:af9934ac04900c142879a97bcc9b376e25f4928239c0bb9bd68fdad0e4174ead", + "sha256": "af9934ac04900c142879a97bcc9b376e25f4928239c0bb9bd68fdad0e4174ead" + }, + "high_sierra": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hey/blobs/sha256:67fbe5a4b3574ea9025607e02b56c49572d4f184bcf1ae49fb5cb3eb05ede26c", + "sha256": "67fbe5a4b3574ea9025607e02b56c49572d4f184bcf1ae49fb5cb3eb05ede26c" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hey/blobs/sha256:e5454552b0eb8d412645a0a5211b0566a41d13fc238149177bfddea36ace56e4", + "sha256": "e5454552b0eb8d412645a0a5211b0566a41d13fc238149177bfddea36ace56e4" + } + } + } + }, + "gh": { + "version": "2.1.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/gh/blobs/sha256:0c8a4aa91eb91928477e578168a32866098bd9d4dbca17caf39cf1b921925039", + "sha256": "0c8a4aa91eb91928477e578168a32866098bd9d4dbca17caf39cf1b921925039" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/gh/blobs/sha256:62c1fa920d386d9cf5893643830319abad097e39d798e966c102c64a79f2b859", + "sha256": "62c1fa920d386d9cf5893643830319abad097e39d798e966c102c64a79f2b859" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/gh/blobs/sha256:002847accc5930067182092649b6976cbbae09e84c70d9389f25bde1b9dd2ff3", + "sha256": "002847accc5930067182092649b6976cbbae09e84c70d9389f25bde1b9dd2ff3" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/gh/blobs/sha256:242f3cdea693b1f5eb0896120367d9c2db1051b8b475ae48571f9479bba066ed", + "sha256": "242f3cdea693b1f5eb0896120367d9c2db1051b8b475ae48571f9479bba066ed" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/gh/blobs/sha256:0df8a2a2e73cedb7775e4c2b38edf81ff28424e708812b1c471179723c82b08e", + "sha256": "0df8a2a2e73cedb7775e4c2b38edf81ff28424e708812b1c471179723c82b08e" + } + } + } + }, + "hugo": { + "version": "0.88.1", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hugo/blobs/sha256:b815e48af3443fc123ce4d874cf038c25b798ea1944c960618ba3f036020e631", + "sha256": "b815e48af3443fc123ce4d874cf038c25b798ea1944c960618ba3f036020e631" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hugo/blobs/sha256:b6afb880f736b66dd33aa5cdb18e413c9e0a80e21b4c86c6812d6a90876ba5ac", + "sha256": "b6afb880f736b66dd33aa5cdb18e413c9e0a80e21b4c86c6812d6a90876ba5ac" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hugo/blobs/sha256:9f64eca55c2fcd01c1adf31652f36bcd1ba9c2999d484529cc90b333934f211c", + "sha256": "9f64eca55c2fcd01c1adf31652f36bcd1ba9c2999d484529cc90b333934f211c" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hugo/blobs/sha256:990e77d348ce7de0fc82893aaa039148b10543f61b872d4f89bfbb540bdecc77", + "sha256": "990e77d348ce7de0fc82893aaa039148b10543f61b872d4f89bfbb540bdecc77" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hugo/blobs/sha256:e1d3cd5fb7a2510a25b2c8cd8814b4f289b1cb51b563326d71ba9f7808063dd0", + "sha256": "e1d3cd5fb7a2510a25b2c8cd8814b4f289b1cb51b563326d71ba9f7808063dd0" + } + } + } + }, + "ipcalc": { + "version": "0.41", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "all": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/ipcalc/blobs/sha256:fdb1f6c264ecbd824e0a514704000f46825e6c092487cdd467c964f12d3bf960", + "sha256": "fdb1f6c264ecbd824e0a514704000f46825e6c092487cdd467c964f12d3bf960" + } + } + } + }, + "iperf": { + "version": "2.1.4", + "bottle": { + "rebuild": 1, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/iperf/blobs/sha256:812372e578bb83c3eb62ecb76cfd87c839207e9411de51ea496ac2bb09523827", + "sha256": "812372e578bb83c3eb62ecb76cfd87c839207e9411de51ea496ac2bb09523827" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/iperf/blobs/sha256:16d9f9d50980aacc22fac001af878095e3efbaf582a04f52da93167473cab36c", + "sha256": "16d9f9d50980aacc22fac001af878095e3efbaf582a04f52da93167473cab36c" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/iperf/blobs/sha256:9fb7611a6dc048ab405a7c106aaec36706d23d0a7b6f355efbdc668fab35eb4f", + "sha256": "9fb7611a6dc048ab405a7c106aaec36706d23d0a7b6f355efbdc668fab35eb4f" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/iperf/blobs/sha256:b2dd31430255e3759cec63173a58f5dbad1289c7c95358ed4c11d25e4ef52d1b", + "sha256": "b2dd31430255e3759cec63173a58f5dbad1289c7c95358ed4c11d25e4ef52d1b" + } + } + } + }, + "jq": { + "version": "1.6", + "bottle": { + "rebuild": 1, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/jq/blobs/sha256:674b3ae41c399f1e8e44c271b0e6909babff9fcd2e04a2127d25e2407ea4dd33", + "sha256": "674b3ae41c399f1e8e44c271b0e6909babff9fcd2e04a2127d25e2407ea4dd33" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/jq/blobs/sha256:bf0f8577632af7b878b6425476f5b1ab9c3bf66d65affb0c455048a173a0b6bf", + "sha256": "bf0f8577632af7b878b6425476f5b1ab9c3bf66d65affb0c455048a173a0b6bf" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/jq/blobs/sha256:820a3c85fcbb63088b160c7edf125d7e55fc2c5c1d51569304499c9cc4b89ce8", + "sha256": "820a3c85fcbb63088b160c7edf125d7e55fc2c5c1d51569304499c9cc4b89ce8" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/jq/blobs/sha256:71f0e76c5b22e5088426c971d5e795fe67abee7af6c2c4ae0cf4c0eb98ed21ff", + "sha256": "71f0e76c5b22e5088426c971d5e795fe67abee7af6c2c4ae0cf4c0eb98ed21ff" + }, + "high_sierra": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/jq/blobs/sha256:dffcffa4ea13e8f0f2b45c5121e529077e135ae9a47254c32182231662ee9b72", + "sha256": "dffcffa4ea13e8f0f2b45c5121e529077e135ae9a47254c32182231662ee9b72" + }, + "sierra": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/jq/blobs/sha256:bb4d19dc026c2d72c53eed78eaa0ab982e9fcad2cd2acc6d13e7a12ff658e877", + "sha256": "bb4d19dc026c2d72c53eed78eaa0ab982e9fcad2cd2acc6d13e7a12ff658e877" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/jq/blobs/sha256:2beea2c2c372ccf1081e9a5233fc3020470803254284aeecc071249d76b62338", + "sha256": "2beea2c2c372ccf1081e9a5233fc3020470803254284aeecc071249d76b62338" + } + } + } + }, + "kubectl": { + "version": "1.22.2", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/kubernetes-cli/blobs/sha256:172cf98338a33a49f1526596df4c7edbad42ef4a48ae2b3da93902bc6ab06dec", + "sha256": "172cf98338a33a49f1526596df4c7edbad42ef4a48ae2b3da93902bc6ab06dec" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/kubernetes-cli/blobs/sha256:2c7bf6d0518f32822dabfe86c0c7a6fd54130024c2e632a0182e70ca4b3d1ab9", + "sha256": "2c7bf6d0518f32822dabfe86c0c7a6fd54130024c2e632a0182e70ca4b3d1ab9" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/kubernetes-cli/blobs/sha256:531bce5f3d91144060aad50b10db2742e40dc93db084d6dbfd4b4bb0a27788ab", + "sha256": "531bce5f3d91144060aad50b10db2742e40dc93db084d6dbfd4b4bb0a27788ab" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/kubernetes-cli/blobs/sha256:5a36702c6abeb05683b5c0dc57255c7dfcc49191c0bae0b35b29f62ccb8c71dd", + "sha256": "5a36702c6abeb05683b5c0dc57255c7dfcc49191c0bae0b35b29f62ccb8c71dd" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/kubernetes-cli/blobs/sha256:583a1b3a8a0cf82458861dbd683087d58f56fede759db2c34984459388a305d9", + "sha256": "583a1b3a8a0cf82458861dbd683087d58f56fede759db2c34984459388a305d9" + } + } + } + }, + "mercurial": { + "version": "5.9.2", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": "/opt/homebrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/mercurial/blobs/sha256:22dc7c5e8c4ccbde2cbb38a48757874ef550f07ed7b230437ce3bcb5686e3553", + "sha256": "22dc7c5e8c4ccbde2cbb38a48757874ef550f07ed7b230437ce3bcb5686e3553" + }, + "big_sur": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/mercurial/blobs/sha256:63e0279fe801aeed18005bb6b642eaea4f793905acc70954e8f4fbeddd328f7f", + "sha256": "63e0279fe801aeed18005bb6b642eaea4f793905acc70954e8f4fbeddd328f7f" + }, + "catalina": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/mercurial/blobs/sha256:b96bf65ccd92c289ba9cbd26bb664cc655d72ef17e42c7b47cda64b432aa13fd", + "sha256": "b96bf65ccd92c289ba9cbd26bb664cc655d72ef17e42c7b47cda64b432aa13fd" + }, + "mojave": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/mercurial/blobs/sha256:9d17a00e32c68c952c38ec112d13db60f622c19b6eeef1b530ae4651a74a8e40", + "sha256": "9d17a00e32c68c952c38ec112d13db60f622c19b6eeef1b530ae4651a74a8e40" + }, + "x86_64_linux": { + "cellar": "/home/linuxbrew/.linuxbrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/mercurial/blobs/sha256:d0ba37e2a995efd78531979dd8a23607cac15ef3ebe2458e730d069647e3b397", + "sha256": "d0ba37e2a995efd78531979dd8a23607cac15ef3ebe2458e730d069647e3b397" + } + } + } + }, + "minikube": { + "version": "1.23.2", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/minikube/blobs/sha256:d070d46f911a23fa36f155179e9dd62c2a562d070d4a6c739978031a704cfd1e", + "sha256": "d070d46f911a23fa36f155179e9dd62c2a562d070d4a6c739978031a704cfd1e" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/minikube/blobs/sha256:0f123e76f821fa427496a1d73551cdcd5c4b7cc74c3d6c8fb45f6259fd17635e", + "sha256": "0f123e76f821fa427496a1d73551cdcd5c4b7cc74c3d6c8fb45f6259fd17635e" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/minikube/blobs/sha256:faa91becd0ebb93d8af0ce849ff57516f3cb090a2c350b0b1800250729f7f573", + "sha256": "faa91becd0ebb93d8af0ce849ff57516f3cb090a2c350b0b1800250729f7f573" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/minikube/blobs/sha256:0103f2958d7609a9157e7de9c69b24bcc86e858a912080063aec594d0e07fcdb", + "sha256": "0103f2958d7609a9157e7de9c69b24bcc86e858a912080063aec594d0e07fcdb" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/minikube/blobs/sha256:262e375995aab490eb42d8ac43304ed2b07916e6e82478bb68998f19268bbf0d", + "sha256": "262e375995aab490eb42d8ac43304ed2b07916e6e82478bb68998f19268bbf0d" + } + } + } + }, + "hyperkit": { + "version": "0.20200908", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hyperkit/blobs/sha256:26a203b17733ff5166d8c31069e3ecd5af15c74448a51d8b682689cb07e911e8", + "sha256": "26a203b17733ff5166d8c31069e3ecd5af15c74448a51d8b682689cb07e911e8" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hyperkit/blobs/sha256:f662bb10b9bab8a2f3b8e92f51b2fae3f1d8d24310732cc77a164e63d7eaa5d2", + "sha256": "f662bb10b9bab8a2f3b8e92f51b2fae3f1d8d24310732cc77a164e63d7eaa5d2" + }, + "high_sierra": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/hyperkit/blobs/sha256:f057fe7b3856421d0fdf1df3d9981e0729ee77c27ed3d4cb918e9523f7d5d9be", + "sha256": "f057fe7b3856421d0fdf1df3d9981e0729ee77c27ed3d4cb918e9523f7d5d9be" + } + } + } + }, + "mkcert": { + "version": "1.4.3", + "bottle": { + "rebuild": 1, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/mkcert/blobs/sha256:053f02796ab0165faaabc470cc161559d3ba5062b5e56f6df1bbd46a828f4991", + "sha256": "053f02796ab0165faaabc470cc161559d3ba5062b5e56f6df1bbd46a828f4991" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/mkcert/blobs/sha256:4dc2370651718c72f2484c81a6dd5813cb7fcf6a5ec6bb1bee94e1720d23d412", + "sha256": "4dc2370651718c72f2484c81a6dd5813cb7fcf6a5ec6bb1bee94e1720d23d412" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/mkcert/blobs/sha256:92ac9e87e65741d1cadb0372b259291dcd726fe1048715cfc993053cb62273e1", + "sha256": "92ac9e87e65741d1cadb0372b259291dcd726fe1048715cfc993053cb62273e1" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/mkcert/blobs/sha256:49c14e8620ffb1dc44d587eea2a6c329bac516f24d209d08b656b0c21af4e3ac", + "sha256": "49c14e8620ffb1dc44d587eea2a6c329bac516f24d209d08b656b0c21af4e3ac" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/mkcert/blobs/sha256:e8d0c2399c57a86fdcd2c46b043cf29ed9e7636dc0320dcbedcee1b8a30a125f", + "sha256": "e8d0c2399c57a86fdcd2c46b043cf29ed9e7636dc0320dcbedcee1b8a30a125f" + } + } + } + }, + "neovim": { + "version": "HEAD-5fd4557", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": "/opt/homebrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/neovim/blobs/sha256:bf8f8dc4407dadb55f81ca0d920d9473c12fc5ec88107e5845e61a61f9f02cdc", + "sha256": "bf8f8dc4407dadb55f81ca0d920d9473c12fc5ec88107e5845e61a61f9f02cdc" + }, + "big_sur": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/neovim/blobs/sha256:0cdce2ddbece563e47ad2734cf181fbea53a8a4c85fc9943f31ea537b5a0e313", + "sha256": "0cdce2ddbece563e47ad2734cf181fbea53a8a4c85fc9943f31ea537b5a0e313" + }, + "catalina": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/neovim/blobs/sha256:13516e756e516d44279ecfba5aa50395d12c176be2fa4da5c7c39580bde87e9d", + "sha256": "13516e756e516d44279ecfba5aa50395d12c176be2fa4da5c7c39580bde87e9d" + }, + "mojave": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/neovim/blobs/sha256:8f905a82a928ae7ae41b4d46c409bbf6b6a9c11a2d5edea2ee723315d4b31361", + "sha256": "8f905a82a928ae7ae41b4d46c409bbf6b6a9c11a2d5edea2ee723315d4b31361" + }, + "x86_64_linux": { + "cellar": "/home/linuxbrew/.linuxbrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/neovim/blobs/sha256:77090b199f345cf0ab8e1f81814b659136de6a85451278ceb22a0712fbfa90c4", + "sha256": "77090b199f345cf0ab8e1f81814b659136de6a85451278ceb22a0712fbfa90c4" + } + } + } + }, + "newsboat": { + "version": "2.25", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": "/opt/homebrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/newsboat/blobs/sha256:a421778c2fd02d013e3fba6727a392f3ab6c70a32aad94dca38274f8c0a15102", + "sha256": "a421778c2fd02d013e3fba6727a392f3ab6c70a32aad94dca38274f8c0a15102" + }, + "big_sur": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/newsboat/blobs/sha256:96697aefcedc5c791b07e1734d8cd6f74eb2842e5dd51283c0b9757b64e62747", + "sha256": "96697aefcedc5c791b07e1734d8cd6f74eb2842e5dd51283c0b9757b64e62747" + }, + "catalina": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/newsboat/blobs/sha256:e259be3ed054eab870bcbc69ac9bcb008dcb9cdd8934d57ccef924db735c66a3", + "sha256": "e259be3ed054eab870bcbc69ac9bcb008dcb9cdd8934d57ccef924db735c66a3" + }, + "mojave": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/newsboat/blobs/sha256:f92958ea54f0a648755c5b5df384bf1bf88280dfeac15a4a06aa122e19af087b", + "sha256": "f92958ea54f0a648755c5b5df384bf1bf88280dfeac15a4a06aa122e19af087b" + }, + "x86_64_linux": { + "cellar": "/home/linuxbrew/.linuxbrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/newsboat/blobs/sha256:a8e76829cb365ae43de0e3aa6d442c1a95378abb59a19f6a2f006f0910e3d44b", + "sha256": "a8e76829cb365ae43de0e3aa6d442c1a95378abb59a19f6a2f006f0910e3d44b" + } + } + } + }, + "nmap": { + "version": "7.92", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": "/opt/homebrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/nmap/blobs/sha256:1f40f19d97c6f87564344793e9921535137f0d76020132cd33fff9a5b9e220da", + "sha256": "1f40f19d97c6f87564344793e9921535137f0d76020132cd33fff9a5b9e220da" + }, + "big_sur": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/nmap/blobs/sha256:0e98a05d4ff5630ab1e70218930c06e598164fb5832fb76b3e4df3a4b6872ffa", + "sha256": "0e98a05d4ff5630ab1e70218930c06e598164fb5832fb76b3e4df3a4b6872ffa" + }, + "catalina": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/nmap/blobs/sha256:fe638eedb2063e9bdd8fb75679c6bceead8084456bba2a43819889c93158301d", + "sha256": "fe638eedb2063e9bdd8fb75679c6bceead8084456bba2a43819889c93158301d" + }, + "mojave": { + "cellar": "/usr/local/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/nmap/blobs/sha256:dba8ca74eccbb2eec127b82d6cb81478c131ba3d19f7851b82871775bb01e8b3", + "sha256": "dba8ca74eccbb2eec127b82d6cb81478c131ba3d19f7851b82871775bb01e8b3" + }, + "x86_64_linux": { + "cellar": "/home/linuxbrew/.linuxbrew/Cellar", + "url": "https://ghcr.io/v2/homebrew/core/nmap/blobs/sha256:5ceab0e20f0aba5059b7ba612876413c799d0a933dfb46c5bf078b432d01c7dd", + "sha256": "5ceab0e20f0aba5059b7ba612876413c799d0a933dfb46c5bf078b432d01c7dd" + } + } + } + }, + "node": { + "version": "16.11.1", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/node/blobs/sha256:a43113837382d103c08a9b7194928e0ffadfff89fe99b7613d774930e21a9940", + "sha256": "a43113837382d103c08a9b7194928e0ffadfff89fe99b7613d774930e21a9940" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/node/blobs/sha256:bc7ed2beff7569491d89733c6202d212bc2d2abceb7b4293aa865a8728574a6e", + "sha256": "bc7ed2beff7569491d89733c6202d212bc2d2abceb7b4293aa865a8728574a6e" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/node/blobs/sha256:51d62734b48ec8638611cb96dd0fd01fed32a8b66dff2034e154ed5d7417b629", + "sha256": "51d62734b48ec8638611cb96dd0fd01fed32a8b66dff2034e154ed5d7417b629" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/node/blobs/sha256:beaeecf1d092cb96c097536768b530ea3fedb9b46a12e070d6b408a8cbc8e9c6", + "sha256": "beaeecf1d092cb96c097536768b530ea3fedb9b46a12e070d6b408a8cbc8e9c6" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/node/blobs/sha256:b6772206fe1ca79974d979719d84ef7ea45d5b5c70dee40887fd0e278c49477d", + "sha256": "b6772206fe1ca79974d979719d84ef7ea45d5b5c70dee40887fd0e278c49477d" + } + } + } + }, + "protoc-gen-go": { + "version": "1.27.1", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/protoc-gen-go/blobs/sha256:577196328ed1d829d999d7eb7a1fbdcd340831619b5e53db1e9ff880bb0514cb", + "sha256": "577196328ed1d829d999d7eb7a1fbdcd340831619b5e53db1e9ff880bb0514cb" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/protoc-gen-go/blobs/sha256:3990c0be0447ef4cebc03575c737a01a8a7af9e3766cb014addc4c932eeb4228", + "sha256": "3990c0be0447ef4cebc03575c737a01a8a7af9e3766cb014addc4c932eeb4228" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/protoc-gen-go/blobs/sha256:3990c0be0447ef4cebc03575c737a01a8a7af9e3766cb014addc4c932eeb4228", + "sha256": "3990c0be0447ef4cebc03575c737a01a8a7af9e3766cb014addc4c932eeb4228" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/protoc-gen-go/blobs/sha256:3990c0be0447ef4cebc03575c737a01a8a7af9e3766cb014addc4c932eeb4228", + "sha256": "3990c0be0447ef4cebc03575c737a01a8a7af9e3766cb014addc4c932eeb4228" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/protoc-gen-go/blobs/sha256:bf23c02b98cfea6ed4a0d293a6f669b61fa11c6a04f5288ae6d910b20c0a8f4c", + "sha256": "bf23c02b98cfea6ed4a0d293a6f669b61fa11c6a04f5288ae6d910b20c0a8f4c" + } + } + } + }, + "protoc-gen-go-grpc": { + "version": "1.1.0_2", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/protoc-gen-go-grpc/blobs/sha256:ad604447808fa88d386c5864726985220ec03a5cb7dd17f2c8deb1de3b1ba86e", + "sha256": "ad604447808fa88d386c5864726985220ec03a5cb7dd17f2c8deb1de3b1ba86e" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/protoc-gen-go-grpc/blobs/sha256:c288d0096bfeff80418f468a0a1c92aaa43dd31f62a3e2f37f14ad5577ebbcc8", + "sha256": "c288d0096bfeff80418f468a0a1c92aaa43dd31f62a3e2f37f14ad5577ebbcc8" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/protoc-gen-go-grpc/blobs/sha256:c288d0096bfeff80418f468a0a1c92aaa43dd31f62a3e2f37f14ad5577ebbcc8", + "sha256": "c288d0096bfeff80418f468a0a1c92aaa43dd31f62a3e2f37f14ad5577ebbcc8" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/protoc-gen-go-grpc/blobs/sha256:c288d0096bfeff80418f468a0a1c92aaa43dd31f62a3e2f37f14ad5577ebbcc8", + "sha256": "c288d0096bfeff80418f468a0a1c92aaa43dd31f62a3e2f37f14ad5577ebbcc8" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/protoc-gen-go-grpc/blobs/sha256:dd8411b9523d4ece4a2ce08e2be463ec09b2873f50a5c46744420962a0a2f8fb", + "sha256": "dd8411b9523d4ece4a2ce08e2be463ec09b2873f50a5c46744420962a0a2f8fb" + } + } + } + }, + "qpdf": { + "version": "10.3.2", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/qpdf/blobs/sha256:705a38342dd732f78053f1bbeee0fdcabc7907db7451a15616d12d0ea0015894", + "sha256": "705a38342dd732f78053f1bbeee0fdcabc7907db7451a15616d12d0ea0015894" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/qpdf/blobs/sha256:d58a95848a41828fd8a8cf0f1bbc2965f7d5c4b253a359d99750e53c01777c63", + "sha256": "d58a95848a41828fd8a8cf0f1bbc2965f7d5c4b253a359d99750e53c01777c63" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/qpdf/blobs/sha256:2896a1a0b6edd8b19b1f596439d60081325f63a4d6ed6cfd859f28790ca8f4d7", + "sha256": "2896a1a0b6edd8b19b1f596439d60081325f63a4d6ed6cfd859f28790ca8f4d7" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/qpdf/blobs/sha256:d017c72291915e439affa7000b113169fd3e48bdd1b2d31760fdfe2f3d1950fd", + "sha256": "d017c72291915e439affa7000b113169fd3e48bdd1b2d31760fdfe2f3d1950fd" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/qpdf/blobs/sha256:8b856a4f28b9a0377c40251172c09763548faff2aacd50c5f1e03f9c680434eb", + "sha256": "8b856a4f28b9a0377c40251172c09763548faff2aacd50c5f1e03f9c680434eb" + } + } + } + }, + "reattach-to-user-namespace": { + "version": "2.9", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/reattach-to-user-namespace/blobs/sha256:ebbf92257744971b555e6f1abb0205b5ee09986b47168d94f235b302974536b9", + "sha256": "ebbf92257744971b555e6f1abb0205b5ee09986b47168d94f235b302974536b9" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/reattach-to-user-namespace/blobs/sha256:8b715171e1c8ce8f86cddc241340a7a6f4f263e770d912894cf580790f8d8aa4", + "sha256": "8b715171e1c8ce8f86cddc241340a7a6f4f263e770d912894cf580790f8d8aa4" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/reattach-to-user-namespace/blobs/sha256:8ab11a5fa7512f5d7ef8fe62a5275325f3721e13fde2b0831d1f615e8820c341", + "sha256": "8ab11a5fa7512f5d7ef8fe62a5275325f3721e13fde2b0831d1f615e8820c341" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/reattach-to-user-namespace/blobs/sha256:b277145d5bfbc6997bc7d8ebe203e9d93adf8d1aa2f0f1c76152212ee6a23403", + "sha256": "b277145d5bfbc6997bc7d8ebe203e9d93adf8d1aa2f0f1c76152212ee6a23403" + }, + "high_sierra": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/reattach-to-user-namespace/blobs/sha256:68e1f00743690086fb23ce013767e0a669ef46807ee9f618fe9ea4a25c50d5c0", + "sha256": "68e1f00743690086fb23ce013767e0a669ef46807ee9f618fe9ea4a25c50d5c0" + } + } + } + }, + "ripgrep": { + "version": "13.0.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/ripgrep/blobs/sha256:d3e0ae859dc1e66ebecbc66a8ad1ec2abac59bc707d2305dde66212e71406d36", + "sha256": "d3e0ae859dc1e66ebecbc66a8ad1ec2abac59bc707d2305dde66212e71406d36" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/ripgrep/blobs/sha256:a8f2bd6586de9f7aa36eaaefd36777309f9b5d57f01bf33bf022d715fd3dbb89", + "sha256": "a8f2bd6586de9f7aa36eaaefd36777309f9b5d57f01bf33bf022d715fd3dbb89" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/ripgrep/blobs/sha256:0edcffa1251002e2747020d62a16ae077bd7aa5fb289d351622e0065c9686c40", + "sha256": "0edcffa1251002e2747020d62a16ae077bd7aa5fb289d351622e0065c9686c40" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/ripgrep/blobs/sha256:b57024c0d221249a1f5eaef1069ac90d44e54afdadb146acd117ae23b7de98c6", + "sha256": "b57024c0d221249a1f5eaef1069ac90d44e54afdadb146acd117ae23b7de98c6" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/ripgrep/blobs/sha256:34e3140b55f0fb5efb8db70e0709afe091632efaa84465e4c1c9ca3c8afa1bf2", + "sha256": "34e3140b55f0fb5efb8db70e0709afe091632efaa84465e4c1c9ca3c8afa1bf2" + } + } + } + }, + "rust": { + "version": "1.55.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/rust/blobs/sha256:a83ae63ce2f8767921cecccfed2296f573535af2c72ecc729a22ea1b60163cca", + "sha256": "a83ae63ce2f8767921cecccfed2296f573535af2c72ecc729a22ea1b60163cca" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/rust/blobs/sha256:0703f28e13084ee17a1d6b30754fb839d8f8d8286c51386a689c794ce93f35bf", + "sha256": "0703f28e13084ee17a1d6b30754fb839d8f8d8286c51386a689c794ce93f35bf" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/rust/blobs/sha256:3da9d889082cde3a79cfabcb396ec12f0b8b0d661d3d8ab999e71c076f92b7ec", + "sha256": "3da9d889082cde3a79cfabcb396ec12f0b8b0d661d3d8ab999e71c076f92b7ec" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/rust/blobs/sha256:4486ea172caf99286586f661120b78d8331a6641f27bf9f5a21f9bf7830ac0ef", + "sha256": "4486ea172caf99286586f661120b78d8331a6641f27bf9f5a21f9bf7830ac0ef" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/rust/blobs/sha256:1539148555642adfe6d4a80557e3f66c5fe3d23a5d19c7674038585b2bf346d7", + "sha256": "1539148555642adfe6d4a80557e3f66c5fe3d23a5d19c7674038585b2bf346d7" + } + } + } + }, + "terraform": { + "version": "1.0.9", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/terraform/blobs/sha256:ac4219fdf70546e9412eaab738446630e2e84a04da72b1b86aecc7f4d0eb4319", + "sha256": "ac4219fdf70546e9412eaab738446630e2e84a04da72b1b86aecc7f4d0eb4319" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/terraform/blobs/sha256:e88c4f7892d63ac2b422d9efbd9b37f3126f9449ad5fbcead959e4223e14464c", + "sha256": "e88c4f7892d63ac2b422d9efbd9b37f3126f9449ad5fbcead959e4223e14464c" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/terraform/blobs/sha256:d10c56f76b0eefd04916c832b89af79c2d7ca5bdb942ffd73887c665f7248f2e", + "sha256": "d10c56f76b0eefd04916c832b89af79c2d7ca5bdb942ffd73887c665f7248f2e" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/terraform/blobs/sha256:4c937d477b5b622d162c14a1d9b91e2e8eee2cf182b4627d71138be7aa629a6a", + "sha256": "4c937d477b5b622d162c14a1d9b91e2e8eee2cf182b4627d71138be7aa629a6a" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/terraform/blobs/sha256:0f0d2a38b0b567938c8e21528059ec0dbbd36bb14276c5cd98da74bae7c38eb7", + "sha256": "0f0d2a38b0b567938c8e21528059ec0dbbd36bb14276c5cd98da74bae7c38eb7" + } + } + } + }, + "tig": { + "version": "2.5.4", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/tig/blobs/sha256:ca3273a9bb53f6b060ce4ccbffaf82308d90d833a7120505a55f877b6f197592", + "sha256": "ca3273a9bb53f6b060ce4ccbffaf82308d90d833a7120505a55f877b6f197592" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/tig/blobs/sha256:506b2d47105b97ba9d04f3b91a45e9a164dd409fc1fd58655bf3015bb1403e0b", + "sha256": "506b2d47105b97ba9d04f3b91a45e9a164dd409fc1fd58655bf3015bb1403e0b" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/tig/blobs/sha256:5afa0c1a9dcb4d851f88db05b0f911e70014abb6d64b43d1b1e56f12452d233a", + "sha256": "5afa0c1a9dcb4d851f88db05b0f911e70014abb6d64b43d1b1e56f12452d233a" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/tig/blobs/sha256:c2dff759957d7b62f5ab947e6637c428c9352c244faeb6f8e02918f8c9587771", + "sha256": "c2dff759957d7b62f5ab947e6637c428c9352c244faeb6f8e02918f8c9587771" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/tig/blobs/sha256:a71079791b2ff79c307250f00163c3320ba6c242f4115892fa490d78a71196f9", + "sha256": "a71079791b2ff79c307250f00163c3320ba6c242f4115892fa490d78a71196f9" + } + } + } + }, + "tmux": { + "version": "3.2a", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/tmux/blobs/sha256:3138a67aceee5eea374c6a61e799073f661ce132f8b8ff2ee2b5cef06fb93725", + "sha256": "3138a67aceee5eea374c6a61e799073f661ce132f8b8ff2ee2b5cef06fb93725" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/tmux/blobs/sha256:db717e09b9e53769b9bc6f277d25f20c8ec159eb90093a45c0ceefb54105509a", + "sha256": "db717e09b9e53769b9bc6f277d25f20c8ec159eb90093a45c0ceefb54105509a" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/tmux/blobs/sha256:9aa7eba75f4f56f099182ecd7d41cad0117ce1a11f9fcbd8319a22015c317898", + "sha256": "9aa7eba75f4f56f099182ecd7d41cad0117ce1a11f9fcbd8319a22015c317898" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/tmux/blobs/sha256:fa64cb30acc5300390f65f29ed95b4a816f1431b3dbd94051ee695243cf5c63e", + "sha256": "fa64cb30acc5300390f65f29ed95b4a816f1431b3dbd94051ee695243cf5c63e" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/tmux/blobs/sha256:c516a5986729c70f0a7ca385a41267b73e88694b8d705a3ec7272562c4958d60", + "sha256": "c516a5986729c70f0a7ca385a41267b73e88694b8d705a3ec7272562c4958d60" + } + } + } + }, + "tree": { + "version": "1.8.0", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/tree/blobs/sha256:b9d1925b5b306e098ff43f1ce5fc409b759c6d2d468e20af5628797a56234c4f", + "sha256": "b9d1925b5b306e098ff43f1ce5fc409b759c6d2d468e20af5628797a56234c4f" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/tree/blobs/sha256:572adeaba1ffee7fa8bcad414c8b18140c367bbc81dc2ab8fd438cbd7e4a985b", + "sha256": "572adeaba1ffee7fa8bcad414c8b18140c367bbc81dc2ab8fd438cbd7e4a985b" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/tree/blobs/sha256:18f7984bdbab22251e9fc3c7832dbace5c7f7a77e8d63717bb0078385e2bf255", + "sha256": "18f7984bdbab22251e9fc3c7832dbace5c7f7a77e8d63717bb0078385e2bf255" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/tree/blobs/sha256:7152288c457dd893de50fa9d6ac9a8599748564e1b3586eec8eff7057089051a", + "sha256": "7152288c457dd893de50fa9d6ac9a8599748564e1b3586eec8eff7057089051a" + }, + "high_sierra": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/tree/blobs/sha256:107d965994381d34e90b58a62f1c306c1b8a698db2696cdd905ba65c801ecc3b", + "sha256": "107d965994381d34e90b58a62f1c306c1b8a698db2696cdd905ba65c801ecc3b" + }, + "sierra": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/tree/blobs/sha256:07d980571469a0cc699c69a8726eee338f782ba61c041e58f01ddb2924d08aeb", + "sha256": "07d980571469a0cc699c69a8726eee338f782ba61c041e58f01ddb2924d08aeb" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/tree/blobs/sha256:02fb3aeb2c166a65c03a92641d05b553f963d4b0cecbf1f67c1eb8a0ba95a673", + "sha256": "02fb3aeb2c166a65c03a92641d05b553f963d4b0cecbf1f67c1eb8a0ba95a673" + } + } + } + }, + "vault": { + "version": "1.8.4", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/vault/blobs/sha256:15d1d63cc1e6028d4ea4284517354c17dad4348b91b99c468311ac86ac682796", + "sha256": "15d1d63cc1e6028d4ea4284517354c17dad4348b91b99c468311ac86ac682796" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/vault/blobs/sha256:61f7b7a0042e66afc38be2bb3a892c93674e38d6b33de8e4f88f7b48c4bfdfbe", + "sha256": "61f7b7a0042e66afc38be2bb3a892c93674e38d6b33de8e4f88f7b48c4bfdfbe" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/vault/blobs/sha256:2316c2d94d761c6928e67b28c122fb9175943f965cb389d2735edcb61bc3e904", + "sha256": "2316c2d94d761c6928e67b28c122fb9175943f965cb389d2735edcb61bc3e904" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/vault/blobs/sha256:38c70bfa12f622a9a7ad27d8b63b50b56dad4729b4b67a88109d7941d84f3982", + "sha256": "38c70bfa12f622a9a7ad27d8b63b50b56dad4729b4b67a88109d7941d84f3982" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/vault/blobs/sha256:ade90a215435e4fb81baca40756f4b9c9edb02f3f31365340956e12278956356", + "sha256": "ade90a215435e4fb81baca40756f4b9c9edb02f3f31365340956e12278956356" + } + } + } + }, + "watch": { + "version": "3.3.17", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/watch/blobs/sha256:45b90fbbda918d2c87ef6ccc29f1d931cbd0a490f2b1d599444591aae04a3cb0", + "sha256": "45b90fbbda918d2c87ef6ccc29f1d931cbd0a490f2b1d599444591aae04a3cb0" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/watch/blobs/sha256:251b920890874ad798cf01c4c52564c720f785ce8184ae41181654b8f65e592b", + "sha256": "251b920890874ad798cf01c4c52564c720f785ce8184ae41181654b8f65e592b" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/watch/blobs/sha256:05698a04a502ac32c97e0de0d9f00ac7c7450afd5d42b85d8ce1cd55d010fff3", + "sha256": "05698a04a502ac32c97e0de0d9f00ac7c7450afd5d42b85d8ce1cd55d010fff3" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/watch/blobs/sha256:d2ce790ff9e073d04615051cd94dce4e06d37993de21894a64d4a23b7dfe5ea5", + "sha256": "d2ce790ff9e073d04615051cd94dce4e06d37993de21894a64d4a23b7dfe5ea5" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/watch/blobs/sha256:2ae42218ef9ec54573be5a7f207c5057f326a62e11c8f158974aff56e1762284", + "sha256": "2ae42218ef9ec54573be5a7f207c5057f326a62e11c8f158974aff56e1762284" + } + } + } + }, + "youtube-dl": { + "version": "2021.6.6", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/youtube-dl/blobs/sha256:c8488b8408d6382b7bce6359cc18f7e14ab5f250152f18f69d250fbc6dd4f081", + "sha256": "c8488b8408d6382b7bce6359cc18f7e14ab5f250152f18f69d250fbc6dd4f081" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/youtube-dl/blobs/sha256:f4c3781a6c30a1da5319e581cac99be7fd533295fa8780ef66c3bf696f755e5f", + "sha256": "f4c3781a6c30a1da5319e581cac99be7fd533295fa8780ef66c3bf696f755e5f" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/youtube-dl/blobs/sha256:f4c3781a6c30a1da5319e581cac99be7fd533295fa8780ef66c3bf696f755e5f", + "sha256": "f4c3781a6c30a1da5319e581cac99be7fd533295fa8780ef66c3bf696f755e5f" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/youtube-dl/blobs/sha256:f4c3781a6c30a1da5319e581cac99be7fd533295fa8780ef66c3bf696f755e5f", + "sha256": "f4c3781a6c30a1da5319e581cac99be7fd533295fa8780ef66c3bf696f755e5f" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/youtube-dl/blobs/sha256:8cf1a12113ca9116896c792441ac44197a47df59a347eb09685dd6476fdb3ef3", + "sha256": "8cf1a12113ca9116896c792441ac44197a47df59a347eb09685dd6476fdb3ef3" + } + } + } + }, + "nnn": { + "version": "4.3", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/nnn/blobs/sha256:6d072778621d10a72e476f50c8a24f376d2959dae78e186bb3c11d69f1a7a7f7", + "sha256": "6d072778621d10a72e476f50c8a24f376d2959dae78e186bb3c11d69f1a7a7f7" + }, + "big_sur": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/nnn/blobs/sha256:9f99a0bd00d1f224d7a357941e419fadbf6385f6316505108e7592a1b76403fc", + "sha256": "9f99a0bd00d1f224d7a357941e419fadbf6385f6316505108e7592a1b76403fc" + }, + "catalina": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/nnn/blobs/sha256:63cd86d85ab2464ca084fe671784cf8228b65b6fb6026375845940e8d1827f77", + "sha256": "63cd86d85ab2464ca084fe671784cf8228b65b6fb6026375845940e8d1827f77" + }, + "mojave": { + "cellar": ":any", + "url": "https://ghcr.io/v2/homebrew/core/nnn/blobs/sha256:f1aa16087e160457a96cf549135b0f9c4fe875a6a888064fa8bd92cda5c1b6f0", + "sha256": "f1aa16087e160457a96cf549135b0f9c4fe875a6a888064fa8bd92cda5c1b6f0" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/nnn/blobs/sha256:8b431bf5a86d696c6784e9faa375c249d5456bbf5c101606e949a840ed7b6471", + "sha256": "8b431bf5a86d696c6784e9faa375c249d5456bbf5c101606e949a840ed7b6471" + } + } + } + }, + "k3d": { + "version": "5.0.1", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/k3d/blobs/sha256:a81a3d44602080905d164788d5dd54aaa6b5d1ea7b54ecde224a15704ffad579", + "sha256": "a81a3d44602080905d164788d5dd54aaa6b5d1ea7b54ecde224a15704ffad579" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/k3d/blobs/sha256:2c19049b247166ec76425f24b2430e0c2a88f4a3a80c0cc4d4fa17b529ab4abd", + "sha256": "2c19049b247166ec76425f24b2430e0c2a88f4a3a80c0cc4d4fa17b529ab4abd" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/k3d/blobs/sha256:7ed5bab062d3107ff2019812c44bb0068fec5fb7deb80ad2272adb6106f9dc22", + "sha256": "7ed5bab062d3107ff2019812c44bb0068fec5fb7deb80ad2272adb6106f9dc22" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/k3d/blobs/sha256:935f2464da6c3c66a0f7f3604d53b6a733c9075e3afab13ff0b78cfdb09b812a", + "sha256": "935f2464da6c3c66a0f7f3604d53b6a733c9075e3afab13ff0b78cfdb09b812a" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/k3d/blobs/sha256:881b47421254092c0246edd293071692eccfd873a1660e73d7a08b7f965406bb", + "sha256": "881b47421254092c0246edd293071692eccfd873a1660e73d7a08b7f965406bb" + } + } + } + }, + "k6": { + "version": "0.34.1", + "bottle": { + "rebuild": 0, + "root_url": "https://ghcr.io/v2/homebrew/core", + "files": { + "arm64_big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/k6/blobs/sha256:cddd9cf3e6fa0cc99888362ba4d6968ea433263b49fd61500d831467036d861a", + "sha256": "cddd9cf3e6fa0cc99888362ba4d6968ea433263b49fd61500d831467036d861a" + }, + "big_sur": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/k6/blobs/sha256:24b67060719ff01398df450081a25705e837580600faa268230080e0b2fa67d2", + "sha256": "24b67060719ff01398df450081a25705e837580600faa268230080e0b2fa67d2" + }, + "catalina": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/k6/blobs/sha256:e4d8fac6423861809354f1788e64b7a2138295997b31abbc28a6e9300552a056", + "sha256": "e4d8fac6423861809354f1788e64b7a2138295997b31abbc28a6e9300552a056" + }, + "mojave": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/k6/blobs/sha256:7d3a83df3bc716adcb736075f3901ed0d4d9f3f8524bae2ec3f739f101fb8068", + "sha256": "7d3a83df3bc716adcb736075f3901ed0d4d9f3f8524bae2ec3f739f101fb8068" + }, + "x86_64_linux": { + "cellar": ":any_skip_relocation", + "url": "https://ghcr.io/v2/homebrew/core/k6/blobs/sha256:a01ec855c402b99acfc9dedc3eb6809b7f46973e8213523e56ee266a7d21cfdc", + "sha256": "a01ec855c402b99acfc9dedc3eb6809b7f46973e8213523e56ee266a7d21cfdc" + } + } + } + } + }, + "cask": { + "alacritty": { + "version": "0.9.0", + "options": { + "full_name": "alacritty" + } + }, + "osquery": { + "version": "5.0.1", + "options": { + "full_name": "osquery" + } + }, + "firefox": { + "version": "93.0", + "options": { + "full_name": "firefox" + } + }, + "brave-browser": { + "version": "1.30.89.0,130.89", + "options": { + "full_name": "brave-browser" + } + }, + "google-cloud-sdk": { + "version": "latest", + "options": { + "full_name": "google-cloud-sdk" + } + }, + "iina": { + "version": "1.2.0,129", + "options": { + "full_name": "iina" + } + }, + "tableplus": { + "version": "4.5.0,396", + "options": { + "full_name": "tableplus" + } + }, + "tor-browser": { + "version": "10.5.8", + "options": { + "full_name": "tor-browser" + } + }, + "transmission": { + "version": "3.00", + "options": { + "full_name": "transmission" + } + }, + "whatsapp": { + "version": "2.2140.7", + "options": { + "full_name": "whatsapp" + } + } + } + }, + "system": { + "macos": { + "monterey": { + "HOMEBREW_VERSION": "3.2.16-37-gfecacdc", + "HOMEBREW_PREFIX": "/usr/local", + "Homebrew/homebrew-core": "0132f3f7f21d438beeb3abd8aa1f27e16df276c7", + "CLT": "13.0.0.0.1.1627064638", + "Xcode": "13.0", + "macOS": "12.0" + } + } + } +} From 9c33afe7f10275baa58ae6d69561be83d4227971 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Sat, 16 Oct 2021 17:40:21 +0300 Subject: [PATCH 229/230] cmp --- Brewfile | 1 - fzf/fzf.zsh | 5 ----- tmux/tmux.conf.symlink | 2 +- vim/vimrc.symlink | 7 +++---- 4 files changed, 4 insertions(+), 11 deletions(-) diff --git a/Brewfile b/Brewfile index 7cb4ee5..dfdb16c 100644 --- a/Brewfile +++ b/Brewfile @@ -44,7 +44,6 @@ brew 'tree' brew 'vault' brew 'watch' brew 'youtube-dl' -brew 'nnn' brew 'k3d' brew 'k6' diff --git a/fzf/fzf.zsh b/fzf/fzf.zsh index 7e8d202..013b65e 100644 --- a/fzf/fzf.zsh +++ b/fzf/fzf.zsh @@ -3,11 +3,6 @@ source "/usr/local/opt/fzf/shell/key-bindings.zsh" # Open as tmux pane export FZF_TMUX=1 -# Solarized dark -# export FZF_DEFAULT_OPTS=" -# --color=bg+:#3c3836,bg:#32302f,spinner:#fb4934,hl:#928374,fg:#ebdbb2,header:#928374,info:#8ec07c,pointer:#fb4934,marker:#fb4934,fg+:#ebdbb2,prompt:#fb4934,hl+:#fb4934' -# " - export FZF_DEFAULT_OPTS=" --color fg:#ebdbb2,bg:#282828,hl:#fabd2f,fg+:#ebdbb2,bg+:#3c3836,hl+:#fabd2f --color info:#83a598,prompt:#bdae93,spinner:#fabd2f,pointer:#83a598,marker:#fe8019,header:#665c54 diff --git a/tmux/tmux.conf.symlink b/tmux/tmux.conf.symlink index 7587b05..73b7aa3 100644 --- a/tmux/tmux.conf.symlink +++ b/tmux/tmux.conf.symlink @@ -86,7 +86,7 @@ set -g status-left "#[fg=colour248,bg=colour241] #I:#P #[fg=colour241,bg=colour2 # right set -g status-right-style none set -g status-right-length 80 -set -g status-right "#[fg=colour239,bg=colour237,nobold,nounderscore,noitalics]#[fg=colour246,bg=colour239] %d-%m %H:%M #[fg=colour248,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour237,bg=colour248] [k8s/#(kubectl config current-context)] [gcp/#(gcloud config configurations list|awk '/True/ {print $1}')]" +set -g status-right "#[fg=colour239,bg=colour237,nobold,nounderscore,noitalics]#[fg=colour246,bg=colour239] %d-%m %H:%M #[fg=colour248,bg=colour239,nobold,nounderscore,noitalics]#[fg=colour237,bg=colour248] k8s/#(kubectl config current-context) gcp/#(gcloud config configurations list|awk '/True/ {print $1}') " # clock mode set -g clock-mode-colour colour109 diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index 729248f..cdd01fb 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -16,6 +16,7 @@ Plug 'tpope/vim-commentary' Plug 'tpope/vim-repeat' Plug 'tpope/vim-fugitive' " Git client Plug 'tpope/vim-unimpaired' +Plug 'tpope/vim-dadbod' " Database client Plug 'APZelos/blamer.nvim' Plug 'f-person/git-blame.nvim' Plug 'vitapluvia/vim-gurl' " Github URL to clipboard @@ -29,7 +30,6 @@ Plug '/usr/local/opt/fzf' | Plug 'junegunn/fzf.vim' Plug 'ojroques/nvim-lspfuzzy' " FZF navigation for LSP Plug 'unblevable/quick-scope' Plug 'google/vim-searchindex' -Plug 'mcchrish/nnn.vim' " Completion, lint, fix Plug 'jiangmiao/auto-pairs' @@ -43,6 +43,7 @@ Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-buffer' Plug 'hrsh7th/cmp-path' Plug 'notomo/cmp-neosnippet' +Plug 'ray-x/cmp-treesitter' " Language specific plugins Plug 'hashivim/vim-terraform' @@ -142,6 +143,7 @@ cmp.setup({ { name = 'buffer' }, { name = 'neosnippet' }, { name = 'path' }, + { name = 'treesitter' }, }, formatting = { format = lspkind.cmp_format() @@ -194,9 +196,6 @@ nnoremap l :Lines nnoremap c :BCommits nnoremap g :Rg -" nnn -let g:nnn#layout = { 'left': '~20%' } - " Base64 decode selection vnoremap 64 c=system('base64 --decode', @") From ab1e17ed6cd41f602f32402c67755554a7b60409 Mon Sep 17 00:00:00 2001 From: Or Elimelech Date: Mon, 18 Oct 2021 17:48:22 +0300 Subject: [PATCH 230/230] code action --- vim/vimrc.symlink | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/vim/vimrc.symlink b/vim/vimrc.symlink index cdd01fb..4b2cf43 100644 --- a/vim/vimrc.symlink +++ b/vim/vimrc.symlink @@ -35,10 +35,12 @@ Plug 'google/vim-searchindex' Plug 'jiangmiao/auto-pairs' Plug 'Shougo/neosnippet.vim' Plug 'Shougo/neosnippet-snippets' +Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} Plug 'neovim/nvim-lspconfig' Plug 'ray-x/lsp_signature.nvim' -Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'} Plug 'hrsh7th/nvim-cmp' + +" nvim-cmp sources Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-buffer' Plug 'hrsh7th/cmp-path' @@ -94,7 +96,7 @@ nnoremap :let @/="" " custom mappings map :cnext map :cprevious -nnoremap a :cclose +nnoremap a :cclose " Using tmux/screen with ctrl-a nnoremap + @@ -171,6 +173,7 @@ nnoremap gr lua vim.lsp.buf.references() nnoremap g0 lua vim.lsp.buf.document_symbol() nnoremap gW lua vim.lsp.buf.workspace_symbol() nnoremap lua vim.lsp.buf.rename() +nnoremap ca lua vim.lsp.buf.code_action() " neosnippet imap (neosnippet_expand_or_jump)